c# – 使用Mono编译器/创建一个新的仍在输出Windows EXE?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用Mono编译器/创建一个新的仍在输出Windows EXE?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1625字,纯文字阅读大概需要3分钟。
内容图文
![c# – 使用Mono编译器/创建一个新的仍在输出Windows EXE?](/upload/InfoBanner/zyjiaocheng/964/ddb9e196e3ed4dde961a2bd75097df98.jpg)
这只是一个想法,但是我想知道在使用Mono编译器还是在输出Windows EXE的同时写一个新编译器有多难?
这种想法的原因在于我看到人们“创造性地”滥用C#语言以获得诸如代码合同或面向方面的编程之类的东西,并且有时感觉人们伸展得太远了.
关于.net的好处是,最后,我们想要的只是.net 2.0 CLR的有效IL.但是,Microsoft C#编译器已关闭,无法扩展.只能在不同的程序集中混合使用不同的语言.
这个想法(警告:可能听起来很可怕)是使用可以扩展的编译器并将其作为一种预处理器运行.这样就可以在仍然返回有效IL的同时添加新的关键字和语言概念.
显而易见的缺点当然是a)它不再是C#而是C#-derivate,没有其他人能理解,b)编写编译器很难,因为必须遵守无数规则以保持高质量和逻辑语法.
但正如所说,这只是现在的想法.这与Mono.Cecil采用的方向略有不同,但却是一种完全不同的方法.
解决方法:
我期待编程从文本转向更有条理的东西.程序已经非常结构化,但仍然是纯文本编辑,使得IDE成为独创性的主要练习.在此基础上添加编译器可扩展性,并且创建一个像Visual Studio一样友好的IDE听起来更令人生畏.
基于AST的宏C#在允许更多“创造性滥用”语言方面会有很长的路要走,但我觉得真正的前进方向是Language-oriented programming.这种方法已经被提倡多年,但这个范式的第一个系统是我个人觉得真正吸引人的是JetBrains’ Meta Programming System.它似乎还不是很知名,我当然没有实际使用它的实践经验,但他们已经发布了使用这个系统构建的优秀产品,所以它必须合理实用.该教程展示了它可扩展的程度,这真的很棒 – 特别是如果以前没有看过面向语言的系统.
如果要沿着这条路线前进,那么只有部分现有的Mono编译器是相关的.你可能有意义地重用代码gen的大部分,但显然解析器完全没用.
类似于MPS的系统,但编译为.NET并很好地集成到Visual Studio中,确实非常受欢迎.
(并且回答你直接问的问题:我认为很难做到这一点很好地看到广泛的采用,但对于一些伟大且有动力的开发人员来说肯定不是不可能的)
内容总结
以上是互联网集市为您收集整理的c# – 使用Mono编译器/创建一个新的仍在输出Windows EXE?全部内容,希望文章能够帮你解决c# – 使用Mono编译器/创建一个新的仍在输出Windows EXE?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。