- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语法规则说明 YACC 语法分析程序 输入: 语法规则(产生式) 语义动作(C/C++程序段) 输出: yyparse( ) 函数 (2) YACC: 自动产生语法分析器 1.3 编译程序的生成方法 3.自编译技术(自展技术): 首先需把源语言L分解成一个核心部分L0 与扩充部分L1,L2 ,…, Ln,保证核心部分进行一次或多次扩充之后得到源语言L。 然后先用目标机的汇编语言或机器语言编写L0的编译程序,然后再用Li编写Li+1编译程序,依次构造可编译多语言成分的编译程序,最后得到源语言L的编译程序。 4. 移植方式:把某计算机(宿主机)上已有的编译程序移植到另一台计算机(目标机)上。 1.4 编译程序的生成方法 * 课程要求 理论实践 trust * 学习方法 学习本质专业作用 时间分配 * 早期程序设计数学运算 机器码 穿孔机 工作量大 直观性差 翻译程序定义 等价 * 编译程序就是一种翻译程序 借鉴翻译方法 * 编译程序就是一种翻译程序 借鉴翻译方法 编 译 原 理 任课教师:魏永红 E_mail:weiyh@tust.edu.cn 教材、课时安排和成绩评定 教材 编译原理(第3版) 刘铭等编 电子工业出版社。 课时安排 1-17周,授课:42学时,上机:8学时 成绩评定 平时成绩(30%)(作业、考勤、上机) 期末成绩(70%) 课程简介 《编译原理》是计算机类专业的一门主干专业课程。设置本课程的目的是系统向学生讲述编译程序一般构造原理、基本设计方法和实现技术,学生通过本课程的学习,既掌握编译理论和方法方面的基本知识,而且也具备设计、实现、分析和移植编译程序的初步能力。 特点:抽象; 算法多 难点:形式语言基本理论; 自动机基本理论; 语义分析; 第一章 概述 编译程序是计算机系统中重要的系统软件,是 高级语言的支撑基础。 学习目标: 编译程序的概念 编译的各个阶段 编译程序的结构 编译程序生成方法 编译原理是指编译程序的构造原理和技术。 1.1 翻译程序与编译程序 一、程序设计语言 1. 计算机语言的分类 计算机语言 低级语言 高级语言:如PASCAL,C等 机器语言 汇编语言 (1)把高级语言程序或汇编语言程序转换成计算机所能理解的语言程序—机器语言程序 。 (2)运行所得的机器语言程序得到计算结果 。 2. 高级语言或汇编语言的执行步骤 1.1 翻译程序与编译程序 1.翻译程序 是这样一种程序,它能够把某一种语言程序(称为源语言程序)转换成另一种语言程序(称为目标语言程序),而后者与前者在逻辑上是等价的。 二、翻译程序 源程序 翻译程序 目标程序 1.1 翻译程序与编译程序 2.翻译程序通常有两种方式:编译和解释 三.编译方式和编译程序 1.1 翻译程序与编译程序 1.编译方式 编译方式是一种分阶段进行的方式 。一般来说,首先进行“翻译”,把用高级语言或汇编语言程序翻译成与之等价的机器语言程序,然后对翻译出来的程序进行运行计算。前一阶段翻译工作由翻译程序完成,后一阶段的运行计算需要由运行程序来配合完成。 所谓运行程序是指运行目标程序时必须配置的各种子程序全体,通常以库子程序的形式存在,如连接装配程序及连接库等。 1.1 翻译程序与编译程序 2.编译程序 (1)将用高级语言(如FORTRAN,PASCAL或C)书写的源程序翻译成等价的某特定计算机系统的低级语言程序(汇编语言或机器语言)的目标程序,这种翻译程序称为编译程序。 高级语言程序 编译程序 低级语言程序 (2)如果将汇编语言书写的程序翻译成某特定计算机系统的机器语言程序,这种翻译程序称为汇编程序。 源程序 编 译 程 序 机器语言 目标程序 初始数据 运行系统 结果 编 译 阶 段 运 行 阶 段 源程序 编 译 程 序 机器 语言 目标 程序 初始数据 运行系统 结果 编 译 阶 段 运行阶段 汇 编 程 序 汇编 语言 目标 程序 汇 编 阶 段 1.解释方式 在解释方式下,源程序的执行只有一个阶段——解释执行阶段。具体地说,完成解释工作的解释程序将按源程序中语句的动态顺序逐句地进行分析解释,并立即予以执行。 与编译方式的主要区别: 不产生目标程序。而是直接执行源程序本身。 四、解释方式及解释程序 1.1 翻译程序与编译程序 2 解释程序 是以某一程序语言写的源程序作为输入, 边解释边执行源程序本身,不产生目标程序的一种翻译程序。 源程序 运行结果 解释程序 边翻译边执行 1.1 翻译程序与编译程序 编译程序 vs. 解释程序 编译 解释 编译过程是一种语言的翻译过程,类似于外文的翻译过程。例如:一段英文翻译为中文时,通常经过以下步骤: 识别句子中的一个个单词; 分析句子的
文档评论(0)