传统编程语言语法发展到现在,有个阑尾炎事件依然存在 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
soclearn
V2EX    编程

传统编程语言语法发展到现在,有个阑尾炎事件依然存在

  •  
  •   soclearn 2023-04-11 22:02:30 +08:00 2886 次点击
    这是一个创建于 915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是包围代码的 chunk 块,一层层树形嵌套要求闭合的那些{},()
    一不小心编译器就给你抛个错

    谁能知道这么个问题,可以成为打败一个人学习编程最大的难题
    不是说它难,而是说它存在了这么久,居然没有人正视它。

    bug 和调试往往需要在这里聚集大量时间
    有对齐的编辑器和样式化过后的编辑器,也不省事

    面向人的语法,居然要做成这样子

    可见编程尚处在非常原始的阶段
    那些发明语言的人,可能根本没考虑过语言要做成啥样子好,,,根本就没有考虑这方面的实用性设计

    第 1 条附言    2023-04-12 01:19:49 +08:00
    解决问题的关键,可以尝试设计一种语法中至少不含任何强制{},(),依然能最大程序做到隐式表达代码块开闭逻辑的语言,这样任何 500 字以内的含换行 chunk 块,都可以自然语言方式 oneliner 化,而且可以统统喂给解析器消化的,,
    这样一种 “智能编译器”
    非 js webpack 之后的那种效果。

    的确有点像 chatgpt
    31 条回复    2023-04-23 21:26:06 +08:00
    lance6716
        1
    lance6716  
       2023-04-11 22:16:22 +08:00 via Android
    po 应该很喜欢 Python
    soclearn
        2
    soclearn  
    OP
       2023-04-11 22:19:22 +08:00
    @lance6716

    完全错了。我喜欢直接免语法的语言。
    直接在 ast 上写代码的语言。
    或者说,写语言和写代码为一体的语言。
    soclearn
        3
    soclearn  
    OP
       2023-04-11 22:29:41 +08:00
    编程语言有语法,而且是这么丑陋的语法。
    绝对是这个时代的悲哀。

    编程的输入形式,从 parser 的设计开始,并且发展成今天这个样子,就注定是个悲哀。
    duke807
        4
    duke807  
       2023-04-11 23:02:23 +08:00 via Android
    不觉得是问题
    duke807
        5
    duke807  
       2023-04-11 23:02:52 +08:00 via Android
    op 应该喜欢 verilog
    用 begin 和 end 代替 { }
    hsfzxjy
        6
    hsfzxjy  
       2023-04-11 23:03:52 +08:00 via Android
    你是说像直接把英语 /汉语作为代码吗
    est
        7
    est  
       2023-04-11 23:06:26 +08:00
    @minlearn 你需要的是 chatgpt plus
    cmdOptionKana
        8
    cmdOptionKana  
       2023-04-11 23:17:34 +08:00   2
    1. 没有银弹
    2. 复杂度只能被转移, 不能被消灭

    因此, 编程语言就像菜系一样, 只是各有取舍, 各有偏好.

    人类语言也一样, 屈折语发展着就会变成分析语, 分析语发展着会变成黏着语, 黏着语继续发展又会变成屈折语, 哪个语种是完美的?
    metalvest
        9
    metalvest  
       2023-04-11 23:29:11 +08:00 via Android
    那你应该喜欢 latex
    Origami404
        10
    Origami404  
       2023-04-11 23:35:29 +08:00 via Android
    编程语言本来就是树状的,不用括号套括号表示树状结构还用啥? lisp s-exp 和 Mathematica 那种 m-exp 选一个呗
    yuelang85
        11
    yuelang85  
       2023-04-11 23:44:00 +08:00
    applescript?
    KagurazakaNyaa
        12
    KagurazakaNyaa  
       2023-04-11 23:46:21 +08:00
    有个语言基本上可以满足你提到的没有 chunk 块
    Brainfuck
    L4Linux
        13
    L4Linux  
       2023-04-11 23:51:40 +08:00 via Android
    @metalvest latex 的括号还不够复杂的吗?

    另外,回 op:没有嵌套结构的语言只配拿来当正则表达式。
    renmu
        14
    renmu  
       2023-04-11 23:56:10 +08:00 via Android   2
    那么您有什么好建议吗?可以写一个原型吗?
    kop1989smurf
        15
    kop1989smurf  
       2023-04-12 00:08:26 +08:00 via iPhone
    直接写机器码不就完全符合楼主的诉求了吗?
    没语法,高效,还没层级关系。
    soclearn
        16
    soclearn  
    OP
       2023-04-12 00:43:28 +08:00
    @est 有那么一点意思
    soclearn
        17
    soclearn  
    OP
       2023-04-12 00:43:53 +08:00
    @renmu 总比你这样的无脑盲从好一百倍
    soclearn
        18
    soclearn  
    OP
       2023-04-12 00:46:15 +08:00
    @Origami404
    关键一旦有流程结构,必然是树形结构的嵌套。
    这在代码中占据了绝大多数的触发机会。
    现在的语言无一例外
    soclearn
        19
    soclearn  
    OP
       2023-04-12 00:49:17 +08:00
    @cmdOptionKana 那就不能稍微解决这个{}问题吗。。。其它的先放一放
    Reficul
        20
    Reficul  
       2023-04-12 01:03:08 +08:00
    有直接写 ast ,数据即代码的语言 --- common lisp

    可惜是 OP 不喜欢括号
    kwh
        21
    kwh  
      &bsp;2023-04-12 01:22:22 +08:00   8
    我也十分认可你的理念。
    像什么 C++之父,C 语言之父,Java 之父,他们在语言中体现的理念简直是坨屎,
    严重怀疑这些人的能力,看上去学历很高,实际(摇头)。

    本人学历也还行,高中肄业,初学编程三天,在学习中的所思所想简直暴打这些什么什么之父。奈何生不逢时,也只能宝珠蒙尘。

    但凡我生对了时代,怎么着也得是一个奥特曼之父。
    soclearn
        22
    soclearn  
    OP
       2023-04-12 02:38:38 +08:00
    @kwh
    真不错,你居然有了跟 王垠 一样的认知。
    他也有类似观点,认为 C++之父,C 语言之父,Java 之父,他们在语言中体现的理念简直是坨屎,

    如果你不是跟 王垠 一样是绝对的天才
    那应该是绝对的蠢材
    soclearn
        23
    soclearn  
    OP
       2023-04-12 02:53:52 +08:00
    @kwh blocked
    (认知决定素质,这种人才是他自己口中吐出的东西)
    soclearn
        24
    soclearn  
    OP
       2023-04-12 02:58:05 +08:00
    实际上,王垠对于某些语言之父的看法,十分接地气和中肯。比如,好多语言的设计其实并不高明。

    形成王垠对这件事认知的水平,其实稍微处在“编程语言科学”这个领域,登高就够一览。这个难度并不大。因为这属于格物自然至知。
    (难的是他长年累月的实践达到的水平和思考能力)

    而怕的,
    永远是无脑跪舔。
    又或者是。哪怕是稍微中肯的话都要反讥一次。
    kujio
        25
    kujio  
       2023-04-12 09:03:54 +08:00
    代码块 开头 缩进?
    RightHand
        26
    RightHand  
       2023-04-12 09:49:25 +08:00 via Android
    解决问题的关键可以尝试设计一种语法中至少不含任何强制{}()依然能最大程序做到隐式表达代码块开闭逻辑的语言这样任何 500 字以内的含换行 chunk 块都可以自然语言方式 oneliner 化而且可以统统喂给解析器消化的这样一种 智能编译器非 jswebpack 之后的那种效果 去掉所有标点符号空格的文字你还能准确读出来么?
    abc8678
        27
    abc8678  
       2023-04-16 22:05:33 +08:00 via Android
    有时候漏了一两个,要一层一层展开,长度大了就要前后来回翻。可能我还不会用 IDE ,用起来没那么智能
    soclearn
        28
    soclearn  
    OP
       2023-04-16 22:50:13 +08:00
    @L4Linux 不错的回答
    levelworm
        29
    levelworm  
       2023-04-19 02:21:05 +08:00 via Android
    我倒觉得这对判断 scope 可简单多了。
    chinesehuazhou
        30
    chinesehuazhou  
       2023-04-19 08:48:17 +08:00 via Android
    @minlearn 歪个楼,能否推荐“编程语言科学”的相关学习材料,比如书籍和视频
    LLaMA
        31
    LLaMA  
       2023-04-23 21:26:06 +08:00   1
    写个价值 5k 的 dd 脚本要求还这么多 block 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5468 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 01:25 PVG 09:25 LAX 18:25 JFK 21:25
    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