似乎最近20年出现的大多数新编程语言都是用C编写的。这完全有道理,因为C可以看作是一种可移植的汇编语言。但是我很好奇的是这是否以任何方式限制了语言的设计。促使我提出问题的是考虑如何在Python中直接使用C堆栈来调用函数。显然,编程语言设计人员可以用他们想要的任何语言来做他们想做的任何事情,但是在我看来,您选择编写新语言所用的语言使您拥有一定的思维定式,并为您提供了一些难以忽视的捷径。这些语言是否还具有其他语言特征(好或不好)?
最佳答案
即使使用C实现,您在实现方面的自由度也令人惊讶。例如,chicken scheme使用C作为中介,但仍设法将堆栈用作其垃圾收集器中的托儿所。
也就是说,在某些情况下存在约束。恰当的例子:GHC haskell编译器具有一个称为Evil Mangler的perl脚本,用于更改GCC输出的汇编代码以实现一些重要的优化。由于这个原因,他们已经部分转向内部生成的程序集和LLVM。也就是说,这并没有限制语言设计-只是编译器选择可用的优化。
关于c - 使用C来实现其他语言是否以任何方式限制了它们的设计?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3513780/