借题发问:你自己的编程语言?

用你的编程语言写下1024祝福继续讨论:

看到这个帖子的一瞬间,我就好奇有没有大佬有自己编写的编程语言,故在此发问。简单说明一下编程语言吧,作为前情提要。

以我浅薄的认知,编程语言一般有以下结构:

  • 词法分析器(Tokenizer)
  • 语法分析器(Parser)
  • 抽象语法树(AST)
  • 解释器(Evaluator)
  • 编译器(Compiler)

流程一般是:Tokenizer → Parser → Evaluator/Compiler
源代码 → Tokens → AST → 机器代码或执行结果

我似乎有点混淆了,借由AI解释一下吧:

好奇各位佬友有没有想过写一门语言,即便可能没啥用 :tieba_025:

1 Like

一门编程语言做一门事,甚至可以创造一门编程语言只为1024祝福 :tieba_002:

前排我先自己抢了

GPT会的语言我就会,哈哈哈 :rofl:

1 Like

这就不得不提 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.”(编程语言的设计不应通过堆砌功能来实现,而应通过消除那些使得额外功能显得必要的弱点和限制来完成。)

你是否在寻找
https://messiahhh.github.io/blog/docs/编译原理/

1 Like

佬, 这是你的blog吗?

1 Like

我觉得只要可以解释运行,跑得起来就行了。就像我的自然派编程语言 GitHub - Amo-Zeng/ziranpai: 一种中文编程语言:自然派。它类似于Lisp,但是没有烦多的括号。(ziranpai is a Chinese programming language, which is similar to Lisp but without the cumbersome brackets.)

那当然不是,写不出来