假设我已经为.NET/JVM之一的托管代码环境设计了一种新的编程语言。现在,我是否可以通过编写一个将这种新语言源代码翻译成平台主语言(C#/Java)的转换器,然后让平台的编译器和其他工具处理其余的过程来实现它?是否有任何简单的概念验证示例来支持这种方法?
假设我已经为.NET/JVM之一的托管代码环境设计了一种新的编程语言。现在,我是否可以通过编写一个将这种新语言源代码翻译成平台主语言(C#/Java)的转换器,然后让平台的编译器和其他工具处理其余的过程来实现它?是否有任何简单的概念验证示例来支持这种方法?
是的,只要语义映射正确(例如,在将JavaScript代码映射到诸如C#之类的语言时需要注意,因为作用域规则不同),就可以这样做。
虽然它不在托管平台上,但您可以查看Vala。它是一种类似于C#的语言,可编译为C。Eiffel也可以编译为C(并支持编译为Java)。
但是,如果您使用的是托管平台,则可能希望直接发出字节码。 Java字节码不难发出,因为VM负责并提供了编译的棘手部分(例如管理堆栈帧),VM消除了其他棘手的角落,例如寄存器分配。
可以的,你肯定可以这样做。你将会遇到的主要问题是,为你的语言提供源级别运行时诊断/调试非常困难。