编译原理PL0编译程序的实现1(希赛教育基础学院)

编译原理PL0编译程序的实现1(希赛教育基础学院)

ID:40720085

大小:153.50 KB

页数:9页

时间:2019-08-06

编译原理PL0编译程序的实现1(希赛教育基础学院)_第1页
编译原理PL0编译程序的实现1(希赛教育基础学院)_第2页
编译原理PL0编译程序的实现1(希赛教育基础学院)_第3页
编译原理PL0编译程序的实现1(希赛教育基础学院)_第4页
编译原理PL0编译程序的实现1(希赛教育基础学院)_第5页
资源描述:

《编译原理PL0编译程序的实现1(希赛教育基础学院)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、◇第二章PL/0编译程序的实现【课前思考】  复习第1章介绍的一个高级程序设计语言编译程序的功能和实现的步骤。编译程序就是一个语言的翻译程序,通常是把一种高级程序设计语言(称源语言)书写的程序翻译成另一种等价功能语言(称目标语言)的程序。换句话说,编译是指把一种用源语言表示的算法转换到另一种等价的用目标语言表示的算法。编译程序实现的必要步骤有词法、语法、语义分析和代码生成。此外必需有符号表管理程序和出错处理程序。本章介绍的PL/0编译程序的实现是用PASCAL语言书写的。【学习目标】  本章目的:以PL/0语言编译程序为实例,学习编译程序实现的基本步骤和相关技术,

2、对编译程序的构造和实现得到一些感性认识和建立起整体概念,为后面的原理学习打下基础。  ◇了解并掌握用语法图和扩充的巴科斯-瑙尔范式(EBNF)对PL/0语言的形式描述。  ◇了解并掌握PL/0语言编译程序构造和实现的基本技术和步骤。  ◇了解并掌握PL/0语言编译程序的目标程序在运行时数据空间的组织管理。【学习指南】  ◇要求读者阅读PL/0语言编译程序文本,了解一个编译程序构造的必要步骤和实现技术。一个编译程序的实现比较复杂,读懂一个典型的程序从设计思想到实现技术也有一定难度,特别是入门开始需要耐心。一但读懂,不仅了解编译程序的实现方法和技术,还可学到许多编程技

3、巧和好的编程风格。  ◇阅读PL/0语言编译程序文本时,应从整体结构开始逐步细化,弄清楚每个过程的功能和实现方法及过程之间的相互关系。  ◇建议用一个PL/0源程序的例子为导引作为阅读PL/0语言编译程序文本的入门,然后再逐步全面读懂。  ◇通过对PL/0语言编译程序某些指定功能的扩充,加深对编译程序构造步骤和实现技术的理解,并能在实践中应用。【难重点】 重点:  ◇弄清源语言(PL/0)目标语言(类pcode)实现语言(pascal)这3个语言之间的关系和作用。  ◇掌握用语法图和扩充的巴科斯-瑙尔范式(EBNF)对一个高级程序设计语言的形式描述。  ◇了解PL

4、/0语言编译程序的语法分析技术采用的是自顶向下递归子程序法。  ◇掌握PL/0语言编译程序的整体结构和实现步骤,并弄清词法分析、语法分析、语义分析、代码生成及符号表管理每个过程的功能和相互联系。  ◇掌握PL/0语言编译程序的目标程序在运行时采用栈式动态存储管理的实现技术。 难点:  ◇符号表管理起着编译期间和目标程序运行时信息联系的纽带,符号表的建立并不困难,但信息之间的关系往往需要反复学习才能理解。【知识结构】为了使读者在系统地学习本教材以下各章节之前,对编译程序的构造得到一些感性认识和初步了解,本章推荐了世界著名计算机科学家N.Wirth编写的"PL/0语言

5、的编译程序",并对其实现过程作了概括的分析说明,作为读者阅读PL/0语言编译程序文本的提示。对PL/0语言文法的表示只给出语法图和扩充的巴科斯-瑙尔范式(EBNF)的描述形式,不作文法理论上的讨论。由于PL/0语言功能简单、结构清晰、可读性强,而又具备了一般高级语言的必须部分,因而PL/0语言的编译程序能充分体现一个高级语言编译程序实现的基本技术和步骤。因此,"PL/0语言编译程序"是一个非常合适的小型编译程序的教学模型。所以,阅读"PL/0语言编译程序"文本后,可帮助读者对编译程序的实现建立起整体概念。2.1PL/0语言和类pcode的描述  在上一章中已介绍过

6、,编译程序的功能是把一种高级程序设计语言的程序翻译成某种等价功能的低级语言的程序。PL/0语言的编译程序就是要把PL/0语言程序翻译成为一种称为类pcode的假想的栈式计算机汇编语言程序。这种汇编语言与机器无关,若需要在某一机器上实现PL/0语言程序,只需用机器上配置的任何语言对类pcode语言程序进行解释执行。那么PL/0语言是什么样的语言?类pcode语言又是什么样的结构?它们之间是如何映射的?只有在明确了这些问题之后,才能确定如何构造这个翻译程序。就像一个翻译要把汉语翻译成英语,必须对汉语和英语的单词、语法结构都很精通,才有可能翻译得准确无误。另外,编译程序

7、既然是为了完成这种功能的一个程序,就存在用什么语言来编写这个程序的问题。这些问题在本节将逐步介绍。  现对PL/0语言编译程序的功能用“T”型图(“T”型图将在第13章详细介绍)表示,并用图形概括描述PL/0编译程序的结构框架。PL/0编译程序的功能本节将用语法图和扩充的巴科斯-瑙尔范式(BACKUS-NAURFORM)(EBNF)两种形式给出PL/0语言的语法描述。对类pcode代码给出指令的结构形式和含义。  巴科斯-瑙尔范式(BACKUS-NAURFORM)是根据美国的JohnW.Backus与丹麦的PeterNaur命名的。2.1.1PL/0语言的语法描述

8、图  用语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。