/PL0_compiler_CPLUSPLUS

编译原理课程设计,C++语言实现的PL0语言编译器

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

PL0_compiler_CPLUSPLUS

编译原理课程设计,C++语言实现的PL0语言编译器

comming soon

实现需求 (已经实现的加粗)

课内实验

对PL/0作以下修改扩充:

  • (1)增加单词(只实现词法分析部分):

    保留字 ELSE,FOR,TO,DOWNTO,RETURN

    运算符 +=,-=,++,--

    注释符 //

  • (2)修改单词:

    不等号# 改为 <>

  • (3)增加语句

    增加条件语句的ELSE子句(实现语法语义目标代码)

    要求:写出相关文法和语法图,分析语义规则的实现。

课程设计

基本内容(成绩范围:“中”、“及格”或“不及格”)

  • (1)扩充赋值运算:

    += 和 -=

  • (2)扩充语句(Pascal的FOR语句):

    ①FOR <变量>:=<表达式> TO <表达式> DO <语句>

    ②FOR <变量>:=<表达式> DOWNTO <表达式> DO <语句>

    其中,语句①的循环变量的步长为1,语句②的循环变量的步长为-1。

选做内容(成绩评定范围扩大到:“优”和“良”)

  • (1)增加运算:++ 和 --。
  • (2)增加类型:① 字符类型; ② 实数类型。
  • (3)扩充函数:① 有返回值和返回语句;② 有参数函数。
  • (4)增加一维数组类型(可增加指令)。
  • (5) 增加 注释; 注释由//包含,或由//注释一行;
  • (6)其他典型语言设施。