
编译原理中的语法分析与预测分析法(附代码)
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章深入探讨了编译原理中关键环节——语法分析及其核心方法之一的预测分析法。结合具体示例和实用代码,帮助读者理解并实践这一重要技术。适合计算机科学专业的学生及编程爱好者阅读学习。
由于预测分析与递归子程序都是自顶向下的解析方法,这里提供无回溯的及无左公因子的文法描述。去除左递归并消除左公因子后的BNF如下:
<程序> → <程序首部><分程序>.
<程序首部> → PROGRAM 标识符;
<分程序> → <常量说明部分><变量说明部分><过程说明部分><复合语句>
<常量说明部分> → CONST<常量定义><常量定义后缀>; | ε
<常量定义> → 标识符 = 无符号整数
<常量定义后缀> → , <常量定义><常量定义后缀>| ε
<变量说明部分> → VAR<变量定义><变量定义后缀>|ε
<变量定义>→标识符<标识符后缀>:<类型>;
<标识符后缀>→, 标识符<标识符后缀>|ε
<变量定义后缀>→ <变量定义><变量定义后缀>| ε
<类型> → INTEGER|LONG
<过程说明部分> → <过程首部><分程序>; <过程说明部分后缀>|ε
<过程首部> → PROCEDURE 标识符 <参数部分>:
<参数部分> → (标识符:<类型>)|ε
<过程说明部分后缀>→ <过程首部><分程序>; <过程说明部分后缀>| ε
<语句> → <赋值或调用语句>|<条件语句>|<当型循环语句>|<读语句>|<写语句>|<复合语句>
<赋值或调用语句>→标识符 <后缀>
<后缀> → := <表达式>| (<表达式>)|ε
<条件语句> → IF <条件> THEN <语句>
<当型循环语句> → WHILE <条件> DO <语句>
<读语句> → READ (标识符<标识符后缀>)
<写语句>→ WRITE (表达式<表达式后缀>)
<表达式后缀>→ , <表达式><表达式后缀>|ε
<复合语句> → BEGIN <语句><语句后缀>END
<语句后缀> → ; <语句><语句后缀>| ε
<条件> → <表达式><关系运算符><表达式>| ODD <表达式>
<表达式>→ +<项><项后缀>-<项><项后缀>|<项><项后缀>
<项后缀>→ <加型运算符><项><项后缀>|ε
<项> → <因子><因子后缀>
<因子后缀> → <乘型运算符><因子><因子后缀>| ε
<因子> → 标识符|无符号整数|( <表达式>)
<加型运算符>→ +|-
<乘型运算符>→ *|/
<关系运算符>→ = | <> | <|<= |> >=
全部评论 (0)


