最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

编译原理语法分析器实验报告

来源:动视网 责编:小OO 时间:2025-10-01 01:58:32
文档

编译原理语法分析器实验报告

编译原理语法分析器实验报告班级:学号:姓名:实验名称语法分析器一、实验目的1、根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。2、本次实验的目的主要是加深对自上而下分析法的理解。二、实验内容[问题描述]递归下降分析法:0.定义部分:定义常量、变量、数据结构。1.初始化:从文件将输入符号串输入到字符缓冲区中。2.利用递归下降分析法分析,对每个非终结符编写函数,在主函数中调用文法开始符号的函数。LL(1)分析法:模块结构:1、定义部分:定义常量、变量、数据结构。2、初始化:
推荐度:
导读编译原理语法分析器实验报告班级:学号:姓名:实验名称语法分析器一、实验目的1、根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。2、本次实验的目的主要是加深对自上而下分析法的理解。二、实验内容[问题描述]递归下降分析法:0.定义部分:定义常量、变量、数据结构。1.初始化:从文件将输入符号串输入到字符缓冲区中。2.利用递归下降分析法分析,对每个非终结符编写函数,在主函数中调用文法开始符号的函数。LL(1)分析法:模块结构:1、定义部分:定义常量、变量、数据结构。2、初始化:
编译原理 

    语法分析器

实验报告

班级:

  学号:

姓名:   

实验名称 语法分析器

一、实验目的

1、根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。

2、本次实验的目的主要是加深对自上而下分析法的理解。

二、实验内容

[问题描述]

  递归下降分析法:

0.定义部分:定义常量、变量、数据结构。

1.初始化:从文件将输入符号串输入到字符缓冲区中。

2.利用递归下降分析法分析,对每个非终结符编写函数,在主函数中调用文法开始符号的函数。

LL(1)分析法:

模块结构:

1、定义部分:定义常量、变量、数据结构。

2、初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体等);

3、运行程序:让程序分析一个text文件,判断输入的字符串是否符合文法定义的规则;

4、利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示简单的错误提示。

[基本要求]

1. 对数据输入读取

2. 格式化输出分析结果

2.简单的程序实现词法分析

public static void main(String args[]) {

        LL l = new LL();    

        l.setP();

        String input = "";

        boolean flag = true;

        while (flag) {

            try {

                InputStreamReader isr = new InputStreamReader(System.in);

                BufferedReader br = new BufferedReader(isr);

                System.out.println();

                System.out.print("请输入字符串(输入exit退出):");

                input = br.readLine();

            } catch (Exception e) {

                e.printStackTrace();

            }

            if(input.equals("exit")){

                flag = false;

            }else{

                l.setInputString(input);

                l.setCount(1, 1, 0, 0);

                l.setFenxi();

                System.out.println();

                System.out.println("分析过程");

                System.out.println("----------------------------------------------------------------------");

                System.out.println("   步骤    |       分析栈         |       剩余输入串         |       所用产生式   ");

                System.out.println("----------------------------------------------------------------------");

                boolean b = l.judge();

                System.out.println("----------------------------------------------------------------------");

                if(b){

                    System.out.println("您输入的字符串"+input+"是该文法的一个句子");

                }else{

                    System.out.println("您输入的字符串"+input+"有词法错误!");

                }

            }            

        }

    }

//实现各函数并且加注释

三、编程并上机调试运行  

运行结果如下图:

四、实验小结

通过这次实验,我对语法分析有了更深刻的了解,对它的形成有了更清楚得认识。本次实验我主要是基于试验资料上的程序流程图和程序框架完成的。由一个简单一些的产生式得出程序的各个分函数。同时,感谢老师的细心与耐心指导。

文档

编译原理语法分析器实验报告

编译原理语法分析器实验报告班级:学号:姓名:实验名称语法分析器一、实验目的1、根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。2、本次实验的目的主要是加深对自上而下分析法的理解。二、实验内容[问题描述]递归下降分析法:0.定义部分:定义常量、变量、数据结构。1.初始化:从文件将输入符号串输入到字符缓冲区中。2.利用递归下降分析法分析,对每个非终结符编写函数,在主函数中调用文法开始符号的函数。LL(1)分析法:模块结构:1、定义部分:定义常量、变量、数据结构。2、初始化:
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top