自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (7)
  • 收藏
  • 关注

空空如也

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 二、文法二义性讨论 该文法没有二义性。在其他的语言中出现的二义性类型中,比如表达式的parsing tree (存在两颗或以上的parsing trees)的二义性,需要用算符优先关系来确定的和if-else 的 匹配问题导致的二义性问题,都在该文法中的EBNF定义中被消除掉了。 1、对于表达式的二义性处理: simple_expression = ["+" | "-"] term {("+" | "-" | "OR") term} ; term = factor {("*" | "DIV" | "MOD" | "&") factor} ; 从中,可以看出*和 DIV、MOD 这些一定在+-之前就进行运算了。通过将表达式的将 +-和*DIV、MOD 等用不同层次的表达式进行定义,消除了这一二义性。 2、对于if-else匹配出现二义性的处理:

2019-01-09

实验二比特大战

编译原理实验二,比特大战 5个游戏策略,永远合作,随机,老实人探测器,永不原谅,针锋相对

2019-01-09

检查中缀表达式并报错

编译原理实验一 1) 实现一个完整的 Java 程序,它读取文件中的中缀表达式(每个表达式以分号结束,文件中可以有多个表达式)并转换为等价的后缀表达式后输出到屏幕上。表达式中的运算量可以是任意整数或者小数,支持加、减、乘、除、取负运算以及小括号,表达式中的空格、制表符等空白符号可以被忽略。若用户输入的表达式有误,则提示用户错误的位置。譬如两个运算量之间缺少运算符、或运算符缺少左(或右)运算量等。错误处理功能的最低要求是当输入表达式有错时,给出一个报错信息,提示错误的位置和类别。学有余力的学生还可考虑尝试如何实现出错恢复(Error Recovery),即当程序发现一个错误时不是立马停下来,而是能够从跌倒的地方爬起来,继续分析下去,从而一次运行即可发现更多的错误。 2)为以上的 Java 程序提供一个随机测试数据发生器(用 Java 语言来写),生成若干随机的正确表达式和不正确表达式(通过命令行参数决定是生成正确的还是不正确的以及生成的数量)。生成的测试数据要求写入文件,可以被 1)中的程序读取

2019-01-09

jflex安装包

《编译原理》词法分析程序自动生成工具JFlex,做 Oberon-0 实验时用到的

2019-01-09

操作系统页面置换实验

华南师范操作系统作业,模拟操作系统的页面置换 1. 实验目的 (1) 掌握操作系统的页面置换过程,加深理解页式虚拟存储器的实现原理。 (2) 掌握用随机数生成满足一定条件的指令地址流的方法。 (3) 掌握页面置换的模拟方法。

2019-01-09

neo4j安装包百度云资源

neo4j安装包百度云 neo4j-community-3.0.7-unix.tar.gz

2018-01-02

jdk的安装包

jdk安装包,是ubuntu64位的 jdk-8u151-linux-x64.tar

2018-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除