类c微小编译器的设计与实现-2016-5-20

类c微小编译器的设计与实现-2016-5-20

ID:8850197

大小:45.27 KB

页数:43页

时间:2018-04-09

类c微小编译器的设计与实现-2016-5-20_第1页
类c微小编译器的设计与实现-2016-5-20_第2页
类c微小编译器的设计与实现-2016-5-20_第3页
类c微小编译器的设计与实现-2016-5-20_第4页
类c微小编译器的设计与实现-2016-5-20_第5页
资源描述:

《类c微小编译器的设计与实现-2016-5-20》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、类C微小编译器的设计与实现摘要随着计算机的广泛应用,计算机编程语言从早期的机器语言到汇编语言进行不断地演进,以及到现在的各种高级语言的形态。编译器技术是计算机技术发展的基石,同时也是进展速度最快的计算机科学,这个分支已经进行了几十年的研究,形成了非常成熟的体系,编译器的设计集中体现了计算机的本质和发展的成果。其核心思想是在机器语言和算法的逻辑结构转换从一种基础到另一种代表语言的过程。最终形成高级别语言,甚至在高级语言上的虚拟平台上运行的机器语言,并且以硬件的机器指令实现,以上所述的改造涉及到的编译

2、器技术的应用。本系统采用Go作为编程语言。介绍了开发的相关内容,完成的功能,以及实现的记录。着重解释了一些编写编译器的关键点和技术要点和理论。关键词:编译技术,编程程序,高级语言第一节绪论1.1开发背景在计算机技术与科学的迅猛发展下,计算技术应用在了非常广泛的领域当中,相当的计算机应用层出不穷,极大地丰富了我们的生活,学习和工作。与此同时,也有许多用于编写高级应用的编程语言作为支撑,才得以构建非常复杂的系统和架构。程序设计是一门艺术,设计者通过特定语言的编译器将源代码翻译为体系结构相关的目标程序,

3、,从而能够最终达到程序执行的目的,,一个好的程序语言要满足工程的需要也要搭配良好的语法设计。从20世纪60年代开始,编译器的设计就是计算机科学技术发展和研发中的一个热门主题。虽然编译器设计的历史很长,作为计算机技术来说相对成熟,编译器还是一个由高级抽象的源代码向计算机机器指令转换的高效映射工具,随着电脑软硬件水平的不断提高,编译器的设计也在不断地变化,目标机体系结构也在不断地改进,软件越来越复杂,其规模也越来越大。编译器设计问题在高级层次上大致稳定,例如面向对象语言,面向过程语言,函数语言都在各自

4、的领域发挥着重要的作用,并且每个领域的研究都有着非常积极的意义,不同领域相互学习,相互弥补,并且结合工业界的积累,不断自我完善,从一个抽象的计算机科学问题,逐渐变成了一个计算机工业界不断追求和寻找优化的目标,大公司对于编程语言的要求非常高,因为一个良好的编程语言能很大的提高程序员的工作效率,良好的程序组织结构也能保证项目的可重用性,这样实际生产中的工程能够保证高效和稳定。当我们深入其内部研究编译器时会不断明白,编译器的内部结构同样也在顺应着需求一直在变化。此外,由于我们能够提供给编译器本身的计算资

5、源,例如内存等,也在不断增加。所以,现代编译器可以采用比以前更加复杂的算法,却又不会损失过多的时间。除此之外,编译器前后端分离,能够提供一种更加合理的方式,把编程过程解耦,比如在编辑时就主动触发前端语法分析的过程,检查语法错误,而不需要等到最后编译的时候进行,或者通过解析条件自动生成代码,减少开发的工作量,很多编译“前端”技术,如文法、正则表达式、语法分析器以及语法制导翻译器等,仍然被广泛使用。1.2开发的目标和意义GCC的复杂程度基本上可以和Linux操作系统比肩,代码量,工程量非常之大,是世界

6、各地的优秀工程师合力通过版本控制系统贡献开发的,单凭一个人很难做到这样规模的编译器,所以编写甚至读懂这样的一个GCC的编译器是一件非常困难的事情。很多的计算机专业的同学从来没有编写过一个完整的编译器,但是,几乎任何程序都和编译器有关,而且任何一个软件工程师都应该知晓编译技术的基本结构和原理。编译设计的原理和技术还可以用于编译器设计之外的众多领域。因此,这些原理和技术会在工程实践中被反复使用。研究编译器的实现和设计程序语言、体系结构、算法和软件工程。编译器的设计从本质上来说是一项工程,它所使用的方法

7、必须很好地解决现实中出现的各种解释逻辑(即用真实的语言编译且在真实的机器上能够执行的程序)。在一般情况下,开发编译器的人必须面对机器结构,很少能够去改善设计。在开发过程中做什么样的分析和转换,以及什么时候去做,这些都是工程上的选择,但正是这些选择决定了一个编译器的性能高低。本实验就建立在一个自主开发的微型编译器基础之上的,该编译器虽然功能类似于C语言这样的经典编译器,但是缺少必要的标准库和完整的实现,但也已经完全具备了一个编译器应有的所有特征。虽然本实验只是一个规模很小的微型编译器的开发,作为一次

8、较为完整的编译开发实践,它已经足够透彻地了解一个编译器开发过程,又能更深刻地理解和运用编译开发过程中的众多技术和方法,并能在此基础上针对编译器的优化展开深入的讨论,这些对于自己以后的研究和发展方向将起到非常大的推动作用。1.3编译原理的发展情况在编译器原理的进化历程里,提高编译的效率始终是编译器专家挖掘的领域之一,编译效率指的是根据编译器产生的目标代码的时间指标和空间指标的代价决定的效率,所以编译优化要围绕时间和空间这两个方面来实施。在编译时针对过程进行优化的技术有很多,它们通常是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。