实验目的

1.培养学生利用软件工程方法分析和设计某语言的语法分析模块,并基于鲲鹏平台选择合适语言编码实现语法分析程序。
2.训练学生理论应用能力和方案选择与实现能力。


实验要求

1.运用LL(1)文法列出Sample语言的赋值语句和IF语句的语法规则;
2.编写一个递归下降分析函数,判断给定的一串单词能否构成一个正确的赋值语句;
3.编写一个递归下降分析函数,判断给定的一串单词能否构成一个正确的IF语句;
4.测试所编写函数能否完成语法分析要求;
5.完成实验报告。


实验内容

基于校内鲲鹏平台,根据Sample语言(或你所选定的语言)的语法规则判定输入的一串单词能否构成一个正确的语句,至少包括以下两项内容。
(1)应用递归下降分析方法,判断给定的一串单词能否构成一个正确的赋值语句。
(2)应用递归下降分析方法,判断给定的一串单词能否构成一个正确的IF语句。


实验环境

  1. 校内鲲鹏平台(黄河服务器)、OpenEuler 20.03
  2. flex 2.6.4、gcc 7.3.0、openjdk 17.0.1
  3. SSH远程登录工具(如MobaXterm等)

实验步骤

1.进入parse目录
2.编译java程序生成字节码文件
3.运行java字节码文件


实验代码

1.1进入parse目录

cd /compiler/parse/

截图:
在这里插入图片描述

1.2编译递归下降分析函数,判断给定的一串单词能否构成一个正确的赋值语句.

javac parse_1/*.java

截图:
在这里插入图片描述

1.3输出结果

 java parse_1.Parse_1_Main

截图:在这里插入图片描述


2.1编译递归下降分析方法,判断给定的一串单词能否构成一个正确的IF语句

javac parse_2/*.java

截图:
在这里插入图片描述

2.2 输出结果

java parse_2.Parse_2_Main

截图:
在这里插入图片描述


实验小结

通过本次实验:
       编写一个递归下降分析函数,判断给定的一串单词能否构成一个正确的赋值语句;编写一个递归下降分析函数,判断给定的一串单词能否构成一个正确的IF语句
1.学会了利用软件工程方法分析和设计某语言的语法分析模块,并基于鲲鹏平台选择合适语言编码实现语法分析程序。
2.提高我的理论应用能力和方案选择与实现能力。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐