欢迎来到天天文库
浏览记录
ID:52101704
大小:597.00 KB
页数:50页
时间:2020-03-31
《《编译原理基础》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中原工学院软件学院SoftwareCollege,ZhongyuanUniversityofTechnology计算机技术概论IntroductiontoComputerTechnologies第6章编译原理基础PrinciplesofCompilation中原工学院软件学院韩玉民编译程序是高级语言的支撑基础,是计算机系统中重要的系统软件之一。第6章编译原理6.1程序设计语言的编译与解释6.2形式语言6.3第一阶段—词法分析6.4第二阶段—语法分析6.5第三阶段—语义分析与中间代码生成6.6第四阶段—代码优化6.7符号表管理和错误处理6.8第五
2、阶段—目标代码生成第6章编译原理程序设计语言分成两大类:低级语言:包括机器语言和汇编语言,主要是面向机器的。高级语言:高级语言则是面向应用的,分成很多种,如FORTRAN、Pascal、C、C#、VB、Java等。6.1程序设计语言的编译与解释6.1.1程序设计语言机器语言本身是有由0和1组成的,符合计算机的硬件特性,因此能够直接执行。但用机器语言编写程序很不方便且容易出错,因此就用助记符代替机器语言,产生了汇编语言。汇编语言比机器语言在可读性方面有了进步,但是其依赖具体机器的特性无法改变,给程序设计语言增添了难度。6.1.2程序的编译与解释6.
3、1程序设计语言的编译与解释高级语言不能直接在机器上运行,它不是面向机器,而是面向应用的,因此,要想让高级语言运行必须有编译程序。编译程序就是这样的一种程序,它能将高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序。1.编译方式6.1程序设计语言的编译与解释高级语言程序的执行通常分为两个阶段,即编译阶段和运行阶段,源程序的运行过程如图1-1所示。#includeMain(){For(;;){Printf(“HelloWorld!”);}}源程序编译程序011010011001010110010011101010101010110
4、00011111001011111110010101010001010001111101101……目标程序编译初始数据目标程序、运行系统计算结果输入处理输出程序的编译程序的执行6.1程序设计语言的编译与解释编译阶段将源程序变换成目标程序;运行阶段则由所生成的目标程序连同运行系统(数据空间分配子程序、标准函数程序等)接受程序的初始数据作为输入,运行后输出计算结果。如果目标程序是汇编语言的形式,则需要在编译阶段和运行阶段之间加一个汇编阶段。#includeMain(){For(;;){Printf(“HelloWorld!”);}}源程序汇编程序
5、011010011001010010101011000011111011……机器语言程序ADDA,BMOVB,C……编译程序汇编语言程序编译汇编6.1程序设计语言的编译与解释高级语言编写的程序除了可以通过编译方式外,还可以通过解释程序执行。所谓解释程序是一种语言翻译程序,按动态顺序,读入一条语句,解释一条语句,执行一条语句,即边翻译边执行。源程序解释程序计算结果源程序、输入解释执行输出数据2.解释方式6.1程序设计语言的编译与解释高级语言源程序经编译程序编译的经过目标代码还可以是待装配的目标代码(相对目标代码),这种形式的目标程序通常由多个目标模
6、块组成,各目标模块由相应的源程序模块经编译生成,必须将相关的多个目标模块组装成到一个可执行目标程序中,才能运行。完成集成工作的程序称为连接程序。连接程序还连接目标程序和用于标准库函数的代码,以及连接目标程序和由计算机的操作系统提供的资源(例如,存储分配程序及输入与输出设备)。3.连接程序(linker)6.1程序设计语言的编译与解释解释程序与编译程序的主要区别是:编译程序将源程序翻译成目标程序后再执行目标程序.解释程序是逐条读出源程序中的语句并执行,即在解释程序的执行过程中并不产生目标程序。6.1程序设计语言的编译与解释6.1.3编译程序的编译过
7、程和编译程序的结构编译程序的功能是将用高级语言编写的源程序翻译成等价的低级语言(汇编语言或机器语言)目标程序。编译的过程就是一个不同语言翻译的过程,所以其过程类似于自然语言的翻译。6.1.3编译程序的编译过程和编译程序的结构步骤完成的工作自然语言翻译(英语翻译成汉语)编译程序(源程序翻译成机器目标代码)1根据英文单词拼写规则,识别出各个单词和标点符号等,并检查单词是否有拼写错误。这就是词法分析对源程序进行词法分析,检查有无拼写错误,识别出其中的单词(关键字、标识符等)2根据英文语法规则,对词法分析中得到的各个单词和标点符号等进行分析、检查,看是否
8、能组成一个符合语法规则的句子。因此,该步骤称为语法分析进行语法分析,检查单词串是否组成符合语法的正确的程序语句,如表达式是否正确等3对语
此文档下载收益归作者所有