1 / 68
文档名称:

开发C编译器研究与实践论文.pdf

格式:pdf   页数:68页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

开发C编译器研究与实践论文.pdf

上传人:gd433 2015/10/26 文件大小:0 KB

下载得到文件列表

开发C编译器研究与实践论文.pdf

相关文档

文档介绍

文档介绍:锄㈠:鉯鳓。∥:,曼.‘。籌≈~一———酽锄到~个更高效的编译器。,贰獁一“一。:摘要一—”一杂、难度较高而需要投入较多的人力、物力和花费较长的研制周期。过去编译系统的研制均要求程序员精通芄豢焖俚慕氡嘁肫鞯目7ⅲ醵滔钅靠7⒅芷冢琹眺上可以得塑堡查兰堡主兰垡丝兰件,重写目标代码生成和优化功能程序,为新的目标机器开发镅员嘁肫鳌这个方法不实际上是开发编译程序的基础平台,它采用的技术代表着编译技术的发展方向。,灰弧钦庵种С侄嘤镏帧⒍嗄勘昊嘁胂低持凶钣写硇缘摹ǜ鱿低场!舅壳耙阎编译系统是任何计算机系统中不可缺少的重要部分。但是编译系统的研制冈其技术复是针对某一种程序设计语言和某一种目标机而专门编写的。随着计算机的飞速发展,这种传算机芯片不断推陈出新,研制支持多目标机的编译系统越来越显得重要,编泽榉序的开发者们认识到只有既支持多语种又支持多目标机的编译系统才具有生命力和竞争价值。这种系统持的语言有、、灰岩浦驳钠教ㄓ幸话俣嘀郑婕岸之所以有如此广泛的移植和使用,其原因除了它的源代码公开之外,更重要的原因应归于其独特的结构。其清晰的前端语法树结构、高度概括提供了有力的支持。,一一。目前,ⅰS捎贕的这种优点,我们选择它对新目标机进行移植。本文作为前导性的尝试,提出一个简单的处理器模型,通过对目标机重写机器描述,实现了某晒σ浦病NR院笫迪侄訫浦睴打下来了基础。在实践开发新语言编译程序或移植至新目标机的基础,同时还可以用于进行新编译技术,如面向新体系结构的优化技术研究与实验。此外,我们借助嘁牍讨胁闹形糯隦文统的方法已经很难满足需要。进入八十年代后期,随着国外各种软件公司的兴起以及各种计十多种处理机,六十多种系统。的抽象机中间语言、简洁有力的后端机器描述等三部分为快速实现多语种开发、多平台移植过程中我们发现,此婆哟蟾丛樱涫的诓拷峁骨逦际醭墒欤唤隹捎美醋魑.———手一’,
塑坚盔堂婴:皿伪と!—舶船,瓹,狽琤.·甀,琣,瓵,甇’/&.瑆..疭...
堑坚查兰堡:堂些堡兰——致谢朱少波二零零三年于求是园先要向姚老师致以最崇高的敬意。多年来谝鲜Φ闹傅枷拢髡咄乜砹酥J睹妫銮苛创新精神,提高了科研工作能力,其中的每一个进步都与姚老师的谆谆教诲和严格要求分不开。姚老师思维敏捷,学识渊博,其严谨的治学作风和求实的科学态度使作者受益孵浅,升将对作者今后的学****鹤鞑钤兜挠跋臁T谖H舜κ路矫婕吧钐确矫妫鲜σ哺作者许多潜移默化的影响。中,刘鹏老师作为课题的负责人,在课题研究过程中与作者有过许多有益的讨论,在刘老师的帮助下,作者的软硬件水平以及系统方面的知识有了长足的提高,史册老师也给作者在科研和阅读文献方面提供了很多的帮助,在此对两位老师的帮助和指导表示衷心的感谢。在这里作者还要特别感谢一同担任课题工作的严励、黄卫兵和琚小明同学,与他们的讨论和研究总能得到不小的收获。作者还要感谢实验室的各位师兄弟们,他们是周莉,洪享,陈继承,刑文峰,王哲最后,作者还要特别感谢父母、家人和亲戚朋友。有了他们的支持,才使作者感觉到不疲惫,使作者有信心和勇气去面对困难、面对未来、嬗接挑战作者硕士阶段的科研工作和本文是在姚庆栋教授的悉心指导下完成的。在这里,作者首在这近三年的实际工作中,刘鹏老师和史册老师也给予作者很多指导和帮助。在课题细和他们在一起的日子是愉快的,和他们的合作是圆满的。
第一章绪论§为什么要用编译器门塑堑垄兰塑』:兰篁堡茎或程序已成必要,这样计算机就可以执行所需的计算。开始时,这些程序都是用机器语言起初人们担心这是不可能的,或者即使可能,目标代码也会因效率不高而没有多大用处。一包括了文法的霾愦危型、汀型和臀姆ǎ移渲械拿恳桓龆际瞧淝罢叩淖在本世纪年代,由于冯·诺伊曼在存储·程序计算机方面的先锋作嘈匆淮嘈吹摹;饔镅跃褪潜硎净魇导什僮鞯氖执耄纾表示在处理器将数字浦恋刂进制闹噶睢5比唬就与前面的机器指令等价偕璺糯娲⒌刂穢是;惚喑绦将汇编语言的符号代码和存储地址翻译成与机器语言相对应的数字代码。汇编语言大大提高了编程的速度和准确度,人们至今仍在使用着它,在编码需要极快的速度和极高的简洁程度时尤为如此。但是,汇编语言也有许多缺点:编写起来也不容易,阅读和理解很难;而且汇编语言的编写严格依赖于特定的机器,所以为一台计算机编写的代码在应用于另一台计算机时必须完全重写。很明显,发展编程技术的下一个重要步骤就是以一个更类似于数学定义或自然语言的简洁形式来编写程序的操作,它应与任何机器都无关,而且也可由一个程序翻译为可执行的代码。例如,前面的汇编语言代码可以写成一个简洁的与机器无关的形式带领的一个研究小组对镅及其编译器的开发,使得上面的担忧不必要了。但是,由于当时处理中所涉及到的大多数程序设计语言的翻译并不为人所掌握,