问题描述
这似乎是一个愚蠢的问题,但我不得不问。如果我有一个用C#.NET Framework编写的程序并希望对其进行编译,据我所知,那里有一个IL解释器来处理C#代码,该代码将被重写并用C编译为字节代码以执行。
按照您的理解,无论您使用哪种语言编写,都最终会在Assembly / Byte-code低级内容中执行,否则它将无法运行。
在添加了SDK / Framework的所有内容之后,为什么不能(或者可以?)中断该过程并导出最终代码?
一个优点似乎是,尽管允许您使用高级语言编写代码,但代码仍将以最快的速度执行,您可以消除分发时的框架要求,并且在非开放式环境下,由于代码安全性而不再易于反编译源项目。
第二个优点是对于那些使用C ++编写的人,这将使C ++能够访问添加到其中某些高级语言中的所有方法/函数。例如,为什么不能这样:https://github.com/dotnet/runtime/blob/master/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs被Mono转换成C ++或类似的东西?
第三,您可以开始统一所有基于C的语言,例如C ++,C–,C#,Objective-C,BitC,C-shell,csh,D,Java,JavaScript,Go,Rust,Julia,Limbo, LPC,PHP,Python,Perl。
每种语言都可以在其自己的名称空间中,因此您可能会在C#中使用usort()
之类的PHP函数来访问PHP->usort($a,"cmp");
之类的
似乎,如果存在一个转换过程,其中所有C#或PHP函数最终都在反映其名称间隔的目录结构中结束,那么我们可以使用类似WebPack的JavaScript摇树方法来查找所有引用的函数,仅导出已使用的内容及其依赖项。
对我来说,所有这些用C语言编写的语言都没有意义,这意味着它们的所有功能对我来说都可以解开以便在C语言中执行,也无法以某种自动化方式转换为C语言/智能方式。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)