战争片看多了,用 200 行代码写了一个编程语言 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
StepfenShawn
V2EX    程序员

战争片看多了,用 200 行代码写了一个编程语言

  •  
  •   StepfenShawn
    Stepfen-Shawn 2020-10-11 23:20:53 +08:00 via Android 6999 次点击
    这是一个创建于 1900 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个语言叫做 CF 语言(不知道是不是穿越火线打多了),用 200 行代码写的,没有调第三方的 Python 库,欢迎各位来 star 与提交贡献,也可以在语法方面给我提建议
    项目地址:
    https://github.com/StepfenShawn/cf-lang.git
    路过请给个 star 吧
    34 条回复    2020-11-11 10:57:40 +08:00
    abersheeran
        1
    abersheeran  
       2020-10-11 23:33:43 +08:00   1
    这个语法让我想起了 CS……不说了,打两局去。
    jeffh
        2
    jeffh  
       2020-10-11 23:34:37 +08:00   4
    这不是编程语言把,这是 python 的正则替换而已,跑在 python 解析器上的。
    laike9m
        3
    laike9m  
       2020-10-11 23:40:21 +08:00 via Android   2
    @jeffh 然而这并不妨碍它是一门新语言
    StepfenShawn
        4
    StepfenShawn  
    OP
       2020-10-11 23:56:46 +08:00 via Android
    @jeffh 这个语言可以生成语法树,我只是想首先让它基于 Python 解释器上跑起来看看结果,后面我会编写解析语法树的代码
    jones2000
        5
    jones2000  
       2020-10-12 01:47:51 +08:00   7
    建议楼主看下大学里面教的编译原理的书,里面很详细的写编译器原理。
    词法分析->语法解析->生成 AST->执行 AST 得到最终结果
    你写的这个估计这门课要挂。
    black11black
        6
    black11black  
       2020-10-12 05:40:29 +08:00   1
    楼主要认真实现一个解释器或者编译器的话倒是挺有兴趣的,但是看了看是游戏之作,遗憾
    StepfenShawn
        7
    StepfenShawn  
    OP
       2020-10-12 05:56:52 +08:00 via Android   3
    @jones2000 本人高中生一枚,还是比较菜,以后会继续学习:)
    Mutoo
        8
    Mutoo  
       2020-10-12 06:16:57 +08:00
    图灵完备吗
    no1xsyzy
        9
    no1xsyzy  
       2020-10-12 09:08:40 +08:00
    @jones2000 你说的这是解释器吧(
    slert
        10
    slert  
       2020-10-12 09:46:22 +08:00   1
    我是觉得已经很厉害了 尤其是对于一个高中生来说
    JieS
        11
    JieS  
       2020-10-12 09:46:53 +08:00   1
    哈哈,思路清奇,有点意思
    ofooo
        12
    ofooo  
       2020-10-12 09:51:48 +08:00
    他比 python 优秀的特点有哪些呢?我觉得技术不是问题,设计思路是一开始应该想好的
    相比已经存在的语言,解决了哪些痛点
    crella
        13
    crella  
       2020-10-12 10:05:54+08:00 via Android   1
    没有可变长数组和哈希 /词典,也没有面向对象。
    crella
        14
    crella  
       2020-10-12 10:10:27 +08:00 via Android
    话说是不是实现了 python 的词典类型就能搞简单的结构体和面向对象设计了?
    fakecoder
        15
    fakecoder  
       2020-10-12 10:36:07 +08:00
    老哥 CF 哪个区的
    guokeke
        16
    guokeke  
       2020-10-12 10:36:13 +08:00   1
    有趣
    baiyi
        17
    baiyi  
       2020-10-12 10:52:16 +08:00   1
    这语法有点意思
    qq1340691923
        18
    qq1340691923  
       2020-10-12 10:55:28 +08:00   1
    已 star
    fuchaofather
        19
    fuchaofather  
       2020-10-12 11:15:50 +08:00   1
    鼓励一下。我高中时业余时间再看 极品家丁,跟 lz 一比啥也不是
    StepfenShawn
        20
    StepfenShawn  
    OP
       
    @ofooo 这是一个玩具语言,just for fun:)
    StepfenShawn
        21
    StepfenShawn  
    OP
       2020-10-12 12:47:17 +08:00 via Android
    @qq1340691923 非常感谢!
    StepfenShawn
        22
    StepfenShawn  
    OP
       2020-10-12 12:52:51 +08:00 via Android
    @crella 面向对象和函数的语法还没想好,非常抱歉
    no1xsyzy
        23
    no1xsyzy  
       2020-10-12 13:39:22 +08:00
    @crella 甚至实现了 list 或者 tuple 就行,参见 Paul Graham 谈如何实现一个 CLOS
    northisland
        24
    northisland  
       2020-10-12 13:42:30 +08:00
    看起来像是发明了一种方言
    meppy
        25
    meppy  
       2020-10-12 13:52:27 +08:00
    很牛比了,工作 10 多年的菜鸡仰望下后辈,世界终究是你们的。
    shoa
        26
    shoa  
       2020-10-12 14:37:47 +08:00
    我以为你在致敬 https://codeforces.com/contest/1331/problem/H 这道题
    Takuron
        27
    Takuron  
       2020-10-12 14:40:38 +08:00 via Android   1
    @jeffh 木兰警告
    hexagon
        28
    hexagon  
       2020-10-12 16:15:36 +08:00
    好中二啊、还嗦
    论有趣,你可以看看 dongbei 语言 https://github.com/zhanyong-wan/dongbei
    ytll21
        29
    ytll21  
       2020-10-12 16:20:51 +08:00   1
    创意不错
    Jaeger
        30
    Jaeger  
       2020-10-12 16:38:20 +08:00   1
    很有意思
    xinning1228
        31
    xinning1228  
       2020-10-12 16:41:00 +08:00
    16 岁高中生可以了
    pythonee
        32
    pythonee  
       2020-10-12 16:46:01 +08:00   1
    https://openframeworks.cc/

    我第一次想到的是这个
    StepfenShawn
        33
    StepfenShawn  
    OP
       2020-10-12 22:20:49 +08:00 via Android
    @hexagon 感谢你的吐槽,这个我之前看过,还有那个文言文语言也很有趣
    gou7ma7
        34
    gou7ma7  
       2020-11-11 10:57:40 +08:00
    @StepfenShawn #7 后生可畏啊!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1175 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:43 PVG 01:43 LAX 09:43 JFK 12:43
    Do have faith in what you're doing.
    ubao msn 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