2024年5月25日发(作者:)

一、

实验目的:

(1)掌握自上而下语法分析的要求与特点。

(2)掌握递归下降语法分析的基本原理和方法。

(3)掌握相应数据结构的设计方法。

二、

实验内容:

编程实现给定算术表达式的递归下降分析器。

算术表达式文法如下:

S→a|∧|(T)

T→T,S|S

三、

设计说明:

首先改写文法为LL(1)文法;然后为每一个非终结符,构造相应的递归过

程,过程的名字表示规则左部的非终结符;过程体按规则右部符号串的顺

序编写。

四、

设计分析

这个题目属于比较典型的递归下降语法分析。需要先将原算术表达式方法

改写为LL(1)文法为:

S→a|∧|(T)

T→ST’

T’→,ST’|ε

然后再为每个非终结符设计一个对应的函数,通过各函数之间的递归调用从

而实现递归下降语法分析的功能。

具体方法为:

(1)当遇到终结符a时,则编写语句

If(当前读到的输入符号==a)读入下一个输入符号

(2)当遇到终结符∧时,则编写语句

If(当前读到的输入符号==∧)读入下一个输入符号