编译器二次开发定制服务?
数据和 Microsoft 中间语言 (MSIL) 并可选择在磁盘上生成 PE 文件的类。这些类的主要客户端是脚本引擎和编译器。很多时候,对于某个行业的业务而言,所使用的编程语言的某个功能是非常频繁,而别的功能基本很少使用。
因此对于寻附上重点的功能,原有的语言,难以满足要求,
所以世界上出现了很多的专用语言。
但是重新开发一门专用语言,工作量是巨大的,所以跟通用的c,c++,C#,vb, java, delphi相比 很多专用语言的通用功能非常弱, 连基本的语句结构,可能也有很大的缺陷,编辑器和调试器功能就相当弱。
那充,如何在一门成功的主流语言里面,加入所需的功能呢?
能不能开放(不是开源)编译器语法API,这样认都可以跟写c++,vb,C#,java一样,简单的就能开发新的语言元素?
像那个parallet语言,本来只是加入异步支持,却要从头写个全功能的编译器,后面还有编辑器的智能提示,语法高亮,调试...一大堆的问题!
如果编译器(结合IDE)提供二次开发,那么就可以加入自己专用的语法,关键字,扩充已有功能,当然不能去掉已有的功能,但是可以替换 override,overload,或者deprecate(对原有功能进行标记,注为过期,如果使用,提出提示,警告,建议新功能,但向后兼容,可以正确编译运行)。
你喜欢VB,就可以把VB的某些语言功能加入进来,喜欢Java,就把Java中想要的功能加进来,喜欢lisp,就把lisp的功能加进来,python,ruby,boo,js,fortran, matlab, r ...
这样就获得了原编译器的所有功能,编辑器的智能提示,语法高亮等功能,以及IDE的调试等...
注:编译器二次开发,跟.net提供的System.Reflection.Emi不一样。Emit是元数据和中间语言工具,我这里说的目标是开发一门新语言,或者在语言特性(主要是DSL,不是扩充函数,类)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?