首页 > 编程语言 >2.2 实验三、自动生成语法分析程序(JavaCUP)

2.2 实验三、自动生成语法分析程序(JavaCUP)

时间:2024-07-05 13:30:36浏览次数:11  
标签:JavaCUP Java 程序 生成 2.2 Oberon 语法分析

help-assignment

2.3 实验三、自动生成语法分析程序(JavaCUP)
实验三要求你下载一个语法分析程序自动生成工具 JavaCUP,利用该工具自动产 生一个 Oberon-0 语言的语法分析和语法制导翻译程序;生成的程序源代码是以 Java 语言编写的。
2.3.1 实验步骤 3.1、下载自动生成工具 JavaCUP
实验三选用最早由美国卡内基·梅隆大学的 Scott E. Hudson 开发的一个语法分析 程序自动生成工具 JavaCUP,它是一个 LALR Parser Generator。JavaCUP 是一个 类似 Unix 平台上 yacc 程序的开源(Open Source)软件工具,遵循 GNU General Public License(GPL)。JavaCUP 本身采用 Java 编写,并且生成 Java 语言的分析程序源代码。该软件工具经由美国普林斯顿大学计算机科学系 Andrew W. Appel 教授指导 Frank Flannery 等人改进,目前由 C. Scott Ananian 负责维护。
从http://www2.cs.tum.edu/projects/cup/可下载该软件工具的最新版本 CUP 0.11b。 该网站已包含了你在实验中所需的各类资源,包括该工具的 Java 源代码、已编译生成的字节码、简明的用户手册、以及一个简单的命令行计算器例子等。
2.3.2 实验步骤 3.2、配置和试用 JavaCUP
成功下载并配置后,试运行 JavaCUP 附带的输入源文件例子(一个基于命令行 的简单计算器应用),以保证你正确安装并配置了 JavaCUP。
如果你觉得 JavaCUP 附带的用户手册仍不足以帮助你掌握 JavaCUP 的原理与用 法,自己动手在网上查找其他关于 GNU Bison、yacc 等类似工具的大量电子资源。
2.3.3 实验步骤 3.3、生成 Oberon-0 语法分析和语法制导翻译程序
仔细阅读 JavaCUP 使用手册,根据 Oberon-0 语言的 BNF 定义编写一个 JavaCUP 输入源文件。
根据你的 JavaCUP 输入源文件生成的语法分析程序须完成以下功能:
1、对于一个存在词法、语法或语义错误的 Oberon-0 源程序,必须至少指出一处 错误,并判断错误的类别及产生错误的位置(错误产生的位置定位允许有偏差), 并以相应的异常对象向客户程序报告找出的错误的类别。是否支持其他功能取决 于你的时间、精力与能力,譬如你可尝试从错误中恢复并继续执行语法分析,也 可生成设计图时立即中止程序的执行。在错误检查与错误恢复(指找到错误后继 续执行分析过程的能力)方面做得优秀的实验可获得更高的评分。
2、对于一个词法、语法和语义完全正确的 Oberon-0 源程序,自动绘制出不同模 块中多个过程之间的调用图(Call Graph)。本文档第 4 部分详细介绍了 ROSE 实现的调用图的定义。
你在生成 Oberon-0 语言的语法分析程序时,可以直接使用实验二由 JFlex 生成的 Oberon-0 语言的词法分析程序。
以你编写的源文件为输入运行 JavaCUP,得到 Oberon-0 语言语法分析程序的若 干 Java 源代码;编译这些 Java 源程序生成相应的字节码,再分别利用自己在实 验一编写的 Oberon-0 源程序及其变异程序测试生成的结果,看看你生成的语法 分析和语法制导翻译程序能否正确地识别出 Oberon-0 源程序中的各类错误,并 且能否针对正确的 Oberon-0 源程序输出期望的调用图。
2.3.4 实验步骤 3.4、讨论不同生成工具的差异
比较两种流行的语法分析程序自动生成工具之间的差异:JavaCUP 和 GNU Bison,主要讨论这两种软件工具接收输入源文件时,在语法规则定义方面存在 的 差 异 。 关 于 GNU Bison 工 具 的 官 方 资 料 可 在 网 站 http://www.gnu.org/software/bison/bison.html 找到。
同样基于 Java 语言的分析器生成工具(Parser Generator,即 Compiler Compiler), 还有一个名为 JavaCC 的工具。在网上搜索并浏览关于 JavaCC 的相关信息,用 最扼要的一两句话指出 JavaCC 与 JavaCUP 的最核心区别。

contact me on V help-assignment

标签:JavaCUP,Java,程序,生成,2.2,Oberon,语法分析
From: https://blog.csdn.net/telnet3000/article/details/140082076

相关文章

  • cisco packet tracer 8.2.2 (思科模拟器) 配置 单臂路由 DHCP
    1实验拓扑2交换机配置Switch>Switch>enSwitch#sw1Switch#configtEnterconfigurationcommands,oneperline.EndwithCNTL/Z.Switch(config)#hostnamesw1sw1(config)#vlan2sw1(config-vlan)#exitsw1(config)#vlan3sw1(config-vlan)#exitsw1(config)#i......
  • nacos2.2.1之后需配置安全Key才能启动
    nacos启动报错信息ERRORErrorstartingTomcatcontext.Exception:org.springframework.beans.factory.UnsatisfiedDependencyException.Message:Errorcreatingbeanwithname'basicAuthenticationFilter'definedinclasspathresource[com/alibaba/nacos/p......
  • 2.2.4 C#中显示控件BDPictureBox 的实现----ROI交互
    2.2.4C#中显示控件BDPictureBox的实现----ROI交互1界面效果在设定模式下,可以进行ROI框的拖动,这里以Rect1举例说明2增加ROI类定义///<summary>///ROI_single///用于描述图片感兴趣区域///type:0:Rect1;1:Rect2;2:Circle;3:Ellipse;4:Arc;5:Polygen;6:Poi......
  • OCP4.2.2 主机标准化检查系统配置项修复clocksource 报错
    适应版本:社区版本OCP:4.2.2-20240315150922背景描述OCP纳管主机后进行主机标准化时,setclocksource一直没有成功   自动修复后还是有问题 分析过程查看官方ocp.4.2文档,有相关信息 执行相关命令再次查看文件并未写入tsc 重新检查 自动修复,......
  • [本科项目实训] Node.js、npm、pnpm配置及GLIBC_2.28缺失解决方案
    问题描述Node.js是一个基于Google的V8引擎的事件驱动I/O服务端JavaScript环境。以下主要解决在Ubuntu环境中的Node配置问题。解决方案使用node-v可以查看当前的node版本,如果未安装node和npm可以尝试以下指令:aptupdateaptupgradeapt-getinstallnodejsapt-get......
  • 【ARMv8/ARMv9 硬件加速系列 2.2 -- ARM NEON 的加减乘除(左移右移)运算】
    文章目录NEON加减乘除NEON加减乘除下面代码是使用ARMv8汇编语言对向量寄存器v0-v31执行加、减、乘以及左移和右移操作的示例。ARMv8的SIMD指令集允许对向量寄存器中的多个数据进行并行操作。v0和v1加载数据,对它们进行加、减和乘,左移和右移操作。最后,我们会将结......
  • 2.2.1 Python的起源
    1.1Python的起源Python的创始人为GuidovanRossum(后文简称Guido)。1982年,Guido从阿姆斯特丹大学获得数学和计算机硕士学位。尽管Guido算得上是一位数学家,不过他更享受计算机带来的乐趣。用Guido的话说,尽管他拥有数学和计算机双料资质,不过他趋向于做计算机相关的工作,并热衷于做......
  • Cisco ASAv 9.20.2.22 Interim - 思科自适应安全虚拟设备 (ASAv)
    CiscoASAv9.20.2.22Interim-思科自适应安全虚拟设备(ASAv)CiscoAdaptiveSecurityVirtualAppliance(ASAv)请访问原文链接:https://sysin.org/blog/cisco-asav/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科自适应安全虚拟设备(ASAv):跨物理和虚拟环......
  • Cisco ASA 9.20.2.22 Interim - 思科自适应安全设备 (ASA) 软件
    CiscoASA9.20.2.22Interim-思科自适应安全设备(ASA)软件CiscoAdaptiveSecurityAppliance(ASA)请访问原文链接:https://sysin.org/blog/cisco-asa/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科自适应安全设备(ASA)软件成熟的防火墙和网络安全平......
  • hbase-2.2.7分布式搭建
    hbase-2.2.7分布式搭建文档1、上传解压配置环境变量#1、解压tar-xvfhbase-2.2.7-bin.tar.gz.gz#2、配置环境变量vim/etc/profile#3、在最后增加配置exportHBASE_HOME=/usr/local/soft/hbase-2.2.7exportPATH=$PATH:$HBASE_HOME/bin#4、使环境变量剩下source......