《广东工业大学编译原理课程设计项目》是由广东工业大学计算机科学学院开设的一门实践性教学环节,旨在通过实际编程任务加深学生对编译技术的理解和应用。
### 一.课程设计目的
在深入分析并理解一个教学型编译程序(如PL/0)的基础上,对其中的词法分析、语法分析以及语义处理部分进行一定的修改与扩展。
### 二.课程设计要求
#### 基本内容:
1. **扩充赋值运算**:
- += 和 -=
2. **扩充语句**(Pascal的FOR循环):
- FOR <变量>:=<表达式> TO <表达式> DO <语句>
- FOR <变量>:=<表达式> DOWNTO <表达式> DO <语句>
其中,第一种形式中的循环步长为2;第二种形式中,步长则设定为-2。
#### 选做内容:
1. **增加运算**:
- ++ 和 --
2. **新增类型**:
- 字符类型
- 实数类型
3. **扩充函数功能**:
- 支持返回值和带有返回语句的函数定义;
- 包含参数在内的各种形式的函数实现。
4. **增加一维数组支持**
5. **其他语言特性**
#### 本人在课程设计中已达成的功能:
1. 增加保留字:ELSE,FOR,TO,DOWNTO, REPEAT, UNTIL, RETURN
2. 修改运算符不等号#为 <>
3. 引入条件语句的ELSE子句支持。
4. 扩展赋值操作 += 和 -=
5. 实现了Pascal FOR循环结构:
- FOR <变量>:=<表达式> TO <表达式> DO <语句>
- FOR <变量>:=<表达式> DOWNTO <表达式> DO <语句>
6. 支持 ++ 和 -- 运算符(包括前置和后置形式)
7. 引入一维数组类型
8. 实现了REPEAT 语句 UNTIL 语句等其他语言特性