|
|
1
2
重要的是要意识到,编译器所做的只是获取源语言(在这种情况下为C#),解析它,使编译器具有对它有意义的表示,而不是人类(这是抽象语法树),然后对目标语言进行简单的代码生成(msil是在.NET运行时上运行的语言的目标)。 现在,如果脚本#代码被转换为程序集并与其他程序集交互。NET代码,这意味着此编译器必须生成msil。script#为此使用了csc.exe,这只是标准的c#comiler。现在要生成javascript,它必须使用c#或msil,解析它,并生成javascript以发送到浏览器。文档说它有一个自定义c#->js编译器名为ssc.exe。 为了使客户端和服务器端的交互保持一致,它有一组编写的引用程序集。NET,但也编译为javascript。不过,这不是编译器特定的问题,这些引用程序集是脚本#运行时。运行时可能是你感知到的许多脚本#magic的原因。 |
|
|
2
0
假设你想把C#编译成Javascript。您在问是否可以利用现有的C#编译器,因此,与其直接将C#编译为Javascript,不如将C#编译器生成的MSIL转换为Javascript? 当然,你可以做到。一旦你有了MSIL二进制文件,你就可以对它做任何你想做的事情。 |
|
|
3
0
微软有一个名为 Volta 除其他功能外,它还将msil编译为JavaScript。
|