Nikhil Kothari的脚本#很可能是我在JavaScript领域看到的最令人惊奇的概念之一已经有一段时间了.这个问题不是关于JavaScript,而是关于.NET运行时中的语言编译.
我一直很感兴趣,使用.NET平台,可以为已经有编译器(如C#)的语言编写编译器,该编译器将从原始编译器生成单独的输出,同时允许原始编译器生成输出在同一构建操作期间使用相同的源,同时引用/使用其他编译器的输出.
我不完全确定我甚至能够很好地理解这个过程以便用正确的细节提出问题,但这是我目前看到这个过程的方式,正如Script#docs中的图表所示.我想过很多涉及复杂语言设计和编译的东西,可以利用这样的概念,我对其他人对这些概念的看法感兴趣.
-
编辑:感谢您的评论,到目前为止; 你的信息本身就非常有趣,我想更多地研究它,但我的问题实际上是关于如何编写我自己的编译器,它可以在同一个源上同时运行使用CLR产生多种不同类型的(可能)相互依赖的输出.脚本#作为一个例子,因为它使用相同的C#源生成JavaScript和汇编,同时使编译的汇编与JavaScript协作.我很好奇在设计这种性质的东西时,各种方法和理论概念是什么.