第1章-编译概述.ppt
《第1章-编译概述.ppt》由会员分享,可在线阅读,更多相关《第1章-编译概述.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高级语言汇编语言SOURCE PROGRAMAssemble PROGRAM?翻译程序?翻译程序?TRANSLATER 为什么要学习编译原理为什么要学习编译原理程序设计语言是计算机软件专业的重要核心程序设计语言是计算机软件专业的重要核心学习编程的历程:学习编程的历程:C C语言汇编语言数据结构语言汇编语言数据结构 北京林业大学信息学院北京林业大学信息学院为什么要学习编译原理为什么要学习编译原理必修主干课程必修主干课程,操作系统和编译系统构成程序,操作系统和编译系统构成程序设计者与计算机之间的基本界面。设计者与计算机之间的基本界面。通过学习该课程,掌握编译的基本理论、常用通过学习该课程,掌握编译
2、的基本理论、常用的编译技术,了解编译过程及编译系统结构和的编译技术,了解编译过程及编译系统结构和机理。能运用所学技术解决实际问题,能机理。能运用所学技术解决实际问题,能独立独立编写一个小型编译系统编写一个小型编译系统。此外,通过学习编译原理可以更好地理解程序此外,通过学习编译原理可以更好地理解程序语言的内部机制语言的内部机制,从而更好地理解和运用程序从而更好地理解和运用程序设计语言。能运用编译程序构造的原理和技术设计语言。能运用编译程序构造的原理和技术完成完成相关软件工具的设计和开发相关软件工具的设计和开发工作。工作。北京林业大学信息学院北京林业大学信息学院为什么要学习编译原理为什么要学习编译
3、原理计算机软件学科计算机软件学科理论与实践相结合理论与实践相结合的典范。的典范。在学习过程中既要注重该领域在理论上取得在学习过程中既要注重该领域在理论上取得的完美结论,也要注重这些理论在实际中的的完美结论,也要注重这些理论在实际中的应用。应用。北京林业大学信息学院北京林业大学信息学院先修课程先修课程要求先学习以下课程要求先学习以下课程1.程序设计语言程序设计语言2.算法与数据结构算法与数据结构:栈分配、堆分配、静态分配等各:栈分配、堆分配、静态分配等各种存储分配方式。线性表、二叉查找树、哈希表等多种存储分配方式。线性表、二叉查找树、哈希表等多种数据结构。种数据结构。3.离散数学离散数学:集合论
4、与数理逻辑是进一步学习形式语:集合论与数理逻辑是进一步学习形式语言与自动机理论的数学基础。言与自动机理论的数学基础。最好学习过或同时学习以下课程最好学习过或同时学习以下课程1.软件工程软件工程:掌握大型程序设计以及工程化的软件生:掌握大型程序设计以及工程化的软件生产方法。产方法。2.形式语言与自动机形式语言与自动机:相当于本课程中词法分析与语:相当于本课程中词法分析与语法分析的理论基础。法分析的理论基础。北京林业大学信息学院北京林业大学信息学院李冬梅,施海虎,李冬梅,施海虎,编译原理编译原理,人民邮电出版社,人民邮电出版社教材教材参考书参考书李建中译,李建中译,编译原理编译原理(龙书龙书),机
5、械工业出版社,机械工业出版社陈火旺陈火旺 刘春林等,刘春林等,程序设计语言编译原理程序设计语言编译原理,国,国防工业出版社防工业出版社吕映芝,张素琴等,吕映芝,张素琴等,编译原理编译原理,清华大学出版社,清华大学出版社 北京林业大学信息学院北京林业大学信息学院要求及学习方法要求及学习方法平时(平时(30%30%)无故旷课:无故旷课:一本教材,一本教材,认真听课认真听课:以讲义为主,板书为:以讲义为主,板书为辅辅-做适当的笔记做适当的笔记认真完成课堂和课后认真完成课堂和课后作业作业完成要求的完成要求的课外实验课外实验内容内容期末(期末(70%70%):闭卷笔试闭卷笔试课程特点:理论性强,算法复杂
6、课程特点:理论性强,算法复杂 北京林业大学信息学院北京林业大学信息学院第第1 1章章编译概述编译概述1.1.掌握编译程序中所涉及的有关名词术语掌握编译程序中所涉及的有关名词术语2.2.理解编译程序总的框架,明确编译程序工理解编译程序总的框架,明确编译程序工作的基本过程及各阶段的基本任务作的基本过程及各阶段的基本任务教学目标教学目标 北京林业大学信息学院北京林业大学信息学院1.1.程序的翻译程序的翻译1.2.编译程序的组成编译程序的组成1.3.编译程序构造编译程序构造 1.4.编译技术的应用及发展编译技术的应用及发展教学内容教学内容 北京林业大学信息学院北京林业大学信息学院低级语言低级语言(Lo
7、wlevelLanguage)字位码、机器语言、汇编语言字位码、机器语言、汇编语言特特点点:与与特特定定的的机机器器有有关关,功功效效高高,但但使使用用复复杂杂、繁繁琐、费时、易出错琐、费时、易出错高级语言高级语言-Fortran、Pascal、C语言等语言等特点:不依赖具体机器,移植性好、对用户要求低、特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。易使用、易维护等。1.11.1程序的翻译程序的翻译 北京林业大学信息学院北京林业大学信息学院源程序源程序 用汇编语言或高级语言编写的程序称为源程序用汇编语言或高级语言编写的程序称为源程序目标程序目标程序 用用目标语言目标语言所表示
8、的程序所表示的程序 目标语言:可以是介于源语言和机器语言之间的目标语言:可以是介于源语言和机器语言之间的“中间中间语言语言”,可以是某种机器的机器语言,可以是某种机器的机器语言,也可以是某机器的汇也可以是某机器的汇编语言。编语言。翻译程序翻译程序将将源程序源程序转换为转换为目标程序目标程序的程序称为翻译程序。它是的程序称为翻译程序。它是指各种语言的翻译器,包括汇编程序和编译程序,是汇编指各种语言的翻译器,包括汇编程序和编译程序,是汇编程序、编译程序以及各种变换程序的总称。程序、编译程序以及各种变换程序的总称。北京林业大学信息学院北京林业大学信息学院源程序、翻译程序、目标程序源程序、翻译程序、目
9、标程序三者关系:三者关系:源程序源程序翻译程序翻译程序目标程序目标程序SOURCEPROGRAMTRANSLATEROBJECTPROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出即源程序是翻译程序的输入,目标程序是翻译程序的输出SOI 北京林业大学信息学院北京林业大学信息学院汇编程序汇编程序若源程序用汇编语言书写,经过翻译程序得到用机器语言若源程序用汇编语言书写,经过翻译程序得到用机器语言表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过程称为程称为“汇编汇编”(Assemble)编译程序编译程序若源程序是用高级语言书写,
10、经加工后得到目标程序,上述若源程序是用高级语言书写,经加工后得到目标程序,上述翻译过程称翻译过程称“编译编译”(Compile)汇编程序与编译程序都是汇编程序与编译程序都是翻译程序翻译程序,主要区别是加工对象的,主要区别是加工对象的不同。由于汇编语言格式简单,常与机器语言之间有一一对不同。由于汇编语言格式简单,常与机器语言之间有一一对应的关系。汇编程序所要做的翻译工作比编译程序简单的多应的关系。汇编程序所要做的翻译工作比编译程序简单的多。北京林业大学信息学院北京林业大学信息学院源程序的编译和运行源程序的编译和运行编译或汇编阶段编译或汇编阶段运行阶段运行阶段源程序源程序目标程序目标程序编译程序编
11、译程序或汇编程序或汇编程序输出数据输出数据目标程序目标程序+运行子程序运行子程序输入数据输入数据 北京林业大学信息学院北京林业大学信息学院工作过程工作过程解释程序(解释程序(Interpreter)(类似于口译,不生成目标代码)(类似于口译,不生成目标代码)对源程序进行解释执行的程序。对源程序进行解释执行的程序。输出数据输出数据解释程序解释程序输入数据输入数据源程序源程序 特点:与编译系统比较,解释系统较简单、特点:与编译系统比较,解释系统较简单、可移植性好,易于查错,但速度慢可移植性好,易于查错,但速度慢 北京林业大学信息学院北京林业大学信息学院“编译编译-解释执行解释执行”系统系统源程序源
12、程序编译程序编译程序源程序的中间形式源程序的中间形式输出数据输出数据解释程序解释程序输入数据输入数据 北京林业大学信息学院北京林业大学信息学院.java java源程序文件.class 二进制字节码文件编译例例如如JavaJava语言语言 北京林业大学信息学院北京林业大学信息学院 所谓编译过程是指将所谓编译过程是指将高级语言程序高级语言程序翻译为等价的翻译为等价的目标目标程序程序的过程。的过程。翻译外文资料:翻译外文资料:1、能识别出句子中的一个单词;、能识别出句子中的一个单词;2、分析句子的语法结构;、分析句子的语法结构;3、根据句子的含义进行初步翻译;、根据句子的含义进行初步翻译;4、对译
13、文进行修饰;、对译文进行修饰;5、写出最后的译文。、写出最后的译文。1.21.2编译程序的组成编译程序的组成 北京林业大学信息学院北京林业大学信息学院翻译和编译工作的比较翻译和编译工作的比较翻译外文翻译外文编译程序编译程序分析分析识别单词识别单词分析句子分析句子根据语义进根据语义进行初步翻译行初步翻译词法分析词法分析语法分析语法分析语义分析、生成中间代码语义分析、生成中间代码综合综合修辞加工修辞加工写出译文写出译文代码优化代码优化目标代码生成目标代码生成编译过程编译过程 北京林业大学信息学院北京林业大学信息学院词法分析词法分析语法分析语法分析语义分析及中间代码生成语义分析及中间代码生成代码优化
14、代码优化目标代码生成目标代码生成习惯上是将编译过程划分为习惯上是将编译过程划分为5 5个基本阶段:个基本阶段:编译过程编译过程 北京林业大学信息学院北京林业大学信息学院单词单词:是语言的基本语法单位 保留字保留字(如:if、else、while)标识符标识符(如:max、min、str)常数常数 (如:12、6.8、a)分界符分界符(如:+、-、*、/、;、(、)字符序列字符序列任务:任务:根据根据词法规则词法规则分析和识别单词单词一、词法分析一、词法分析编码形式编码形式 北京林业大学信息学院北京林业大学信息学院词法分析程序的结果词法分析程序的结果-二元式二元式y=x+r*6单词值单词值单词类
15、别单词类别y标识符标识符=分界符(赋值)分界符(赋值)x标识符标识符+分界符(加号)分界符(加号)r标识符标识符*分界符(乘号)分界符(乘号)6常数常数 北京林业大学信息学院北京林业大学信息学院有关术语有关术语词法分析词法分析(lexical analysis or scanning)(lexical analysis or scanning)-The stream of characters making up a-The stream of characters making up a source program is read from left to right source pro
16、gram is read from left to right and grouped into tokens,which are and grouped into tokens,which are sequences of characters that have a sequences of characters that have a collective meaning.collective meaning.单词单词-token-token保留字保留字-reserved word-reserved word标识符标识符 -identifier(user-defined name)-id
17、entifier(user-defined name)北京林业大学信息学院北京林业大学信息学院任务:任务:根据根据语法规则语法规则(即语言的文法),分析并识(即语言的文法),分析并识别出各种别出各种语法成分语法成分(如表达式、语句、函数等),(如表达式、语句、函数等),并进行并进行语法正确性检查语法正确性检查。二二、语法分语法分析(编译程序的核心)析(编译程序的核心)文法文法:=:=“=”:=:=“+”|“*”:=:=“(”“)”|北京林业大学信息学院北京林业大学信息学院赋值语句赋值语句标识符标识符标识符标识符整数整数标识符标识符表达式表达式=yx表达式表达式表达式表达式+r6表达式表达式表达
18、式表达式*:=:=“=”:=:=“+”|“*”:=:=“(”“)”|y =x+r*6 北京林业大学信息学院北京林业大学信息学院赋值语句赋值语句标识符标识符表达式表达式表达式表达式表达式表达式表达式表达式标识符标识符整数整数标识符标识符表达式表达式y=x+r*6语语法法分分析析的的结结果果-语语法法树树 北京林业大学信息学院北京林业大学信息学院有关术语有关术语语法分析语法分析(syntaxanalysisorparsing)Thepurposeofsyntaxanalysisistodeterminethesourceprogramsphrasestructure.Thisprocessisal
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 概述
限制150内