编译原理实验报告LR(1)分析法


    河南工业学实验报告
    课 程 编译原理 实验名称 实验四 LR(1)分析法
    实验目
    1.掌握LR(1)分析法基原理
    2.掌握LR(1)分析表构造方法
    3.掌握LR(1)驱动程序构造方法

    二 实验容求
    根某文法编制调试LR(1)分析程序便意输入符号串进行分析次实验目加深LR(1)分析法理解
    列文法LR(1)分析法意输入符号串进行分析:
    (0)E>S
    (1)S>BB
    (2)B>aB
    (3)B>b
    程序输入#结束符号串(包括ab#):abb#输出程:
    步骤
    状态栈
    符号栈
    输入串
    ACTION
    GOTO
    1
    0
    #
    abb#
    S3









    三 实验程结果
    (说明:实验结果运行画面抓屏抓屏图片)
    实验代码:
    #include
    #include
    char *action[10][3]{S3#S4#NULL *ACTION表*
    NULLNULLacc
    S6#S7#NULL
    S3#S4#NULL
    r3#r3#NULL
    NULLNULLr1#
    S6#S7#NULL
    NULLNULLr3#
    r2#r2#NULL
    NULLNULLr2#}

    int goto1[10][2]{
    12 *GOTO表*
    00
    05
    08
    00
    00
    09
    00
    00
    00}
    char vt[3]{'a''b''#'} *存放非终结符*
    char vn[2]{'S''B'} *存放终结符*
    char *LR[4]{E>S#S>BB#B>aB#B>b#}*存放产生式*

    int a[10]
    char b[10]c[10]c1
    int top1top2top3topmn
    void main(){

    int ghijklpyzcount
    char xcopy[10]copy1[10]
    top10top20top30top0
    a[0]0ya[0]b[0]'#'
    count0z0
    printf(请输入表达式\n)
    *输出状态栈输出符号栈输出输入串*
    do{
    scanf(c&c1)
    c[top3]c1
    top3top3+1
    }while(c1'#')
    printf(步骤\t状态栈\t\t符号栈\t\t输入串\t\tACTION\tGOTO\n)
    do{
    yzm0n0 *yz指状态栈栈顶*
    gtopj0k0
    xc[top]
    count++
    printf(d\tcount)

    while(m printf(da[m])
    mm+1
    }
    printf(\t\t)
    while(n printf(cb[n])
    nn+1
    }
    printf(\t\t)
    while(g printf(cc[g])
    gg+1
    }
    printf(\t\t)
    while(xvt[j]&&j<2) j++
    if(j2&&xvt[j]){
    printf(error\n)
    return
    }
    if(action[y][j]NULL){
    printf(error\n)
    return
    }
    else
    strcpy(copyaction[y][j])
    if(copy[0]'S'){ *处理移进*
    zcopy[1]'0'
    top1top1+1
    top2top2+1
    a[top1]z
    b[top2]x
    toptop+1
    i0

    while(copy[i]'#'){
    printf(ccopy[i])
    i++
    }
    printf(\n)
    }
    if(copy[0]'r'){ *处理约*
    i0
    while(copy[i]'#'){
    printf(ccopy[i])
    i++
    }
    hcopy[1]'0'
    strcpy(copy1LR[h])
    while(copy1[0]vn[k]) k++
    lstrlen(LR[h])4
    top1top1l+1
    top2top2l+1
    ya[top11]
    pgoto1[y][k]
    a[top1]p
    b[top2]copy1[0]
    zp
    printf(\t)
    printf(d\np)
    } }
    while(action[y][j]acc)
    printf(acc\n)
    getchar()
    }
    截屏:


    四 实验中问题心
    前面样实验加深LR(1)理解接厉吧
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    编译原理实验报告LL(1)分析法

    课 程 编译原理 实验名称 实验二 LL(1)分析法 实验目的 1.掌握LL(1)分析法的基本原理; 2.掌握LL(1)分析表的构造方法; 3.掌握LL(1...

    1年前   
    398    0

    《编译原理》课程实验报告

    《编译原理》课程实验报告题 目: 词法分析器实验 专 业: 计算机科学与技术 班 级: 1班 学 号: ...

    3年前   
    626    0

    编译原理-实验报告2-递归下降分析法

    计算机硬件实验室实验报告姓名学号班 级成 绩 设备名称及软件环境递归下降分析一、实验目的: 根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的...

    3年前   
    597    0

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

    编译原理语法分析实验报告软工班一、 实验内容二、 实验目的三、 实验要求四、 程序流程图l 主函数;l scanner();l irparser()函数l yucu() /*语句串分析*/l...

    2年前   
    938    0

    编译原理实验报告3-LL(1)文法构造

    实验3 LL(1)文法构造一、实验目的熟悉LL(1)文法的分析条件,了解LL(1)文法的构造方法。 二、实验内容1、编制一个能够将一个非LL(1)文法转换为LL(1)文法;2、消除左递归;3...

    2年前   
    298    0

    编译原理课程设计LR(0)分析器自动构造程序

    XX学院工科课程设计 -《编译原理》课程设计报告 题 目: LR(0)分析器自动构造程序的实现 学 号: ...

    2年前   
    397    0

    实验2.正规式的定义与应用 编译原理实验报告

    实验2. 正规式的定义与应用一、 实验目的1. 熟悉正规式的构造方法;2. 熟悉从字符串中识别特定字符串的方法;3. 复习对文件的操作。二、 实验内容和要求已知一段C语言程序:#include...

    1年前   
    409    0

    编译原理实验报告(一)词法分析程序

     编译原理实验报告(一) ----词法分析程序【目的要求】 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的...

    3年前   
    766    0

    编译原理实验指导书

    目 录相关问题说明 1实验题 2实验1 词法分析(2课时) 3实验2 语法分析(2课时) 5实验3 语义分析(2课时) 7实验4 代码生成(2课时) 9参考书目 11相关问题说明本课程共有4个...

    3年前   
    579    0

    编译原理课后习题答案

    编译原理课后习题答案Chapter 11.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。一般可以划分为低级语言和高级语言两大类。低级语言是...

    1年前   
    597    0

    《编译原理》期末试题(五)

    1.语言是A.句子的集合 B.产生式的集合 C.符号串的集合 D.句型的集合2.编译程序前三个阶段完成的工作是A.词法分析...

    2年前   
    724    0

    计算机组成原理实验报告 (1)

    郑州航空工业管理学院计算机科学与应用系实验报告课 程 名: 计算机组成原理 学 号: 姓 名: ...

    1年前   
    385    0

    编译原理课程设计报告 简单编译器的设计与实现

     编译原理课程设计 ——简单编译器的设计与实现 班 级: 组长: 组员: 指导教师: 设计时间: ...

    5年前   
    1876    0

    编译原理期末试题附答案

    《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。(× )2.一个有限状态自动机中,有且仅有一个唯一的终态...

    1年前   
    406    0

    编译原理实验3-4预测分析表方法

    实验3-4 预测分析表方法班级:_ _ 学号:_ _ 姓名:_ _ 得分:_ _一、实验目的理解预测分析表方法的实现原理。二、实验内容: ...

    1年前   
    315    0

    编译原理课程设计心得体会

    编译原理课程设计心得体会  经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。  一、对实验原理有更深的理解  通过该课程设计,掌握了什么是...

    11年前   
    631    0

    编译原理课后习题第三版答案

    第二章P36-6(1)是0~9组成的数字串(2)最左推导:最右推导:P36-7G(S)P36-8文法:最左推导:最右推导:语法树:/******************************...

    2年前   
    501    0

    西电编译原理上机报告DBMS的设计与实现

    编译原理上机报告《DBMS的设计与实现》学号: 姓名: 手机: 邮箱: 完成时间:2013 年X月X日目 录1. 项目概...

    2年前   
    309    0

    广东海洋大学编译原理期末复习资料

    广东海洋大学《编译原理》期末试题(一) 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.编译程序是对高级语言程序的解释执行。(× ) 2.一个有限状态自动机中...

    5年前   
    1758    0

    《数据库原理及应用》实验报告

     数据库原理及应用 实验报告 实验课程: 学 号: 学生姓名: ...

    5年前   
    4469    0

    文档贡献者

    文***品

    贡献于2021-12-27

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档