实现一种新的编程语言

exp*_*rer 4 programming-languages

假设我为其中一个托管代码环境(.NET/JVM)设计了一种新的编程语言.我现在可以通过简单地编写一个翻译器来实现它,该翻译器将这种新语言的源代码翻译成平台的主要语言(C#/ Java),然后让平台的编译器和其他工具处理其余的过程吗?是否有任何简单的概念证明,这种方法的例子?

Mic*_*and 6

是的,只要语义映射正确,您就可以这样做(例如,在将JavaScript代码映射到C#等语言时必须小心,因为范围规则不同).

它不在托管平台上,但您可以查看Vala.它是一种类似C#的语言,编译为C.Eiffel也编译为C(并支持编译为Java).

但是,如果您使用的是托管平台,则可能需要直接查找字节码.Java字节码并不难发出,因为VM会处理并提供更复杂的编译指令(例如管理堆栈帧),VM可以消除其他毛刺角落,例如寄存器分配.