wisdgod
(知道)
October 24, 2024, 7:29am
1
从用你的编程语言写下1024祝福 继续讨论:
看到这个帖子的一瞬间,我就好奇有没有大佬有自己编写的编程语言,故在此发问。简单说明一下编程语言吧,作为前情提要。
以我浅薄的认知,编程语言一般有以下结构:
词法分析器(Tokenizer)
语法分析器(Parser)
抽象语法树(AST)
解释器(Evaluator)
编译器(Compiler)
流程一般是:Tokenizer → Parser → Evaluator/Compiler
源代码 → Tokens → AST → 机器代码或执行结果
我似乎有点混淆了,借由AI解释一下吧:
好奇各位佬友有没有想过写一门语言,即便可能没啥用
1 Like
wisdgod
(知道)
October 24, 2024, 7:34am
2
一门编程语言做一门事,甚至可以创造一门编程语言只为1024祝福
neteroster
(neteroster)
October 24, 2024, 7:43am
4
这就不得不提 Racket ,自称面向编程语言的编程语言,要造新“语言”玩一玩的话,用它这一套东西比较方便。在这里并不需要“造出”整套语言包含一些底层设施,只需要描述把语言转换为 Racket 的逻辑就可以了,所以本质上只需要写一套转换器。
还有专门介绍如何用 Racket 造语言的简单教程:Beautiful Racket: Make a language in one hour: stacker
除了面向语言这一点外,Racket 本身也是一门很有趣的编程语言,它是 Lisp 的一种方言,Scheme 的后代[1],具有完善的文档、强大的特性和优秀的设计,以及和还不错(虽然不怎么丰富)的生态,如果喜欢了解不同的编程语言,Racket 值得一看。
[1] Scheme 也是一门简洁而有趣的语言,在其语言规范中有一句经典的论述:“Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.”(编程语言的设计不应通过堆砌功能来实现,而应通过消除那些使得额外功能显得必要的弱点和限制来完成。)
smooth
(BnjhpKbld)
October 24, 2024, 7:49am
5
1 Like
amo
October 24, 2024, 10:05am
7