国内一个开源小组的C语言编译器项目
2009-06-04 22:53
267 查看
项目地址:http://www.tok.cc/
三段式架构:从编译器运行期间各模块的任务特点来看,由传统观点“前端”跟“后端”把架构分为两大模组以维护角度来说,如此划分来实现存在一些问题,主要体现在改变源语言或目标机器的工作量之上。在任何编译体系中有一个共同特性,越靠前的模块跟具体语言的关系越紧密,越往后的模块则跟具体机器的关系越紧密,而位于体系结构中间的模块相对来说是独立的,如果能把该边界区域最大化便可以提高编译器的维护性,使之可以较容易的改变源语言或目标机器,这就是所谓三段式结构。
具体实现:
(1)一般而言,多数语言的语义是非常接近的,语义分析与语法分析模块的分离,使之解析在更一般的形式之上,如中间抽象形式。
(2)后段根据“中间抽象形式”完成虚指令编码。
(3)虚指令编码到物理机编码。
优点体现在以下两方面:
(1)降低了与具体语言的相关性,符号收集原本可以在语法分析阶段完成,但是符号跟具体语言的相关性不高。
(2)语义分析从语法分析器中独立出来,严格来说这也是为了降低与具体语言的相关性,语言的差异主要体现在词法跟语法上,语义上大部分是相似的,让语义分析跟语法分析独立到不同的模块中可以尽可能地一般化编译器的后段,理想情况下,可以在不需要修改后段就能完成对前段的维护。
相关文章推荐
- 介绍一个国内开源操作系统项目
- 一个下拉刷新的开源项目
- 推荐一个开源项目和一个免费工具
- 准备启动一个开源项目 - 技术族谱 - 先期利用Goolge云计算平台
- 国内知名互联网企业开源项目简介及Git位置
- VisualStudio,用C#写的一个开源移动APP,资产管理类项目SmoSec
- 一个安卓开源项目网站
- 原创开源项目TinyFC: 一个模仿大型类库MFC的小型类库(VB6实现)
- ImageSharp一个专注于NetCore平台图像处理的开源项目
- 国内互联网公司的开源项目及github地址汇总
- 开源项目 aspnetcdn 是一个用Asp.Net打造的可用编程扩展的CDN服务器模型
- [导入]发现一个好站点,推荐一下 (.net 开源项目)
- 【码云周刊第 3 期】来自国内开发者的实战项目,开源让通讯从未如此简单!
- 发起一个开源项目合租财务管理 感兴趣的来
- Android上的一个离线地图开源项目
- 基于 React-Native 的高仿「ONE·一个」开源项目
- Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目
- 介绍一个使用 MVVM 和 RAC 开发的开源项目 MVVMReactiveCocoa
- 如何熟悉一个开源项目