好的,我猜这个问题在这里已经被问了很多次。
我想创建一种编程语言,不一定是从今天开始,但是需要在2-3年内完成。我不是一个非常优秀的程序员,但我正在进步。我想问的是创建一种语言和编写一个编译器有多密切相关?
由于编译器会将一种语言从一种形式转换为另一种形式,所以这完全是关于为特定文本编写编译器。所以如果我学习编译器设计,我就能够编写自己的编程语言吗?
好的,我猜这个问题在这里已经被问了很多次。
我想创建一种编程语言,不一定是从今天开始,但是需要在2-3年内完成。我不是一个非常优秀的程序员,但我正在进步。我想问的是创建一种语言和编写一个编译器有多密切相关?
由于编译器会将一种语言从一种形式转换为另一种形式,所以这完全是关于为特定文本编写编译器。所以如果我学习编译器设计,我就能够编写自己的编程语言吗?
密切相关。如果没有将语言解释/编译成可执行形式的方法,那么你实际上并没有一种语言。
这取决于你所说的“编译器”的含义。编译器/解释器通常由两个主要部分组成:解析器部分,它读取你的语言中的文本并构建一个内部结构(AST),以及代码生成/解释部分,它读取AST并将其翻译为机器或字节码。虽然你肯定需要知道如何为你的语言编写解析器,但是在早期阶段,代码生成并不那么重要。你可以先将你的语言简单地翻译成C语言,然后再看你能做到什么程度。