PL/0编译程序实现的简要回顾PL/0编译程序pcode解释程序PL/0源程序pcode代码注:此处的pcode代码专指PL/0的目标码,注意与传统pcode的区别步骤1、认识源语言PL/0与目标代码pcode及它们之间的映射步骤2、PL/0编译程序的总体设计步骤3、PL/0编译程序词法分析的设计与实现步骤4、PL/0编译程序语法语义分析的设计与实现步骤5、PL/0编译程序代码生成的实现步骤6、PL/0编译程序语法错误处理的实现步骤7、pcode代码解释器的设计与实现PL/0语言:PASCAL语言的子集,功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分PL/0程序示例PL/0的非形式描述PL/0的语法描述图PL/0语言文法的EBNF表示目标代码pcode是一种假想栈式计算机的汇编语言。0jmp 081jmp 022int 033lod 134lit 0105opr 02次栈顶与栈顶相加6sto 147opr 008int 05在运行栈中申请5个栈空间9opr 016从命令行读入输入置于栈顶10sto 03将栈顶值存入变量11cal 02调用过程12lod04将变量取至栈顶13opr014栈顶值输出至屏幕14opr015换行15opr00SL0DL0RA0变量1变量2RA12SL0DL0运行栈consta=10;varb,c;procedurep;beginc:=b+a;end;beginread(b);callp;write(c);:静态链DL:动态链RA:返回地址0语法语义分析程序词法分析程序表格管理程序出错处理程序代码生成程序PL/0源程序目标程序自顶向下的语法分析VARA;BEGINREAD(A)END.<程序><分程序>.<变量说明部分><语句>VAR<标识符>;A<复合语句>BEGIN<语句>END<读语句>READ(<标识符>);ABEGINENDREAD()A<标识符><标识符><语句><复合语句><语句><分程序><程序><读语句>VARA;BEGINREAD(A)END.<变量说明部分>移进规约接受&LEX介绍及实例分析清华大学计算机系软件研究所赖辉旻
pl0编译程序实现的简要回顾 来自淘豆网www.taodocs.com转载请标明出处.