- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理》课程设计报告设计题目:pl0编译器设计一、PL0程序的文法及,指令及属性翻译简化c语言文法定义(LL(1)文法)
C程序::=void main(){函数体}
函数体::=变量定义部分 语句列
变量定义部分::=变量定义 变量定义部分| ?
变量定义::=int 变量表
变量表::=标识符|标识符,变量表
语句列::=语句 语句列| ?
语句::=条件语句| 循环语句 | 读语句 | 写语句 | 复合语句 | 表达式语句 | 空语句
条件语句::=if(表达式)语句
循环语句::=while(表达式)语句
读语句::=read(变量表);
写语句::=write(表达式表);
复合语句::={语句列};
表达式语句::=表达式;
空语句::=;
表达式定义(算符优先文法)
表达式::=变量=表达式 | 变量+=表达式 | 变量-=表达式 | 变量*=表达式 | 变量/=表达式 | 变量%=表达式 | 表达式1
表达式1::=表达式1 || 表达式2 | 表达式2
表达式2::=表达式2表达式3 | 表达式3
表达式3::=表达式3==表达式4 | 表达式3!=表达式4 | 表达式3=表达式4 | 表达式3表达式4 | 表达式3=表达式4 | 表达式3表达式4 | 表达式4
表达式::=表达式表达式 | 表达式表达式 | 表达式表达式::=表达式表达式 | 表达式表达式 |表达式表达式 |表达式表达式::=表达式表达式::= | 变量| 常量
PL0文法定义
《程序》::=《分程序》.
《分程序》::=《常量定义》;《常后分程序》|《常后分程序》
《常后分程序》::=《变量定义》;《变后分程序》|《变后分程序》
《变后分程序》::=《过程定义》;《变后分程序》|《语句》
《常量定义》::=const 《常量定义表》
《常量定义表》::=id = number | id = number,《常量定义表》
《变量定义》::= var 《变量表》
《变量表》::=id | id,《变量表》
《过程定义》::=procedure id ;《分程序》
《语句》::=《赋值语句》|《条件语句》|《循环语句》|《读语句》|《写语名》|《复合语句》| 《过程调用语句》|ε
《赋值语句》::=id := 《表达式》
《读语句》::=read(《变量表》)
《写语句》::=write(《表达式表》)
《表达式表》::=《表达式》 | 《表达式》,《表达式表》
《条件语句》::=if 《条件表达式》 then 《语句》
《循环语句》::=while 《条件表达式》 do 《语句》
《复合语句》::=begin 《语句列》 end
《过程调用语句》::=call id
《参量表》::=《有参表》|ε
《有参表》::=《表达式》,《有参表》|《表达式》
《表达式》::=+《表达式1》|-《表达式1》|《表达式1》
《表达式1》::=《表达式1》+《表达式2》|《表达式1》-《表达式2》|《表达式2》
《表达式2》::=《表达式2》*《表达式3》|《表达式2》/《表达式3》| 《表达式2》 mod
《表达式3》|《表达式3》
《表达式3》::=id | number | (《表达式》)
《条件表达式》::=《条件表达式》 or 《条件表达式1》 |《条件表达式1》
《条件表达式1》::=《条件表达式1》 and 《条件表达式2》 | 《条件表达式2》
《条件表达式2》::=not 《条件表达式3》 |《条件表达式3》
《条件表达式3》::=(《条件表达式》)|《关系表达式》
《关系表达式》::=《表达式》《表达式》
《关系表达式》::=《表达式》=《表达式》
《关系表达式》::=《表达式》《表达式》
《关系表达式》::=《表达式》=《表达式》
《关系表达式》::=《表达式》=《表达式》
《关系表达式》::=《表达式》#《表达式》
PL0栈式机指令
指令格式:指令码(f) 所在层数差(l),操作数(a)
PL0栈式机指令:
LIT: 将常数a取到栈顶
LOD: 将位于(当前层-l)层处的变量a取到栈顶
STO: 将栈顶处值存储到指定位置,l,a同上
CALL 调用当前-l层处的过程a
INT: 为调用过程在栈中开辟数据区,a为单元个数
JMP: 无条件转移指令,a目标地址
JPC: 条件转移指令,栈顶值的布尔值为非真时转移到a处,否则执行下面语句
OPR: 关系运算或算术运算
PL0属性翻译
MCONST(const:常量定义开始),
VAR(var:变量定义开始),
PROCEDURE(procedure:过程定义开始),
CALL(call:过程调用语句),
BEGIN(begon:复合语句开始),
END(end
您可能关注的文档
最近下载
- 车位所有权人许可建设充电桩证明.pdf VIP
- 红辽卷烟公司品牌竞争力分析结论与参考文献.docx VIP
- 2025贵州省旅游产业发展集团有限公司招聘115人笔试备考试题及答案解析.docx VIP
- 【泛微客户期刊】2023年36期:某医药集团费控管理项目案例分享.pptx VIP
- 区域土地利用土地覆盖遥感调查.pdf VIP
- 泛微软件集团管控解决方案文档资料.pptx VIP
- 廉租房、公租房维修项目方案.pdf VIP
- 2025贵州省旅游产业发展集团有限公司招聘115人笔试备考题库及答案解析.docx VIP
- 农业产业化发展规划-特色农业发展规划.doc VIP
- 采购与供应商控制程序(ISO9001 IATF16949).pdf VIP
文档评论(0)