C/C++解释器实现的参考资料
如何创建一种语言?
编写编译器的学习方法 我了解一些c ++,非常擅长php,精通css html,javascript可以。所以我在思考c++是如何创建的,我的意思是计算机如何理解代码的含义?它是如何阅读的......那么,我是否可以创建自己的语言?如何创建呢?
"时不时我会有一种设计编程语言的冲动,但是我就躺下来等待它消失。"——L. Peter Deutsch
编辑(对于那些渴望了解上下文的人):
"[L. Peter Deutsch] 还在12-15岁之间的时候(还穿着短裤),写了PDP-1 Lisp 1.5实现版本的基本PDP-1 LISP。"
是的,可以创建自己的编程语言。可以看看编译器编译器,或者敢于查看一些脚本语言的源代码。一些有用的工具包括yacc、bison和lexx。
其他人已经提到了《龙书》。我在大学时使用过一本叫做“编译原理与实践”的书。
不需要学习汇编语言就能编写一个语言。例如,JavaScript运行在称为解释器的应用程序中,该应用程序执行JavaScript文件。在这种情况下,解释器通常内置在浏览器中。
最简单的起步程序语言可能是编写一个简单的基于文本的计算器。即,将文本文件输入,运行并执行计算。你可以很容易地用C ++来编写它。
我大学项目的第一门语言是在给我们的BNF中定义的。然后,我们必须编写一个解析器,将其解析成内存中的树形结构,然后再转换成称为三地址码(类似汇编语言)的东西。你可以很容易地将三地址码转换成真正的汇编语言,或者为其编写一个解释器。
当然可以。其他人提到了《龙书》(Dragon Book),但是也有很多在线信息可供参考。例如,llvm网站上有一个关于实现编程语言的教程:http://llvm.org/docs/tutorial/
我非常推荐《编程语言实践》。这是一本很棒的书,从语言的概念到编译器的工作原理再到创建自己的语言,全方位地带领读者深入了解。相比于《龙书》,这本书更易懂,并在深入讲解之前先解释了事物的运作方式。
这是可能的。您需要了解编译器和/或解释器:它们的作用以及如何制作它们。
开始学习汇编语言并深入了解字节码的工作原理,这样你就可能有机会 :)
首先创建一个解析器。了解EBNF语法规则,这将回答你有关计算机如何读取代码的问题。这是一个非常高级的主题,所以不要期望太多自己,但要享受过程。我用过的一些资源是bison、flex和PLY。