程序设计语言编译原理(第三版)第1章.ppt
《程序设计语言编译原理(第三版)第1章.ppt》由会员分享,可在线阅读,更多相关《程序设计语言编译原理(第三版)第1章.ppt(35页珍藏版)》请在三一办公上搜索。
1、编译原理,于静洋,程序设计语言,第一章 引论,1.1 什么叫编译程序1.2 编译过程概述1.3 编译程序的结构1.4 编译程序与程序设计环境(略)1.5 编译程序的生成,1.什么是编译程序?,1.1 什么叫编译程序,翻译程序:一种语言程序-另一种语言程序,源语言,目标语言,编译程序:高级语言程序-低级语言程序,汇编程序:汇编语言程序-机器语言程序,解释程序:源语言程序-边解释边执行,(1)编译方式:先编译后执行。,(2)解释方式:以源程序作为输入,但不产生目标代码,而 是边解释边执行源程序本身。,2.“高级语言程序”的执行方式,1.1 什么叫编译程序,编译和解释的主要区别:,是否产生目标代码!
2、,3.,“编译程序”在计算机系统中的位置较接近于“硬件”,1.1 什么叫编译程序,4.发展,20世纪50年代 第一个编译程序 FORTRAN编译程序,目前:编译原理与技术得到迅速发展,现已形成一套比较成熟的系统化的理论与方法,并开发出了一些好的编译程序的实现语言、环境与工具。,当时普遍认为设计和实现编译程序是一件十分困难、令人生畏的事情,1.1 什么叫编译程序,1.2 编译过程概述,The elephant ate an banana.,什么是语言?,for K:=1 to 100 dobeginM:=I+10*K;N:=J+10*Kend,一.类比自然语言翻译和编译过程,英汉 编译的工作过程
3、1)识别单词词法分析2)分析句子语法结构语法分析3)根据句子含义初步翻译语义分析与中间代码产生4)修饰译文优化5)写出最后译文目标代码生成,1.2 编译过程概述,1.词法分析,for K:=1 to 100 dobeginM:=I+10*K;N:=J+10*Kend,基本字 for 标识符 K 赋值号:=常数 1 基本字 to 常数 100 基本字 do 基本字 begin.,1.2 编译过程概述,词法分析,规则:规则描述工具:任务:,依循词法规则.,正规式和有限自动机(FA).,输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词符号,如基本字、标识符、常数、算符、界符等。,1
4、.2 编译过程概述,2.语法分析,for K:=1 to 100 dobeginM:=I+10*K;N:=J+10*Kend,规则:规则描述工具:任务:,依循语法规则.,上下文无关文法.,在词法分析的基础上,根据语言的语法规则,对单词符号串进行语法分析,识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。,1.2 编译过程概述,3.语义分析和中间代码产生,规则:规则描述工具:任务:,语义规则,属性文法,两部分工作:1.对每种语法范畴进行静态语义检查;2.若语义正确,则进行中间代码翻译.,对语法分析器识别出的各类语法单位,分析其含义并进行初步翻译(产生中间代码)。,中间代码:一种独立
5、于具体硬件的记号系统,更接近于机器代码,1.2 编译过程概述,for K:=1 to 100 do begin M:=I+10*K;N:=J+10*K end;,K:=1L1:if 100K goto L2 T1:=10*K M:=I+T1 T2:=10*K N:=J+T2 K:=K+1 goto L1L2:,语义分析后产生的中间代码:,三地址代码,具体实现:三元式,四元式,间接三元式,1.2 编译过程概述,K:=1L1:if 100K goto L2 T1:=10*K M:=I+T1 T2:=10*K N:=J+T2 K:=K+1 goto L1L2:,四元式序列:,1.2 编译过程概述,任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 编译 原理 第三

链接地址:https://www.31ppt.com/p-6011263.html