编译器二次开发定制服务?
2011-06-23 08:55
253 查看
数据和 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,不是扩充函数,类)
因此对于寻附上重点的功能,原有的语言,难以满足要求,
所以世界上出现了很多的专用语言。
但是重新开发一门专用语言,工作量是巨大的,所以跟通用的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,不是扩充函数,类)
相关文章推荐
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之50---BREW SDK 九大功能之网络服务
- SkyLine_BS_二次开发_WMS服务加载
- 狗崽乐园软件开发定制服务平台
- C# RTX的二次开发(Web服务)WebService 给某人发送消息提醒
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之50---BREW SDK 九大功能之网络服务
- 定制Android系统开发之三——跟着我实现系统服务
- 定制Android系统开发之四——系统服务实现的分析
- 微信的高级接口(通过微信认证后自动获得)可以做什么?微信服务号定制开发能为企业带来什么?
- 安卓GIS 安卓地理信息系统 Android GIS Android 地理信息系统技术服务 二次开发 项目承接
- 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)
- 验证码识别软件定制|验证码自动识别|专业验证码服务|软件开发
- NetSuite二次开发服务改变中小企业发展困境!
- APICloud移动应用定制服务——APP开发案例
- 金蝶K3 ERP二次开发,定制开发
- 定制Android系统开发之二——系统服务
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之51---BREW SDK 九大功能之安全服务
- Spring Cloud微服务开发笔记5——Ribbon负载均衡策略规则定制
- Creo二次开发定制
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之51---BREW SDK 九大功能之安全服务
- (广州)软件开发定制服务,工作流引擎 OA 库存管理系统