OCCL编译器——基于Linux系统

来源 :北京化工大学 | 被引量 : 2次 | 上传用户:gfgfiiii
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本课题的主要目的是设计一个优化的小型C编译器,它能在Linux操作系统下工作,将标准C代码编写的源程序翻译成一种自定义的虚拟机语言,并且能够执行出正确结果。OCCL是 Optimizing C Compiler for Linux的头字母缩略语。选择此课题的原因主要有下面几个。首先,编译器是一个相当复杂又非常重要的程序。通过一个C编译器开发程序的探索,将会对编译的各个环节有深刻的理解。另外,C是一种常用的过程式语言,当前对象式语言的载体基本上是过程式的,因此掌握类似的C等过程式语言的编译技术,不难实现对象式语言的编译程序。最后,我们最终实现的目标代码是基于一个自定义的虚拟机器VMC的代码,通过对此代码的解释执行来得到最终运行结果。这个技术可以保证OCCL编译器基于平台的无关性。 OCCL编译器设计的是三遍完成。第一遍用于词法分析和语法分析;第二遍用于语义分析和中间代码生成;第三遍用于目标代码生成和结果执行。这样整体程序设计结构清晰,便于实现优化措施,目标代码质量高。最后实现的OCCL编译器,对属于我们选择的ANSI C语言集合里的程序代码能够进行正确的编译。同时,在实现的每一步中,都尽量<WP=4>应用一些新思想,新方法,使OCCL编译器有自己的特色。例如,在符号表设计过程中,采用分离层次的杂凑表这一数据结构来实现,提高了编译器的查找速度。在生成目标代码时,采用的方法是先生成虚拟机代码,再对虚拟机代码进行解释执行得出最终运行结果。这样就便于OCCL编译器的在不同目标机器上的移植了。
其他文献
随着计算机技术的发展,企业在信息化的过程中,难以保持一个统一的技术平台,因此,企业信息资源常常由不同的操作系统、不同的编程语言、不同的技术模型、不同的数据库系统组成。将
维吾尔语名词词汇语义网是以名词词汇所构成的同义词概念集合为描述对象,以名词词汇间的潜在语义关联为连接方式,通过其中的组织与联系,以词义与语义关系为经纬建立的一种词汇语
矩阵分解算法因其模型简单效果显著在很多机器学习任务中备受欢迎,尤其在社区发现、个性化推荐以及文本分析等任务中更是有着极其广泛的应用,然而,矩阵分解算法在处理大规模训练
该文作者曾亲自参与南开太阳公司IC卡智能水表信息管理系统和北京301医院病人订餐系统的设计与实现.针对在这两个系统开发过程中所发现的开发人员对软件工程的认识、开发方法
该文利用数理统计、拓扑、符号动力学等数学原理及现代金融理论、小波理论相结合的新方法一计算机实验数学的方法,研究基于金融领域的非线性复杂系统的混沌分形演化,形成了以
随着信息技术的发展,数据仓库在许多领域发挥了越来越重要的作用。面对当今世界中逐渐增多的数据和信息,人们希望以更低的成本、更快的速度做出及时、准确的决策。业务智能化系
传统市场调查方法和当前的网络市场调查方法都存在着种种不足,为了克服现代市场调查方法的缺陷,该文将现代密码学和市场调查相结合,设计了两种基于Mobile Agent的匿名网络市
该文讨论的是一类限制在欧式平面上的NP-Hard问题,这类问题可以称为"平面距离和优化问题".该文以实际问题为例介绍这种具有通用意义的近似方案设计技术.该文先阐述随机平面分
该文研究web访问挖掘的主要目的是获取用户访问web的目标、兴趣和偏爱等行为模式,以此来改进web站点的结构和web提供服务的方式,实现站点的自动化管理和信息个性化服务,从而
在传统的系统设计流中,往往要在设计的末期即在进行软件和硬件整合时才能对整个目标系统的性能进行验证,许多重要的性质如性能、成本、实时性等很大程度上在设计的早期决定,