Python中的解释器:如何制作自己的编程语言?

6 投票
4 回答
6303 浏览
提问于 2025-04-16 00:25

记住,这里是用Python写的。

今天我在玩我自己做的一个叫Pyline的应用程序。它有点像命令行界面,功能还挺酷的。不过,在制作这个应用的时候,我有个想法:既然它像一个“操作系统”,那它是不是也应该有自己的语言呢?

我在网上看到一些关于如何制作解释器、解析器和编译器的文章,但那些内容对我来说实在是太难懂了。我看到的全是一堆代码。我是那种需要注释、说明文档或者其他任何形式的用户沟通,而不是单纯看代码的人。所以我觉得在Stack Overflow上问问,可能会对我这个青少年有帮助。有人能帮帮我吗?

4 个回答

1

就像theatrus说的,我建议你先找一本关于这个主题的好书。我可以推荐一本由Terence Parr写的书,叫做《语言实现模式》。他可是ANTLR的创始人,ANTLR是一个常用的解析器生成工具。

2

我刚刚发现了一个叫做Xtext的东西,它是一个用来开发编程语言的框架。也许你会想看看这个。

如果你对Python感兴趣,可以尝试实现一个Logo语言的版本。你可以先不考虑解析和词法分析这些复杂的步骤,直接做一个面向对象的版本,前提是你对面向对象编程有一定了解。之后,你可以把它和一些图形库结合起来,真正画出一些东西。

除了Logo,你还可以看看L系统。特别推荐你去看看《植物的算法之美》,这本书会给你一些灵感。

10

在真正创建一种编程语言之前,你需要先打好基础。我强烈建议你去看看一本书,叫做《编程语言实用指南》,这本书读起来很轻松(比起《龙书》要容易得多),适合自学。

当你准备好开始研究解析器的时候,ANTLR是解析器生成器中的“黄金标准”,因为它使用起来非常方便(虽然flex+bison/yacc也很强大)。

撰写回答