资源描述:
《第1章 编译程序概论引论ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章编译程序概论2021/7/27第1章编译原理概论Page2第1章编译原理概论学习目标掌握:编译的各个阶段理解:编译程序的概念了解:解释器,编译程序的结构和组合2021/7/27第1章编译原理概论Page3第1章编译原理概论编译是什么?编译有什么用/为什么需要编译?编译怎么实现这个功能/作用?2021/7/27第1章编译原理概论Page4第1章编译原理概论回想使用VC6.0运行程序的过程:编译链接执行检查词法是否正确检查语法是否正确将正确的高级语言生成机器能理解的目标代码机器语言汇编语言2021/7/27第1章编译原理概论Page5
2、第1章编译原理概论1.1什么是编译程序1.2编译过程概述1.3编译程序的结构1.4编译阶段的组合1.5编译技术和软件工具2021/7/27第1章编译原理概论Page6§1.1什么是编译程序1、翻译程序:2、编译程序:3、汇编程序:高级语言程序(源程序)编译程序低级语言程序(目标程序)汇编语言程序(源程序)汇编程序机器语言程序(目标程序)一种语言程序(源程序)翻译程序另一种语言程序(目标程序)Fortran,Pascal,C…汇编语言,机器语言…2021/7/27第1章编译原理概论Page7§1.1什么是编译程序4.高级语言程序的处理过程
3、(1)编译的方式由“编译程序”把源程序全部翻译成二进制代码,可反复执行。2021/7/27第1章编译原理概论Page8§1.1什么是编译程序4.高级语言程序的处理过程(2)解释的方式一句一句地读进高级语言源程序;边翻译边执行;翻译完成即得出执行结果;下次再执行时重新翻译。由“解释程序”对源程序逐个语句一边翻译,一边执行,执行速度慢,便于观察调试程序。2021/7/27第1章编译原理概论Page9§1.1什么是编译程序4.高级语言程序的处理过程(3)解释器(interpreter)与编译器共同点:都是语言的一个实现系统不同点:解释器是源程
4、序的一个执行系统,工作结果得到源程序的执行结果;编译器是源程序的转换系统,工作结果得到等价于源程序的某种目标程序2021/7/27第1章编译原理概论Page10§1.1什么是编译程序5.编译程序的发展以机器语言、汇编语言为工具以高级语言为工具编译程序自动生成工具自编译技术并行编译技术2021/7/27第1章编译原理概论Page11§1.2编译过程2021/7/27第1章编译原理概论Page12§1.2编译过程1、词法分析阶段从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(Token)。单词
5、:语法上具有独立意义的最小单位(标识符,基本字,算符,界符等)识别规则:词法规则源程序(字符流)翻译程序单词符号串(token串)在数中出现非数字字符标识符不是以字母和下划线打头词法错误§1.2编译过程2021/7/27第1章编译原理概论Page13词法错误2021/7/27第1章编译原理概论Page14§1.2编译过程例:源程序beginvarsum,first,count:real;sum:=first+count*10end.r0u;;stliafe,rt:nmuus△acro△v,nigebs*1tnuoct+sirf=:
6、m.nde源程序在文件中的表示空格换行字符的内部表示即ASC码单词表示成二元式(单词的种别,单词自身值)(基本字,real)(标识符,first)(冒号,:)(逗号,,)(标识符,count)(分号,;)(基本字,var)(逗号,,)(标识符,sum)(基本字,begin)(赋值号,:=)(加号,+)(标识符,first)(标识符,sum)词法分析后程序的图形表示……2021/7/27第1章编译原理概论Page15§1.2编译过程2、语法分析阶段任务:在词法分析的基础上,将单词序列分解成各类语法短语,表示成语法树。识别规则:语法规则。
7、判断输入串是否构成一个语法上正确的程序,并生成语法树。单词符号串(token串)翻译程序语法短语else没有匹配的if表达式缺少分号结尾语法错误§1.2编译过程2021/7/27第1章编译原理概论Page16语法错误2021/7/27第1章编译原理概论Page17§1.2编译过程例:赋值语句sum:=first+count*10赋值语句规则<赋值语句>::=<标识符>“:=”<表达式><表达式>::=<表达式>“+”<表达式><表达式>::=<表达式>“*”<表达式><表达式>::=“(”<表达式>“)”<表达式>::=<标识符><表达
8、式>::=<整数><表达式>::=<实数>赋值语句标识符:=表达式表达式+表达式标识符first表达式*表达式标识符count整数10sum2021/7/27第1章编译原理概论Page18§1.2编译过程3