1.简单高级语言文法:
<程序>→[<常量说明>][<变量说明>]<语句>
<常量说明>→Const <常量定义>{,<常量定义>};
<常量定义>→<标识符>=<无符号整数>
<无符号整数>→<数字>{<数字>}
<字母>→a|b|c| … |z
<数字>→0|1|2| … |9
<标识符>→<字母>{<字母>|<数字>}
<变量说明>→Var <标识符>{,<标识符>};
<语句>→<赋值语句>|<条件语句>|<当循环语句>|<复合语句>|ε
<赋值语句>→<标识符>=<表达式>
<表达式>→<项>{<加法运算符><项>}
<项>→<因子>{<乘法运算符><因子>}
<因子>→<标识符>|<无符号整数>|‘(’<表达式>‘)’
<加法运算符>→+|-
<乘法运算符>→* |/
<条件语句>→if <条件> then <语句>| if <条件> then <语句> else <语句>
<条件>→<表达式><关系运算符><表达式>
<关系运算符>→==|<=|<|>|>=|<>
<当循环语句>→while <条件> do <语句>
<复合语句>→begin <语句>{;<语句>} end
  
注:
    <> — 非终结符号
    [] — 可选项
    {} — *
     | — 或

2.分析
(1)单词符号结构
    无符号整数:NUM =( 0 | 1 | 2 | … | 9 )+
    标识符:ID =( a | b | c | … | z )( a | b | c | … | z | 0 | 1 | 2 | … | 9)*
(2)语法规则
    P → C V S | C S | V S | S
                /* P-程序 C-常量说明 V-变量说明 S-语句
    C → Const D ;
                /* D-常量定义
    D → id = num , D | id = num
    V → Var ID ;
    ID → id , ID | id
    S → A | I | W | B |ε
                /* A-赋值语句 I-条件语句 W-当循环语句 B-复合语句
    A → id = E
                /* E-表达式
    E → T | E P T
                /* T-项 P-加法运算符
    T → F | T M F
                /* F-因子 M-乘法运算符
    F → id | num |(E)
    P → + | -
    M → * | /
    I → if X then S | if X then S else S
                /* X-条件
    X → E O E
                /* O-关系运算符
    O → == | <= | < | > | >= | <>
    W → While X do S
    B → begin Y end
    Y → S ; Y | S

3.实验要求:
1、编写词法分析程序 (源程序输入)
2、编写语法分析程序
3、编写语义分析程序 (三地址代码输出)
4、集成各子程序为一小型编译器