请记住,这是使用python。 好吧,今天我正在摆弄一款名为Pyline的应用程序。它是一个类似命令行的界面,具有一些很酷的功能。但是,我在制作它时有一个想法:既然它像一个“操作系统”,它不会有自己的语言吗?
好吧,我在网上看过一些关于如何编写解释器,解析器和编译器的文章,但它对我来说并不是真的可读。我所看到的只是一大堆代码。我是那些需要评论或自述或者某些形式或者没有代码本身的用户沟通的人之一,所以我认为Stack Overflow对于像我这样的青少年来说会很棒。我可以得到一些帮助吗?
答案 0 :(得分:10)
首先需要一些基础才能真正创建编程语言。 我强烈建议您选择Programming Language Pragmatics的副本,该副本具有相当的可读性(远远超过Dragon book)并且适合自学。
一旦你准备开始搞乱解析器,ANTLR就解析器生成器的可用性而言是“黄金”标准(尽管flex + bison / yacc非常强大)。
答案 1 :(得分:2)
我刚来到语言开发框架Xtext。也许这是你可能想要看的东西。
考虑到Python,您可能会发现实现Logo版本具有指导意义。如果你愿意,你可以暂时跳过解析/ lexing阶段,并首先想出一个面向对象的版本,如果你的OOP技能达到它的话就会让你前进。稍后您可以将其与某些图形库连接起来以实际绘制内容。
除了徽标,您可能还想查看L系统。特别参见The Algorithmic Beauty of Plants获取灵感。
答案 2 :(得分:1)
就像theatrus一样,我建议从一本关于这个主题的好书开始。我绝对可以推荐Terence Parr(ANTLR背后的人,一个常见的解析器生成器)Language Implementation Patterns。
答案 3 :(得分:1)
见Peter Norvig的Scheme interpreter in 2 pages of Python有很多解释。还有一个更好的版本链接,一旦你弄清楚了更简单的版本,值得一读。