编译原理实验报告 ******************************************************************************* ******************************************************************************* PL0 语言功能简单、结构清晰、可读性强,而又具备了一般高级程序设计语言的必须部分,因而PL0 语言的编译程序能充分体现一个高级语言编译程序实现的基本方法和技术
PL/0 语言文法的EBNF 表示如下: ::=
::=[][][] ::=CONST{,} ; ::== ::= {} ::=VAR {, } ; ::={|} ::={; } ; ::=PROCEDURE ; ::=||| ||| ::=:= ::=BEGIN {; } END ::= |ODD ::= [+|-]{ } ::= { } ::= || ‘(’‘)’ ::= +|- ::= *|/ ::= =|#|= ::= IF THEN ::= CALL 标识符 ::= WHILE DO ::= READ‘(’{,} ‘)’ ::= WRITE‘(’{,} ‘)’ ::= a|b|…|X|Y|Z ::= 0|1|…|8|9 【预处理】 对于一个pl0 文法首先应该进行一定的预处理,提取左公因式,消除左递归(直接或间接),接着就可以根据所得的文法进行编写代码
【实验一】词法分析 【实验目的】给出 PL/0 文法规范,要求编写PL/0 语言的词法分析程序
【实验内容】已给 PL/0 语言文法,输出单词(关键字、专用符号以及其它标记)
【实验要求】 1
确定编译中使用的表格、标识符与关键字的区分方法等
把词法分析器设计成一个独立一遍的过程
词法分析器的输出形