- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
衡阳师范学院
计算机科学与技术专业
课
程
设
计
题 目: PL/X编译程序改进及扩展
指导教师: 徐雨明老师
年级班别: 08级1班
学 号:
学生姓名: 夏 彦
时 间: 2011年6月16日
目录
1 介绍 3
1.1 前言 3
2 编译器 4
2.1 PL/X编译器结构概述 4
2.2 语法元素 6
2.3语法图 7
2.4判断是否符合两条限制规则 15
2.5 语法出错表定义 18
3 虚拟机 19
3.1 虚拟机组织结构 19
3.2 虚拟机指令格式 20
4 程序设计 23
4.1 全局变量、全局常量 23
4.2 函数接口 30
5 程序测试 39
6 课程设计总结 40
7 参考文献 41
1 介绍
1.1 前言
根据课程设计要求制作PL/X语言的编译器,完成词法分析、语法分析、语义分析及代码生成、出错处理和解释运行程序,并添加一定的扩展,最终实现一个PL/X的编译器。
所完成扩展点说明:
1)支持三种注释
a)单行注释
b)/*---*/ 多行注释
c)(*---*) 多行注释
2)支持read语句,因此可从终端获取输入
3)支持write语句,因此可从终端输出
4)支持for语句
5)支持do…while语句
6) call过程
7) 求余运算%
8) 整数的奇偶odd
9) 幂运行**
10) 求阶乘!
11) 求和$
关于出错处理:分为词法分析错误、句法分析错误、运行时错误(如除数为0)
允许变量名或函数名重复,但访问的时候以最后一次声明的为有效
2 编译器
2.1 PL/X编译器结构概述
图 PL/X编译程序的结构图图 PL/X的解释执行结构图 PL/X编译程序总体流程图语法分析过程是整个编译过程的核心,是指开始由主程序调用GETSYM取一个单词,再调用语法分析过程, 由当前单词根据语法规则再调用其它过程,如说明处理、代码生成或出错处理等过程进行分析,当分析完一个单词后,再调用GETSYM取下一个单词,一直重复到当前单词为结束符.表明源程序已分析结束。若未取到结束符.,而源程序已没有输入符号,这时表明源程序有错误,无法再继续分析。
图 PL/X过程调用相关示意图
2.2 语法元素
关键字:
and, begin, call, case, constant, do, else, end, false, for, if, integer, logical, not, or, “odd”,procedure, program, read, repeat, switch, then, true, until, while, write
操作符:
., ;, **, ++, “--, +, -, *, /, %, =, , =, , =, ==, !,+=, -=, *=, /=
2.3语法图
程序
程序体
语句序列
语句
条件
表达式
项
因子
prog = program ds { proc } begin ss end .
proc = procedure aident [ds] begin ss end
ds = d {; d }
d = integer aident {, aident} |
logical bident {, bident} |
constant aident = number {, aident = number}
ss = s { ; s }
s = aident := ae |
bident := be |
if be then ss [else ss] end |
while be do ss end |
repeat ss until be |
write ae .
read aident | bident
for s ; be ; s do ss end
call procedure
do ss . while be end
ae= [-] at {(-|+) at }
8) at = af1 {(*|/) af1}.
9) af1 = af {(%|**) af}. //扩展的求余运算
10) af = aident | number | ( ae ) | constant
be = bt {or bt}
bt = bf {and bf }
bf = bident | true | false |not bf |( be ) |
您可能关注的文档
- 《分散控制系统与现场总线技术》课程设计.doc
- 《环监监测》课程设计教学大纲.doc
- 《机械加工技术》课程设计.doc
- 50m 3卧式油罐设计.doc
- 110变电站电气一次部分初步设计.doc
- 555声控电子猫电路.doc
- 2000吨型合成氨厂脱硫系统工艺设计说明书.doc
- CDMA直接扩频通信系统仿真——利用5级PN码作为扩频.doc
- PLC控制霓虹灯闪烁.doc
- VHDL与数字系统设计课程设计.doc
- 2021年一年级语文下册二单元考试题及答案A4版(2套) .pdf
- 2021-2022学年高中数学思维导图(人教A版2019)(选择性必修第一册)完整版.pdf
- 2020年必威体育精装版消毒隔离制度 .pdf
- 2020年江苏卷历史高考真题及答案 .pdf
- 2020部编版小学五年级数学上册全册知识点易错题(含答案) .pdf
- 2021-2022年二级建造师之二建建筑工程实务题库附答案(典型题)完整版.pdf
- 2021-2022年注册消防工程师之消防安全技术实务练习题(一)及答案完整版.pdf
- 2020年国家开放大学电大《企业战略管理(本)》网络核心课形考网考作业.pdf
- 2021三年级上学期语文部编人教版修改病句考前练习题 .pdf
- 2021交管12123学法减分考题50道(含答案)04el .pdf
最近下载
- 技术服务合同 中英文版.doc
- ICH Q14考核试题及答案.doc
- 杭州城西科创大走廊国土空间规划(2021-2035年).pdf VIP
- 《金锁记》介绍课件.pptx VIP
- 1:5万地球化学普查报告8.pdf
- 新课标小学语文四年级上册13《精卫填海》吴振芬全国赛课三等奖获奖课件.pptx
- Unit8ChineseNewYear复习(课件)译林版英语六年级上册.pptx
- 人音版四年级上册音乐《故乡是北京》教学PPT课件.pptx
- 酒店员工团队合作与沟通技巧提升内训课程.pptx
- 外研版(三起)(2024)三年级上册英语Unit 3 It's a colourful world 教学设计.docx
文档评论(0)