- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于本课程 编译原理是计算机专业的一门核心专业基础课程(程序与编译),该课程介绍编译器构造的一般原理、基本实现方法。主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。 学习意义: 对程序设计语言的设计和实现有深刻的理解,对和程序设计语言有关的理论有所了解,对宏观上把握程序设计语言来说能起一个奠基的作用。 有助于学生快速理解、定位和解决在程序编译、测试与运行中出现的问题。 编译程序是软件工程的一个很好的实例 大多数程序员同时又是一些简单语言(如输入输出、脚本语言)的设计者,掌握编译知识有助于提高他们设计这些语言的水平。 编译技术在软件安全和软件逆向工程等方面有着广泛的应用 课程难点 编译程序规模庞大,一门课程无法将所有的细节都讲清楚,这使学生对编译程序各逻辑部分之间的接口和一些算法的实现是模糊的 课程涉及不少理论知识,如形式语言和自动机理论、语法制导的理论等。 课程包含了很多算法,大的有LL(1)分析算法和各种LR(1)分析算法等,小的有DFA 化简算法、计算开始符号集合和后继符号集合的算法、各种数据流方程的迭代求解算法。 本课程安排 第一章 引论 第二章 文法与语言 第三章 词法分析 第四章 语法分析 第五章 编译程序的数据结构和符号表 第六章 语法制导翻译与中间代码生成(语义分析) 第八章 编译程序 1.1 基本观念 ——程序、语言 计算机、程序、语言 计算机接受指令,然后执行指令 指令组成的序列,称为程序 符合一定规则(文法)的程序的集合,称为语言 语法(形式) 语义(意义) //形式与意义之间的对应关系? 讨论:C语言与C语言程序之间的关系 1.1 基本观念 ——程序、语言 语言的作用 设计程序(选出特定的程序——构造程序) 程序的作用 由计算机执行 在人之间的交流想法,由于程序没有歧义 如何定义语言——本课程要学习的内容 以有限的规则,定义无限多的程序 。 1.1 基本观念 —语言的多样性与翻译 语言的多样性 机器语言、汇编语言、C语言、java、VC… 机器喜欢低级语言,程序员喜欢高级语言 方便在特定领域的应用,有利于提高工作效率 多样性需要翻译 计算机语言由单一的机器语言发展到现今数十种高级语言,就是因为有了编译技术 。 翻译的策略 编译(整体翻译) 解释(逐句的翻译、执行) 1.1 基本观念 ---编译与解释 高级语言程序通常采用两种方式执行:解释方式和翻译方式 解释方式:逐个语句地分析和执行,如Basic,Prolog 优点:易于查错,易于移植 缺点:效率低,运行速度慢 编译方式:对整个程序进行分析,翻译成等价机器语言程序后执行,如Pascal,Fortran,C 优点:只需分析和翻译一次, 缺点:在运行中发现的错误必须在源程序中查找 编译和解释程序 1.2 什么是编译程序? 定义:是一种语言转换系统 编译程序的基本功能 从功能上看,一个编译程序就是一个语言翻译程序。 源语言通常是一个高级语言,如java,C 或Pascal。 目标语言通常是一个低级语言,如汇编或机器语言。 编译程序在计算机系统中的作用 编译系统是一种软件,一种系统软件。 软件:计算机系统中的程序及其文档。 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。和具体的应用领域无关,如编译系统和操作系统等。 语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序,如编译系统。 1.3 编译程序的结构 编译程序的功能和组织结构 相关概念 (1) 词法分析(Lexical analysis) 识别单词 词法分析程序又称扫描程序。 是编译过程的第一个阶段,其任务是:读源程序的字符流、识别单词(如标识符、整数、界限符等),并转换成内部形式。 输入字符串(即源程序) 输出单词符号(最基本的语法单位) 。 词法分析举例 读字符流的源程序、识别单词 例: position := initial + rate * 60 单词类型 单词值 标识符1(id1) position 算符(赋值) := 标识符2(id2) initial 算符(加) + 标识符3(id3) rate 算符(乘) * 整数 60 分号 ; (2) 语法分析(Syntax analysis) 识别句子 语法分析的任务:在词法分析的基础上将单词序列分解成各类语法短语,如“语句”,“表达式”等等。一般这种语法短语,也称语法单位,可表示成语法树。 语法分析所依据的是语言的语法规则,即描
您可能关注的文档
- 北辰桂圆营销推广提案-精品·公开课件.ppt
- 杯子与水的哲学-精品·公开课件.ppt
- 北达教育旗下北京中考网wwwbeijing518com-精品·公开课件.ppt
- 北大光华管理学院金融经济学课件-第一讲-精品·公开课件.ppt
- 北大光华管理学院金融经济学课件-金融风险与金融数学-精品·公开课件.ppt
- 北大光华管理学院金融经济学课件-金融工程与风险管理的-精品·公开课件.ppt
- 北大金融学课件(英文版)第7章(1课时)-精品·公开课件.ppt
- 北大经济管理实验教学中心介绍1-精品·公开课件.ppt
- 北郊高级中学物理地理教研组近几年工作总结-精品·公开课件.ppt
- 北京LED轮廓灯制造商-精品·公开课件.ppt
文档评论(0)