什么语言功能需要一个编程语言,使编译器?(What language features are re

2019-08-17 07:01发布

编程语言似乎经过几个阶段。 首先,有人梦想着一个新的语言,富语言。 编译器/解释器是用另一种语言,通常是C或一些其它低级语言。 在某些时候,傻瓜的成熟和成长,并最终有人在什么地方会写在愚人节愚弄自己一个编译器和/或解释。

我的问题是:什么是语言功能的小子集这样的人可以实现本身的语言?

Answer 1:

编译器甚至可以使用被写入图灵机 -一个通用图灵机基本上是任何图灵机的编译器/解释器,所以任何图灵完备的语言应该是足够的:)



Answer 2:

从理论上讲,少得惊人。 一个可计算性理论家会说,你需要的是亩递归或图灵机等。

然而,从实际情况来看,你不会很高兴努力实现图灵机编程语言。 我要说的是,至少,你想拥有所有常见的控制流结构,原始数据类型,子程序,以及数组和结构。 这应该是足以让你实现在语言本身的语言的子集 - 然后你可以从那里引导你自己了。



Answer 3:

一个选择是读-EVAL-打印循环 。 这可以用来建立许多更高级别的结构。 我相信这是LISP所采取的路径。
我不确定C的开端,但我认为它开始与一些系统调用来实现分支,循环,分配和单字符I / O,并从那里建造。



Answer 4:

编号承担汇编将获得晋级。



Answer 5:

我的问题是:什么是语言功能的小子集这样的人可以实现本身的语言?

没有要求的语言是不是编译本身以外的任何有用吗? 我向你Useless ,其中每个文本是一个适当的程序和手段“一个程序,它的任何输入,并产生自己的”语言(这也被称为Useless编译器)。



文章来源: What language features are required in a programming language to make a compiler?