信息科学技术学院计算语言课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《信息科学技术学院计算语言课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息科学 技术学院 计算 语言 课件
- 资源描述:
-
1、编译原理任课教师:信息科学技术学院计算语言所什么是编译原理?为什么要学习编译原理?1谢谢观赏2019-8-17 编译器的设计 一般的软件设计:文本编辑器、自动排版、文本编辑器、自动排版、模式识别、程序自动验证、程序自动调试模式识别、程序自动验证、程序自动调试 为计算机分析和理解自然语言提供参考为计算机分析和理解自然语言提供参考2谢谢观赏2019-8-17编译原理 上课时间:周二上午1-2节(单周)周五上午1-2节 上课地点:一教309 上机地点:中文系机房 学习方式:课堂讲解+课后作业+上机实践 考试成绩:试卷成绩+作业成绩+上机成绩3谢谢观赏2019-8-17参考教材 编译原理,清华大学出版
2、社 张素琴、吕映芝 等编著,2005年 编译程序设计原理 北京大学出版社,杜淑敏等编著,1986年 陈火旺 刘春林等 程序设计语言编译原理 国防工业出版社,2000年4谢谢观赏2019-8-17教学要求 掌握编译系统的一般构造原理 掌握编译系统的基本实现技术 熟悉一些自动构造工具5谢谢观赏2019-8-17授课内容第一章第一章 编译程序概述编译程序概述第二章第二章 PL/0PL/0编译程序的实现编译程序的实现第三章第三章 文法和语言文法和语言第四章第四章 词法分析词法分析第五章第五章 自顶向下语法分析方法自顶向下语法分析方法第六章第六章 自底向上优先分析方法自底向上优先分析方法第七章第七章 L
3、RLR分析方法分析方法第八章第八章 语法制导翻译和中间代码生成语法制导翻译和中间代码生成第九章第九章 符号表符号表第一第一章章 代码优化代码优化第一一章第一一章 代码生成代码生成6谢谢观赏2019-8-17编译程序概述 什么是编译程序 编译过程和编译程序的结构 编译技术和软件工具的介绍7谢谢观赏2019-8-17程序设计语言:程序设计语言:用来编写计算机程序的语言。什么是编译程序8谢谢观赏2019-8-17程序设计语言 机器语言:直接用计算机能够识别的二进制代码指令来编写程序的语言。由二进制的指令代码组成。1+3 表示为表示为 10000001 00000001 00000011 是最底层的计
4、算机语言,不需要翻译就可以直接被计算机硬件识别。对应不同的计算机硬件有不同的机器语言。特点:执行速度快,但编写程序的难度大,修改、调试不方便,直观性差,不易移植。9谢谢观赏2019-8-17程序设计语言 汇编语言:又称为符号语言。与机器语言一一对应,采用能帮助记忆的英文缩写符号(指令助记符)来代替机器语言指令中的操作码,用地址符号来代替地址码。用指令助记符及地址符号书写的指令称为汇编指令,用汇编指令编写的程序称为汇编语言源程序。将将X、Y中的内容相加中的内容相加 表示为表示为 ADD X Y 机器不能直接识别汇编语言程序,必须把它翻译为机器语言程序才能执行。特点:比机器语言直观,容易理解和记忆
5、,比高级语言的执行效率高,但通用性和移植性较差。10谢谢观赏2019-8-17程序设计语言 高级语言:与具体的计算机硬件无关,是面向问题的程序设计语言,其表达方式接近于自然语言和数学语言,易于人们接受和掌握。采用类似于数学公式的书写方式:x=1+3 特点:独立于具体的计算机硬件,程序的编制和调试方便,通用性和可移植性好。在计算机执行之前,需要通过编译程序翻译成目标语言程序,或需要通过解释程序边解释,边执行。时间与空间效率比较低。目前比较流行的高级语言有:Visual C,Visual Basic,Java,FoxPro,Pascal,Lisp,Cobol等。11谢谢观赏2019-8-17 比较
6、 机器语言汇编语言高级语言硬件识别是唯一可以识别的语言不可识别不可识别是否可直接执行 可直接执行不可,需汇编、连接不可,需编译/解释、连接 特点面向机器占用内存少执行速度快使用不方便面向机器占用内存少执行速度快较为直观与机器语言一一对应v面向问题/对象v占用内存大v执行速度相对慢v标准化程度高v便于程序交换,使用方便 定位低级语言,极少使用低级语言,很少使用高级语言,种类多,常用12谢谢观赏2019-8-17源程序源程序目标程序目标程序可执行程序可执行程序 编辑编辑 程序程序汇编或汇编或编译程序编译程序连接连接 程序程序用于编写高用于编写高级语言程序级语言程序把目标程序以及所需的功能库等转换成
7、一个可执行的装入程序。完成此功能的程序叫连接程序。编译方式是将高级语言编写编译方式是将高级语言编写的源程序整个地翻译成机器的源程序整个地翻译成机器语言表示的目标程序的方式。语言表示的目标程序的方式。完成此功能的程序叫编译程完成此功能的程序叫编译程序。序。13谢谢观赏2019-8-17什么是编译程序 编译程序的功能:把高级语言程序翻译成等价的低级语言程序。源程序编译程序目标程序 编译程序是现代计算机系统的基本组成部分。从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序。14谢谢观赏2019-8-17编译和解释程序:15谢
8、谢观赏2019-8-17功能功能工作结果工作结果实现技术上实现技术上编译编译程序程序源程序的一个转换转换系统源程序的目标代码目标代码把中间代码转换成目标程序解释解释程序程序源程序的一个执行执行系统源程序的执行结果执行结果执行中间代码解释程序和编译程序的区别解释程序和编译程序的:是否生成目标代码16谢谢观赏2019-8-17编译程序概述 什么是编译程序 编译过程和编译程序的结构 编译技术和软件工具的介绍17谢谢观赏2019-8-17编译过程概述 编译器内部包括了许多步骤或称为阶段,它们执行不同的逻辑操作。将这些阶段设想为编译器中一个个单独的片断是很有用的,尽管在应用中它们是经常组合在一起的,但它
9、们确实是作为单独的代码操作来编写的。18谢谢观赏2019-8-17编译过程概述 编译工作的基本过程是:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等6个阶段。每个阶段都有表格管理和出错处理部分。19谢谢观赏2019-8-17词法分析语法分析语义分析目标代码生成中间代码生成代码优化目标程序源程序出 错 处 理表 格 管 理20谢谢观赏2019-8-17编译过程概述 机器翻译:让计算机翻译人类语言,例如:将汉语翻译为英文。编译:让计算机翻译程序设计语言(人工语言),例如:将C语言编译为机器语言。21谢谢观赏2019-8-17编译逻辑过程 词法分析 语法分析 语义分析 中间代码
10、生成 代码优化 目标代码生成22谢谢观赏2019-8-17词法分析(自动分词+词性标注)像翻译英文句子一样,先要分析单词,弄清各单词的意义和句中的作用,才能对句子进行翻译。主要任务:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。单词包括:保留字、标识符、运算符、分界符等。例:position :=initial +rate *60;23谢谢观赏2019-8-17词法分析(自动分词+词性标注)position :=initial +rate *60;单词类型单词类型单词值单词值 标识符1(id1)position 算符(赋值):=标识符2(id2
11、)initial 算符(加)+标识符3(id3)rate 算符(乘)*整数 60 界符 ;24谢谢观赏2019-8-17又如一个C源程序片断:int a;a=a+2;词法分析后可能返回:单词类型单词类型单词值单词值 保留字 int标识符(变量名)a界符 ;标识符(变量名)a算符(赋值)=标识符(变量名)a 算符(加)+整数 2界符 ;25谢谢观赏2019-8-17有关术语 词法分析(lexical analysis or scanning)-The stream of characters making up a source program is read from left to righ
12、t and grouped into tokens,which are sequences of characters that have a collective meaning.单词-token 保留字-reserved word 标识符-identifier(user-defined name)26谢谢观赏2019-8-17语法分析(自动句法分析)语法分析程序与自然语言中句子的语法分析类似。语法分析定义了程序的结构元素及其关系。通常将语法分析的结果表示为分析树或语法树。主要任务:在词法分析的基础上,将单词分解成各类语法短语。一般语法短语可表示成语法树。功能:层次分析.依据依据源程序的语法
展开阅读全文