《编译原理基础》PPT课件.ppt





《《编译原理基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《编译原理基础》PPT课件.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译技术王颖本课程的地位:本课程的地位:l计算机专业的专业基础课计算机专业的专业基础课l是软件技术的基础是软件技术的基础l是计算机专业的学生必修的一门主干课是计算机专业的学生必修的一门主干课作用:作用:l编译原理是介绍如何将高级程序设计语言变换成计算机硬件所能识别的机器语言,以便计算机进行处理l它的理论基础坚实,其形式化系统不仅应用于编译技术,还大量应用于人工智能、多媒体技术及数据库等领域内容内容 介绍编译程序的工作原理与构造方法;详细介绍如何将一个用高级语言 编写的源程序翻译成机器指令程序。学习任务学习任务 掌握编译的理论基础和形式化系统 了解编译的全过程及其具体实现方法学习方法学习方法 认
2、真听讲,认真理解书中的基本概念、基认真听讲,认真理解书中的基本概念、基本原理与基本算法本原理与基本算法弄懂书中的例题与习题弄懂书中的例题与习题在看书或理解例题时,一定要画出相应的在看书或理解例题时,一定要画出相应的细节变化过程,通过画图来加深理解细节变化过程,通过画图来加深理解 在理解的基础上记忆在理解的基础上记忆理论结合实践理论结合实践学习要求学习要求 成绩考核方法成绩考核方法平时成绩占平时成绩占40%期末考试成绩占期末考试成绩占60%平时成绩为:平时成绩为:课堂点名:课堂点名:20%作业:作业:20%第一章第一章 引论引论课前思考l什么是编译程序什么是编译程序l编译过程和编译程序的结构编译
3、过程和编译程序的结构l为什么要学习编译程序为什么要学习编译程序 学习目标 明确编译程序的功能及其在计算机系统明确编译程序的功能及其在计算机系统中的作用。中的作用。了解源语言程序被编译为目标程序的整了解源语言程序被编译为目标程序的整个过程,这个过程一般划分为哪些阶段。个过程,这个过程一般划分为哪些阶段。知道编译技术可用于哪类软件的设计和知道编译技术可用于哪类软件的设计和开发。开发。学习指南l编译程序是现代计算机系统的基本组成部分编译程序是现代计算机系统的基本组成部分之一。编译程序一般由词法分析程序、语法之一。编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程分析程序、语义分析
4、程序、中间代码生成程序、目标代码生成程序、代码优化程序、表序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。通格管理程序和出错处理程序等成分构成。通过课程的学习应掌握各个成分的功能和设计过课程的学习应掌握各个成分的功能和设计原则,以及在编译阶段的逻辑关系。理解他原则,以及在编译阶段的逻辑关系。理解他们怎样作为一个整体完成编译任务的。们怎样作为一个整体完成编译任务的。知识结构程序设计语言与编译程序设计语言与编译l程序设计语言程序设计语言高级语言高级语言汇编语言汇编语言机器语言机器语言l在计算机上如何执行一个高级语言程序?在计算机上如何执行一个高级语言程序?把高级语言程序翻
5、译成机器语言程序把高级语言程序翻译成机器语言程序运行所得的机器语言程序求得计算结果运行所得的机器语言程序求得计算结果翻译程序:就是把一种语言翻译程序:就是把一种语言(称作源语言称作源语言)书写书写的程序,的程序,在不改变语义的条件下在不改变语义的条件下,翻译成另一,翻译成另一种语言种语言(称作目标语言称作目标语言)的的等价等价的程序。的程序。Source ProgramTranslatorTarget ProgramHigh-level LanguageLow-level LanguageCompilerAssembly LanguageMachine CodeAssemblerl编译编译专指
6、由高级语言转换为低级语言专指由高级语言转换为低级语言l解释解释接受某高级语言的一个语句输入,进行解释便接受某高级语言的一个语句输入,进行解释便控制计算机执行,马上得到这句的执行结果,控制计算机执行,马上得到这句的执行结果,然后再接受下一句然后再接受下一句编译程序和解释程序的区别:编译程序和解释程序的区别:Source ProgramTranslatorTargetProgramRunResultDateDateSource ProgramInterpreterResult(边解释边执行)b:=2;a:=b+2;write a;编译程序解释程序movf#2,bmovf b,R1addf#2,R1
7、movf R1,a直接将4的值输出(显示)l编译的转换过程编译的转换过程两阶段转换:编译两阶段转换:编译运行运行源源程程序序编编译译程程序序目目标标代代码码编译时编译时初初始始数数据据运行运行子程子程序目序目标代标代码码计计算算结结果果运行时运行时三个阶段转换:编译三个阶段转换:编译汇编汇编运行运行源源程程序序编编译译程程序序汇汇编编语语言言编译时编译时初初始始数数据据运行运行子程子程序目序目标代标代码码计计算算结结果果运行时运行时汇汇编编程程序序目目标标代代码码汇编时汇编时解释执行l以源程序作为输入,不生成目标代码,一边解释一边执行l能支持交互环境(同增量式编译系统)l优点:直观易懂,结构简
8、单,节省空间,交互方便,易于实现人机对话。l缺点:效率低。因对源程序的循环语句部分要反复解释执行。l共同点:都需进行词法、语法、语义分析。什么是编译程序什么是编译程序l编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统都含有不止一个高级语言的编译程序。对有些高级语言甚至配置了几个不同性能的编译程序。l编译程序作为一个语言翻译程序,也要在编译程序作为一个语言翻译程序,也要在翻译过程中检查源程序的语法和语义,报翻译过程中检查源程序的语法和语义,报告一些出错和警告信息,帮助程序员更正告一些出错和警告信息,帮助程序员更正源程序。源程序。l有关编译程序的术语术语编译程序的源语言(源程序)编译
9、程序的目标语言(目标程序)编译程序的实现语言l给出这些术语的英文术语的英文:编译程序-compiler源语言-source language源程序-source program目标语言-target or object language目标程序-target or object program实现语言-implementation language 编译程序在计算机系统中的所在层来自计算机百科全书的定义来自计算机百科全书的定义 l软件:计算机系统中的程序及其文档l系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。他和具体的应用领域无关,如编译系统和操作系统等。l语
10、言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序。l软件语言:用于书写软件的语言。它主要包括需求定义语言,功能性语言,设计性语言,程序设计语言以及文档语言。高级语言程序的处理过程l先看自然语言的翻译1.识别出句子中的一个个单词2.分析句子的语法结构3.根据句子的含义进行初步翻译4.对译文进行修饰5.写出最后译文编译过程概述编译过程概述 词法分析词法分析Scanner 任务识别单词符号,是最初级的语法分析。例:position:=initial+rate*10;标识符:position算符::=标识符:initial算符:+标识符:rate算符:*整数:10界符:;依循的规则:语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理基础 编译 原理 基础 PPT 课件

限制150内