辅助实验说明reduced version pl0 readme2精简版自述.pdfVIP

辅助实验说明reduced version pl0 readme2精简版自述.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文主要介绍了PL0编程语言的基本构成为背景下的简化版自述根据提供的资源,本文概述了PL0编程语言的基本组成部分其对应的编译程序和解释程序,以及在进行自顶向下语法分析过程中所需的步骤此外,本文还介绍了PL0编程语言的基本特性,如递归下降分析过程等,并提供了一些实现策略和示例代码文章以简明扼要的方式阐述了PL0编程语言的特点和应用,从而帮助读者更好地理解和掌握PL0编程语言

辅助实验说明

任务描述

本学期的主体实验(Decaf实验)中,未涉及到自顶向下语法分析的内容,辅助实验

的目的旨在对此项技术训练进行适当的弥补。

本次辅助实验基于编译原理课程早期用过的PL/0编译器框架。PL/0编译器采用单遍扫

描的结构,以语法、语义分析过程作为驱动,必要时调用词法分析和代码生成过程。本学期

课程中,该实验的主要目标是读懂并理解PL/0编译器的自顶向下语法分析程序结构。编译其

的其余部分只要能够与语法分析部分区分开来即可,不必深入理解,虽然对语义分析和代码

生成部分的理解对课程后半段的学习很有好处。

实验的具体任务是裁减PL/0编译器框架的代码,使其语法分析阶段不包含任何错误恢复

功能。只要读懂并理解框架中的递归下降分析程序代码结构(含错误处理功能),这一任务

很容易完成,工作量也很小。

实验完成后,需要提交裁减后的代码,以及较详细的实验报告。实验报告中至少应包含

下列内容:

1)说出框架代码中包含哪些语法成分的递归子程序,以及它们之间的调用关系。

2)列出裁减前后代码的差异(尽可能详尽)。

3)以框架中某种语法成分为例,说明错误恢复功能的实现方案,并构成补救集合

的BeginSym和EndSym。因对于有些语法成分并未考虑出错恢复功能,因此选择种语法

成分,需要筛选一下。若有改进方案,也请给出论述,并给出实际测例予以支持。

评分

本次辅助实验满分5分,其中裁减后的编译器代码2分,实验报告3分。

裁减后的编译器应能够编译通过裁减前可编译通过的PL/0源代码。

提交时,将结果编译器的代码文件与实验报告文件打文件名为自己的学号。

实验代码框架

在网络学堂的“课程文件”中上传了先前编译课用过的PL/0项目中的源代码,含C

和Java两个版本的编译程序源码及测试例子;此外,还包括一份PL/0编译程序源码导

读的ppt。这些材料可以作为本次试验的基础框架。根据自身的情况选用C或Java版

本。

附录APL/0语言编译系统(即实验框架)简介

PL/0语言编译系统是世界著名计算机科学家N.Wirth编写的,它由编译程序和解释程序

两部分组成。N.Wirth原本使用的编写语言是Pascal,而本课程采用了PL/0编译系统的C语言

和Java语言版本。在附录A中,所涉及PL/0编译程序的例子中均指C语言的版本。

首先介绍PL/0语言编译系统的构成,然后给出PL/0编译程序的源语言和目标语言,最后

简介PL/0编译程序的基本组成。

在完成本次辅助实验时,并不需要了解本附录中的全部内容,大家可根据自己的需要和

选择性阅读。

A.1PL/0语言编译系统构成

PL/0语言编译系统由编译程序和解释程序两部分组成,分别称为PL/0编译程序和类

P-code解释程序。PL/0语言程序被PL/0编译程序转换为等价的类P-code程序。当编译程序

正常结束时,PL/0语言编译系统会调用解释程序(也称类P-code虚拟机),解释执行所生

成的目标程序。如图1所示。

PL/0程序

PL/0编译程序

类P-code程序

输入数据类P-code解释程序输出数据

类P-code虚拟机

文档评论(0)

159****9610 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档