资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,3,编译程序,目标程序,源程序,就是把高级语言程序翻译成等价的低级语言的过程。,编译系统:编译程序和运行程序,1.1,什么是编译,4,词 法 分 析,语 法 分 析,语 义 分 析,中间代码生成,优 化,目标代码生成,目标代码,源 程序,符 号 表 管 理,错 误 诊 查 处 理,1.2,编译程序的逻辑结构,5,1.3,编译器各阶段的工作,源程序:,PROGRAM m;,VAR a,b,c:real;,BEGIN,read(b,c);,a:=b+c*60;,write(a),END.,6,1.3.1,经词法分析源程序被加工成单词流,7,赋值语句,变 量,:=,表达式,表达式,+,项,项,因子,b,项,*,因子,因子,c,60,a,1.3.2,赋值语句经语法分析生成分析树,8,:=,a,+,b,*,c,inttoreal,60,1.3.3,赋值语句经语义分析生成语法树,9,1.3.4,生成中间代码,temp1:=inttoreal(60);,temp2:=c,*,temp1;,temp3:=b+temp2;,a:=temp3;,10,优 化,Temp1:=c*60.0,a :=b+temp1,生成目标代码,movf,c ,r2 ;,mulf,#60.0 ,r2 ;,movf,b ,r1 ;,addf,r2 ,r1 ;,movf,r1 ,a ;,1.3.5,编译后端,中间代码,11,1.3.6,维护,符号表,12,1,.3.7,错误的诊查处理,编译程序在各个阶段应,诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。,编译程序应,报告出错地点,并给出简明准确的提示信息。,13,1.4,编译程序(器)的组织,前端和后端,源程序 中间代码 目标代码,仅依赖源程序 仅依赖目标计算机,前端,后端,14,遍(,PASS),:,对输入文件(源程序或其等价的中间形式)从头到尾扫视,完成预定的处理。,遍,PASS,输入文件,输出文件,15,词法,分析,语法分析,语义分析和,中间代码生成,源程序,中间代码,符 号 表 管 理,错 误 的 诊 查 处 理,把前端组织成一遍扫描,16,1.5,编译器的设计,编译程序,源程序,目标程序,抽 象,目标,编译,运行,17,首先研究源程序的语法和语义及运行模型,源是设计编译程序的出发点。,研究目标计算机,设计目标代码的指令系统,它是由目标计算机扩充而成,扩充后的计算机称作抽象计算机。目前的通用计算机往往和源语言执行模型不一致。,设计编译程序由几遍完成,每遍的工作等。,18,1.6,教和学的几个问题,重要性:,新的处理器的研制;,处理字符串的一般方法;,构造大程序的方法。,研究课题:,新的语言及实现技术;,构造编译程序的工具;,并行编译技术。,19,学习方法,:,(1),源程序是源泉;,(,2)把每个阶段放到整个编译程序结构中,学习;,(3)认真做作业。,每周有一次答疑。,参与网上教材的修改与创新。,20,1.7,教材和参考书,1.7.1,教材,1.,杜淑敏等编著,编译程序设计原理:,北京大学出版社,1997.12。,2.网络版,。,21,(,1),吕映芝等,,编译原理:,清华大学出版社,1998。,(2),陈火旺等,程序设计语言,编译原理:,国防工业,出版社,1984。,(3),Alfred,V.Aho,Ravi,Sethi,Jeffrey,D.,Ullman,Compilers:,Principles,Techniques,and Tools,Addison-Wesly,1986。,(4)Andrew W.,Appel,and,Maia,Ginsburg,,Modern Compiler Implementation in C,Cambridge University press,1998,1.7.2,参考书,22,
展开阅读全文