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

Python中的解释器:制作自己的编程语言?,python,compiler-construction,parsing,interpreter,Python,Compiler Construction,Parsing,Interpreter,记住,这是在使用python。 今天我在摆弄一个叫派琳的应用程序。它是一个类似命令行的界面,具有一些很酷的特性。然而,我在制作它的时候有一个想法:既然它像一个“操作系统”,它会有自己的语言吗 嗯,我在网上看到了一些关于如何制作解释器、解析器和编译器的文章,但对我来说不是很可读。我看到的只是一堆乱七八糟的代码。我是那些不需要代码本身就需要评论、自述、表单或与用户交流的人之一,所以我认为堆栈溢出对于像我这样的青少年来说是非常好的。我能得到一些帮助吗?为了真正创建一种编程语言,您首先需要一些基础知识。

记住,这是在使用python。 今天我在摆弄一个叫派琳的应用程序。它是一个类似命令行的界面,具有一些很酷的特性。然而,我在制作它的时候有一个想法:既然它像一个“操作系统”,它会有自己的语言吗


嗯,我在网上看到了一些关于如何制作解释器、解析器和编译器的文章,但对我来说不是很可读。我看到的只是一堆乱七八糟的代码。我是那些不需要代码本身就需要评论、自述、表单或与用户交流的人之一,所以我认为堆栈溢出对于像我这样的青少年来说是非常好的。我能得到一些帮助吗?

为了真正创建一种编程语言,您首先需要一些基础知识。 我强烈建议你买一本,它可读性很强(比原版好得多),适合自学


一旦你准备好开始使用解析器,就可用性而言,这是解析器生成器的“黄金”标准(尽管flex+bison/yacc非常有能力)。

就像theatrus一样,我建议从一本关于这个主题的好书开始。我绝对可以推荐Terence Parr(ANTLR背后的人,一个常见的解析器生成器)。

我刚刚得到一个语言开发框架。也许这是你想看的东西

考虑到Python,您可能会发现实现一个版本的。如果您愿意,您现在可以跳过解析/词法分析阶段,如果您的OOP技能能够胜任的话,可以首先提出一个面向对象的版本。稍后,您可以将它与一些图形库连接起来,以实际绘制一些东西


除了徽标,您可能还想查看L-systems。请特别参阅以获取灵感。

请参阅彼得·诺维格的作品,其中有大量的解释。还有一个更为简单的版本,从一个简单的链接就可以阅读了。

“既然它像一个“OS”,它会有自己的语言吗?“意思是,BTW?”如果问题是“我能得到一些帮助吗?”答案是肯定的,只要你问正确的问题。@ GALILSNAP:所有(99%)的操作系统都有C的基础,用一些胆量的汇编程序使系统级的东西工作。这是一个与创建编程语言完全不同的主题。如果您使用“OS”来引用应用程序,那么“它自己的语言”当然是Python,因为您使用该语言编写了应用程序。这大概就是你所说的“本地”语言。一个以命令为输入的交互式解释器被称为Shell。在Windows上这是CMD shell,在Linux上通常是Bash。这些实际上只是在操作系统上运行的应用程序。它们具有内置命令,还提供了运行其他程序的方便方式。GUI桌面是图形shell,允许您使用鼠标而不是键入命令来执行操作。我建议你读一下操作系统架构。Wikipedia是一个很好的起点。我不会把语言实现模式推荐给这个学科的新手。那个家伙实际上是如此我喜欢他的回答。