LL(1) 文法判别与 First、Follow、Select 集合计算 使用 C 语言实现 LL(1) 文法判别,并计算 First、Follow 和 Select 集合。该实现满足编译原理实验需求,可能存在不足之处,欢迎探讨。 C 23 次浏览 2024-06-16
模拟继承属性的计算-属性文法与语法制导翻译 模拟继承属性的计算思想:通过引进新的非终结符和相应的ε产生式,将新的文法符号插入到某些产生式中去,使得在文法在翻译过程中可以按继承属性的计算方法来处理。也就是在分析过程中文法符号的属性值在分析栈是确定的。用综合属性代替继承属性对基础文法进行等价改变,避免使用文法符号的继承属性。 C 22 次浏览 2024-07-25
LR分析法中的文法二义性与推导过程 文法二义性证明 文法 1 E -> -EE | -E | a | b | c 证明: 该文法对于输入串"-a"存在两棵不同的语法分析树,故存在二义性。 语法分析树1: E -> -EE -> -aE -> -aa 语法分析树2: E -> -E -> -a 文法 2 P -> PaP | C 24 次浏览 2024-06-10
基于扩充C0文法的编译器设计与实现 本编译器是为满足北京航空航天大学2014年编译原理课程设计要求而开发的,实现了对扩充C0文法的支持,涵盖DOWHILE语句、FOR循环等语法结构。需要注意的是,该编译器目前尚不支持SWITCH语句,且数组元素访问方式存在限制,无法处理形如a[i]的表达式。 在词法分析阶段,本编译器采用先遍历全部代码 C 19 次浏览 2024-06-25
基于有限状态机的正规文法编译器实现 正规文法编译器实现方案 本方案采用C语言及LEX、YACC等工具实现基于有限状态机的正规文法编译器。编译器算法设计遵循《编译原理》课程相关理论,并可根据实际需求进行调整。 开发工具 C语言 LEX YACC 其他常用开发工具 算法设计 参考《编译原理》课程相关算法。 可根据实际需求对算法进行 C 21 次浏览 2024-06-16