首页 课程资源 Java     /    Rose实验(Oberon-0实验三)

Rose实验(Oberon-0实验三)

上传者: weixin_40530635 | 上传时间:2023/3/8 21:01:58 | 文件大小:2.96MB | 文件类型:zip
Rose实验(Oberon-0实验三)
编译原理实验三一、讨论Oberon-0语言的特点1、保留字与关键字的概念区分保留字只要是用在程序语言的层次架构用途上,比如说IF,THEN,ELSIF,用在程序的循环、分支、判断条件、程序块等组织上,它是程序语言中预定义的,具某些特殊意义规范的单词。
保留字侧重于强调不能被用户作为定义的名字。
关键字是一个只被用在某一部分的程序编程中,关键字在程序语言中同样有特殊的意义特征。
多用于类型定义,如在Oberon中,integer便是用来定义变量类型的关键字。
还有其他的功能如作为程序语言中的某个特定函数的名称,如write,read等(在Oberon中).不同的语言的关键字和保留字的概念区分是不一样的。
例如在C,JAVA中,if,else,while这些都是关键字的范围,而在Oberon中是保留字的范围。
在C语言风格的程序语言中,是将程序控制块的那些保留字也一并归为关键字的。
(这些关键字不可以作为变量,函数的名称,也就是不可以作为程序员使用的标示符)。
2、Oberon与C、Java的差别a)在每逐个个主要的函数过程procedure中,Oberon有begin和end来标志,而在C和java中一般是用花括号来标志。
b)在定义变量时,Oberon是在分号之后,也就是最后在给出具体是什么类型的,而在C、Java中一般是在变量的前面就给出了类型,只是Oberon会先用var说明这是一个变量。
c)Oberon中的可用到数据结构主要有数组,类似C中的结构体,类型选择比较少。
3二、文法二义性讨论该文法没有二义性。
在其他的语言中出现的二义性类型中,比如表达式的parsingtree(存在两颗或以上的parsingtrees)的二义性,需要用算符优先关系来确定的和if-else的匹配问题导致的二义性问题,都在该文法中的EBNF定义中被消除掉了。
1、对于表达式的二义性处理:simple_expression=["+"|"-"]term{("+"|"-"|"OR")term};term=factor{("*"|"DIV"|"MOD"|"&")factor};从中,可以看出*和DIV、MOD这些一定在+-之前就进行运算了。
通过将表达式的将+-和*DIV、MOD等用不同层次的表达式进行定义,消除了这一二义性。
2、对于if-else匹配出现二义性的处理: 本软件ID:10906024

文件下载

资源详情

[{"title":"(154个子文件2.96MB)Rose实验(Oberon-0实验三)","children":[{"title":"factorial.obr <span style='color:#111;'>352B</span>","children":null,"spread":false},{"title":"lexgen.pdf <span style='color:#111;'>232.84KB</span>","children":null,"spread":false},{"title":"build.bat <span style='color:#111;'>190B</span>","children":null,"spread":false},{"title":"LexicalException.java <span style='color:#111;'>382B</span>","children":null,"spread":false},{"title":"MissingRightParenthesisException.java <span style='color:#111;'>336B</span>","children":null,"spread":false},{"title":"......","children":null,"spread":false},{"title":" <span style='color:steelblue;'>文件过多,未全部展示</span>","children":null,"spread":false}],"spread":true}]

评论信息

免责申明

【好快吧下载】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【好快吧下载】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【好快吧下载】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,8686821#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明