程序员如何在C语言之上编写编程语言?

时间:2014-06-18 00:13:38

标签: c compiler-construction programming-languages

我有兴趣在C之上编写自己的编程语言,但我没有 想法从哪里开始。

所以,我研究过,这引起了我的注意:

A lot of languages are C-based. 

流行的编程语言,如 C ++ Objective-C ,可能还有 C# Java 都是建立在C的顶部。(更不用说Python)

C ++和Objective-C创建者是如何设法创建一种基于C的新语言,但添加了面向对象的编程概念?

1 个答案:

答案 0 :(得分:0)

基于C并不意味着它可以与c互操作。它只是意味着,它使用相同的范例或类似的语法,如埃及支持。

Java是基于C的,但也借用了Smalltalk,它无法运行任何C代码。 C ++可以调用C函数,因为它的编译器生成与C代码相同的二进制代码。一旦链接了它们的二进制文件,它们就可以互操作了。 Pythons实现CPython首先不生成任何二进制文件,它是一个解释实现,这意味着它由一个解释器Programm运行,它将整个解析后的语法树保存在内存中。因为解释器本身只是一个C程序,它可以调用其他C函数。所以没有像在C之上添加功能这样的东西。这些是不同的语言,不同的编译器/解释器和语法只是从c中借用了一些语法规则。

开始创建自己的语言的最简单方法是使用像antlr这样的解析器生成器。我会开始创建一个解释器而不是二进制编译器。也许是一个编译器,编译成c。关于语言语法的知识是必不可少的。