Contest1874 - 2025-2026-1学期<编译原理> 实验4:LL(k)文法实验【23计算机1234】

2025-2026-1学期<编译原理> 第10-11周练习:LL(k)文法实验【23计算机1234】

1. LL(1)分析:确定的非递归的自顶向下的表驱动预测分析方法(确定的下推自动机DPDA)

2. 递归下降语法分析的优缺点:
    优点:代码简洁(编码机械)
    缺点:效率较低(无法应对大型文法)

3. 非递归的语法分析优点:
    缺点:文法计算较复杂,算法实现难度较高(需要实现诸多:First、Follow、LL(1)表构造、LL(1)分析器)
    优点:效率高(可以处理非常复杂的实用文法)

4. LL(1)分析流程:
    (1)把文法改造为LL(1)文法,满足3个前提(无左递归,无左公因子,无二义性)
    (2) 计算First/Follow Select
    (3) LL(1)表构造
    (4) LL(1)分析器

5.本次实验任务:
    (1)理解非递归和递归的编程区别,分析递归下降语法分析的优缺点
    (2)掌握LL(1)文法的变换,LL(1)文法的判定,和LL(1)分析表的构造(以First、Follow Select函数为前提)
    (3)熟练掌握编译工作台的使用(项目创建、文法录入和调试,生成和演示)
    (4) OJ作业1824,尽量用非递归来设计,或者把递归转成非递归


Start Time: 2025-11-01 00:00:00 End Time: 2025-11-18 00:00:00
Current Time: 2025-11-04 13:47:24 Status:Running   Public
[Status] [Standing] [Statistics]
Problem ID Title 分类 AC Submit 正确率
Problem  A 加密字符串(code) 字符串递归下降分析 7 8
87%
Problem  B Simply Syntax 字符串递归递归下降分析编译原理 7 8
87%
Problem  C 算术表达式 字符串递归下降编译原理文法检测 7 10
70%
Problem  D 去括号 字符串 4 29
13%
Problem  E RLE解码 模拟 4 16
25%
Problem  F 师座操作系统 模拟字符串编译原理 3 6
50%