16 岁高中生开发的粤语编程语言在 github 上开源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
StepfenShawn
V2EX    分享创造

16 岁高中生开发的粤语编程语言在 github 上开源

  •  4
     
  •   StepfenShawn
    Stepfen-Shawn 2021-02-07 17:08:59 +08:00 via Android 14676 次点击
    这是一个创建于 1708 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自从 github 上出现了东北,上海,四川等方言编程语言,作为一个广东仔,没理由不开发一个粤语编程语言!

    于是我每天在骑车上学的路上都在构思着这个语言的语法,有次还差点发生事故了...为的只是让更多人感受到自己家乡的语言与编程语言相结合的魅力!

    由于没有经过专业的编码训练,所以这个项目花了我近 5 个周末的时间,但当我看到这个语言能生成语法树并执行出正确结果的时候,心中更是说不尽的激动!

    项目地址:
    https://github.com/StepfenShawn/Cantonese.git

    开发不易,路过请给颗 star 吧
    第 1 条附言    2021-02-18 13:52:37 +08:00
    第 2 条附言    2021-09-24 20:37:48 +08:00
    96 条回复    2021-02-20 12:19:34 +08:00
    Xusually
        1
    Xusually  
       2021-02-07 17:16:18 +08:00
    好家伙!
    jr55475f112iz2tu
        2
    jr55475f112iz2tu  
       2021-02-07 17:17:31 +08:00
    落操场玩跑步

    犀飞利
    KusoJc
        3
    KusoJc  
       2021-02-07 17:19:21 +08:00   1
    犀飞利,但需要用粤语正字就好有难度了
    CallMeReznov
        4
    CallMeReznov  
       2021-02-07 17:20:20 +08:00   1
    这个语言好,输入的时候脑海里自动生成语音.
    zagfai
        5
    zagfai  
       2021-02-07 17:26:22 +08:00   7
    年轻就是好 可以肆无忌惮地干些有用没用的东西 就是图个玩 哈哈哈
    telung
        6
    telung  
       2021-02-07 17:26:39 +08:00
    广东仔都好有钱的
    lxhcool
        7
    lxhcool  
       2021-02-07 17:31:27 +08:00
    好家伙,我直呼好家伙
    CallMeReznov
        8
    CallMeReznov  
       2021-02-07 17:32:05 +08:00   7
    R18
        9
    R18  
       2021-02-07 17:32:20 +08:00   1
    乍一看以为是火星文 ヅ挖ィ尔怕ろó马ぺ
    Biwood
        10
    Biwood  
       2021-02-07 17:39:21 +08:00   1
    粤语属于古语,可以用精简的语句表达丰富的含义,所以比较适合转换成编程语言,跟之前的 wenyan-lang 有的一拼
    coolicer
        11
    coolicer  
       2021-02-07 17:40:12 +08:00
    广东人直呼不敢用
    icyalala
        12
    icyalala  
       2021-02-07 18:09:48 +08:00
    对粤语一点都不懂的我,看这东西感觉比外语还难懂。。
    phpnote
        13
    phpnote  
       2021-02-07 18:10:19 +08:00   12
    好家伙, 人才

    keyword = {
    "PRINT" : "畀我睇下",
    "ENDPRINT" : "点样先",
    "ASSIGN" : "讲",
    "EXIT" : "同我",
    "IS" : "系",
    "ISNOT" : "唔系",
    "IF" : "如果",
    "THEN" : "话",
    "DO" : "->",
    "BEGIN" : "{",
    "END" : "}",
    "TRUE" : "",
    "FALSE" : "唔",
    "NONE" : "",
    "WHILEDO" : "落操场玩跑步",
    "WHILE" : "玩到",
    "WHILEEND" : "为止",
    "CALL" : "用下",
    "IMPORT" : "使下",
    "IN" : "",
    "FUNCEND" : "搞掂",
    "FUNCBEGIN" : "要做咩",
    "AND" : "同埋",
    "OR" : "定",
    "RETURN" : "返转头",
    "TRY" : "执",
    "EXCEPT" : "到",
    "FINALLY" : "执手尾",
    miaomiao888
        14
    miaomiao888  
       2021-02-07 19:53:48 +08:00   1
    羊文编程
    咩~
    IceBay
        15
    IceBay  
       2021-02-07 20:00:01 +08:00
    咩啊
    咩啊
    咩啊
    wqzjk393
        16
    wqzjk393  
       2021-02-07 20:01:07 +08:00 via iPhone   3
    “!”:丢你个扑街
    sunny352787
        17
    sunny352787  
       2021-02-07 20:02:53 +08:00
    StepfenShawn
        18
    StepfenShawn  
    OP
       2021-02-07 20:06:34 +08:00 via Android
    @sunny352787 多谢,star 了一个
    sunny352787
        19
    sunny352787  
       2021-02-07 20:07:23 +08:00
    @StepfenShawn 哈哈哈哈也没收录几个,你已经很棒了
    shakaraka
        20
    shakaraka  
    PRO
       2021-02-07 20:15:50 +08:00   3
    非凡哥直呼内行
    ```
    讲: |start| 系 0
    落操场玩跑步
    讲: |start| 系 |start + 1|
    畀我睇下 |start| 点样先?
    玩到 |start < 100| 为止
    ```
    smart9527
        21
    smart9527  
       2021-02-07 21:01:22 +08:00
    犀沟利~!
    Ultraman
        22
    Ultraman  
       2021-02-07 21:07:19 +08:00 via Android   2
    此时一位不会粤语的靓仔离开了直播间
    IFoon
        23
    IFoon  
       2021-02-07 21:14:02 +08:00
    北方人一脸懵逼。
    crab
        24
    crab  
       2021-02-07 21:18:37 +08:00
    mrchi
        25
    mrchi  
       2021-02-07 21:21:23 +08:00   1
    确实挺好玩的,希望你能更加深入的探索下去,而不是仅仅满足于给 python 套个壳
    ethanlu
        26
    ethanlu  
       2021-02-07 22:00:02 +08:00   1
    作为广州人,梗系 STAR+1
    StepfenShawn
        27
    StepfenShawn  
    OP
       2021-02-07 22:13:16 +08:00 via Android
    @ethanlu 多谢!
    lxiszuhi
        28
    lxiszuhi  
       2021-02-07 22:29:13 +08:00
    型英帅靓正
    suyeH
        29
    suyeH  
       2021-02-07 22:41:53 +08:00   2
    没仔细看,瞄了一眼 readme 似乎就是 python 套壳
    revalue
        30
    revalue  
       2021-02-07 23:24:29 +08:00   5
    5 个周末只能这样了,变量替换而已,俗称 i18n
    kimwang
        31
    kimwang  
       2021-02-07 23:47:41 +08:00 via Android
    开发个粤语点读笔吧,字库可扩充可自定义,500 内我要一根。
    Gizmo
        32
    Gizmo  
       2021-02-08 01:43:07 +08:00 via Android
    睡,先==>
    jamry
        33
    jamry  
       2021-02-08 09:04:54 +08:00   1
    犀飞利,比个 Star 你
    StepfenShawn
        34
    StepfenShawn  
    OP
       2021-02-08 09:10:01 +08:00 via Android
    @jamry 唔该晒!
    caoshufan
        35
    caoshufan  
       2021-02-08 09:14:48 +08:00
    犀利犀利
    soulzz
        36
    soulzz  
       2021-02-08 09:37:28 +08:00   1
    粗一看很 nb
    一看.py 文件 好家伙
    我上我也行
    commoccoom
        37
    commoccoom  
       2021-02-08 10:11:53 +08:00
    @revalue 你这,好家伙
    lzdyes
        38
    lzdyes  
       2021-02-08 10:35:24 +08:00
    直呼内行
    someonedeng
        39
    someonedeng  
       2021-02-08 11:16:53 +08:00
    过于生草
    Elethom
        40
    Elethom  
       2021-02-08 11:27:07 +08:00 via iPhone   1
    @soulzz
    16 岁能写 tokeniser 可以了吧。我 16 岁想上网都不容易呢。
    bojue
        41
    bojue  
       2021-02-08 11:30:34 +08:00
    16 岁厉害了,年少有为
    0xroot
        42
    0xroot  
       2021-02-08 11:35:40 +08:00 via iPhone
    看完表示已经扑街了 学废了
    handle233
        43
    handle233  
       2021-02-08 11:50:36 +08:00   1
    系 Star 下先。给个广东话用词表就靓噻
    Stlin
        44
    Stlin  
       2021-02-08 11:57:41 +08:00
    好家伙!畀我睇下先
    djyde
        45
    djyde  
       2021-02-08 12:01:26 +08:00
    哈哈 有意思
    superliwei
        46
    superliwei  
       2021-02-08 12:27:57 +08:00
    让我想起了
    Joker123456789
        47
    Joker123456789  
       2021-02-08 14:13:51 +08:00
    编译器用什么写的?
    StepfenShawn
        48
    StepfenShawn  
    OP
       2021-02-08 14:18:07 +08:00 via Android
    JoeoooLAI
        49
    JoeoooLAI  
       2021-02-08 14:33:47 +08:00   1
    哇柒,真系犀鸠利啵,整粒 star 畀你喇,后生仔冲啊(唔好学阿叔讲粗口
    robinlovemaggie
        50
    robinlovemaggie  
       2021-02-08 14:50:04 +08:00
    不论好坏都值得鼓励,加油靓仔~
    java8
        51
    java8  
       2021-02-08 14:54:29 +08:00
    此时一位四川的靓仔路过
    java8
        52
    java8  
       2021-02-08 14:55:43 +08:00
    并说了句:好家伙,高中生 5 个周末的时间就搞定了
    recordnow
        53
    recordnow  
       2021-02-08 14:58:07 +08:00
    靓仔,你系想食你件衫,定系着你碗饭?
    tibifide
        54
    tibifide  
       2021-02-08 15:04:57 +08:00
    整的巴适哦
    lxrmido
        55
    lxrmido  
       2021-02-08 15:20:59 +08:00
    镇住了
    discrete
        56
    discrete  
       2021-02-08 15:27:06 +08:00
    「讲」改成「讲」感觉读起来更流畅一点
    faust24601
        57
    faust24601  
       2021-02-08 15:45:49 +08:00 via iPhone
    我直接好家伙
    Limius
        58
    Limius  
       2021-02-08 15:53:13 +08:00   1
    如果真想用度程,起你正字都唔好出字啦.
    “系”用“”,如果以後你仲有需要表普通“在”呢字你就可以用“”,都唔一,我都唔知解多人意用“系”
    仲有 D 人“”同咪“”分唔清.
    Limius
        59
    Limius  
       2021-02-08 15:56:09 +08:00
    @JoeoooLAI 啦,唔加粗口仲乜 L wor
    liangjx
        60
    liangjx  
       2021-02-08 16:06:54 +08:00
    好家伙
    www5070504
        61
    www5070504  
       2021-02-08 16:24:23 +08:00
    hhhhhh
    noroot
        62
    noroot  
       2021-02-08 16:34:31 +08:00   1
    屎啦你 => raise
    sth2018
        63
    sth2018  
       2021-02-08 16:36:23 +08:00   1
    建议加上开源许可协议,小心被白嫖
    Marszm
        64
    Marszm  
       2021-02-08 16:57:31 +08:00
    你人他喵的是个人才..
    StepfenShawn
        65
    StepfenShawn  
    OP
       2021-02-08 17:03:30 +08:00 via Android
    @noroot 汝甚秀,这个语句可以有。
    benjyair
        66
    benjyair  
       2021-02-08 17:12:43 +08:00
    唔该晒
    fffang
        67
    fffang  
       2021-02-08 17:19:39 +08:00
    要不再用英语实现一遍这个语言的解释器?
    zro
        68
    zro  
       2021-02-08 17:29:25 +08:00
    鸡同鸭讲。。
    StepfenShawn
        69
    StepfenShawn  
    OP
       2021-02-08 18:34:54 +08:00 via Android
    @JoeoooLAI 哈哈哈哈,多谢多谢
    StepfenShawn
        70
    StepfenShawn  
    OP
       2021-02-09 06:32:58 +08:00 via Android
    @sth2018 已加 MIT 协议 :)
    abcd191898105
        71
    abcd191898105  
       2021-02-09 13:34:31 +08:00
    好像语法糖,编译前转义一下子,稳,全球编程语言狂喜
    polarpy
        72
    polarpy  
       2021-02-09 15:37:42 +08:00
    烫烫烫烫
    zm8m93Q1e5otOC69
        73
    zm8m93Q1e5otOC69  
       2021-02-09 16:58:50 +08:00
    “由于没有经过专业的编码训练,所以这个项目花了我近 5 个周末的时间”
    myqoo
        74
    myqoo  
       2021-02-09 16:58:56 +08:00
    吼啊,识得唔识得啊
    noroot
        75
    noroot  
       2021-02-09 19:18:44 +08:00
    @StepfenShawn 语句替换好点,写一次代码等于演一出卡门(狗头
    Linuk
        76
    Linuk  
       2021-02-09 19:24:58 +08:00
    nb
    Linuk
        77
    Linuk  
       2021-02-09 22:19:20 +08:00   1
    建议实现栈结构,然后
    顶你 => push
    丢你 => pop
    Linuk
        78
    Linuk  
       2021-02-09 22:24:20 +08:00
    @suyeH 更有趣的是, 除了文言文,其它方言都是 Python 套壳, 感觉就是在讽刺"木兰"编程
    StepfenShawn
        79
    StepfenShawn  
    OP
       2021-02-09 22:32:31 +08:00 via Android
    @Linuk 本来想用 bison 写的,但由于 c 语言不熟练,后来又选择了 Python
    StepfenShawn
        80
    StepfenShawn  
    OP
       2021-02-09 22:37:11 +08:00 via Android
    @Linuk 我去年还写了一个语言 Square
    https://github.com/square-lang/Square.git
    用 C 写的,bug 调得太蛋疼了,从此对 C 产生了阴影
    Linuk
        81
    Linuk  
       2021-02-10 10:30:19 +08:00
    @StepfenShawn 年纪轻轻就开始研究编程语言,小伙子有前途!
    StepfenShawn
        82
    StepfenShawn  
    OP
       2021-02-10 16:54:24 +08:00 via Android
    @Limius 写错字真丢架,到时连住 bug 一齐改。
    大陆宜家都用普通话教学,好多人都未学过粤语正字(包括我)
    Linuk
        83
    Linuk  
       2021-02-11 16:18:46 +08:00 via Android
    对比了一下东北编程好奇问一下这个语言怎么定义一个 list
    StepfenShawn
        84
    StepfenShawn  
    OP
       2021-02-11 16:31:54 +08:00 via Android
    @Linuk 可以用赋值语句
    讲: A 系 |[1, 2, 3]|
    不过我想了一个新的语句声明 list:
    |1, 2, 3| 拍住上 -> A
    这样写就优美很多
    支持这个语法的代码其实已经写好了,不过现在我还在调循环嵌套的 bug,估计今晚就能上传代码
    StepfenShawn
        85
    StepfenShawn  
    OP
       2021-02-11 20:09:27 +08:00 via Android
    @Linuk 更新了,新的 list 定义语法能用了
    StepfenShawn
        86
    StepfenShawn  
    OP
       2021-02-11 20:32:48 +08:00 via Android
    @phpnote 哈哈哈,代码已更新,之前用 map 实在太耗资源了
    cctv6
        87
    cctv6  
       2021-02-12 09:22:15 +08:00 via Android
    我觉得有必要把英文的<>:-符号都换成中文字符,要不然打几个汉子就得换个输入法,这也太麻烦了
    StepfenShawn
        88
    StepfenShawn  
    OP
       2021-02-12 19:01:38 +08:00 via Android
    @cdlnls 没错,这就准备去更新代码
    Linuk
        89
    Linuk  
       2021-02-13 15:56:06 +08:00 via Android
    @StepfenShawn 这语法可以,写起来有点 R 语言和 Ruby 的味道了
    hanghang
        90
    hanghang  
       2021-02-13 22:40:12 +08:00
    犀柒利
    StepfenShawn
        91
    StepfenShawn  
    OP
       2021-02-16 19:15:48 +08:00 via Android
    @Linuk 已更新,stack 语句能用了
    StepfenShawn
        92
    StepfenShawn  
    OP
       2021-02-16 19:16:58 +08:00 via Android
    栈的操作,哈哈哈
    有条扑街叫 |Deo 哥|
    顶你 -> |Deo 哥|: 1
    顶你 -> |Deo 哥|: 2
    顶你 -> |Deo 哥|: 3
    丢你 -> |Deo 哥|
    hantsy
        93
    hantsy  
       2021-02-17 11:00:18 +08:00
    @StepfenShawn 有前途
    StepfenShawn
        94
    StepfenShawn  
    OP
       2021-02-17 21:12:21 +08:00 via Android
    Cantonese 开始可以用来做统计学了,新语句:
    计算皮尔逊相关系数:

    使下 math
    |2.165, 1.688, 1.651, 2.229| 拍住上 -> |A|
    |2.060, 1.822, 1.834, 2.799| 拍住上 -> |B|
    畀我睇下 |A 同 B 有几衬| 点样先?

    运行结果:
    0.8066499427138474
    haojunmei
        95
    haojunmei  
       2021-02-20 01:04:56 +08:00
    Star 佐了,得闲 dl 落黎玩下
    StepfenShawn
        96
    StepfenShawn  
    OP
       2021-02-20 12:19:34 +08:00 via Android
    @haojunmei 多谢晒!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1038 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 18:04 PVG 02:04 LAX 11:04 JFK 14:04
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86