阅读背景:

总结——哈工大编译原理课程(六)

来源:互联网 

(一)编译程序总体结构

 

ZhouPascalCompiler是一个简化版的的Pacal编译器,由词法分析器、语法分析器、语义分析与中间代码生成器以及贯穿于前三个阶段的符号表管理器和出错处理器组成。它的工作流程为:输入源程序code.txt,词法分析分析出其中的单词符号,如果在分析过程中未出现词法错误,则生成中间文件lex.txt,否则向屏幕打印错误类型提示并定位出错位置,程序终止。这样设计的好处在于先进行比较简单的词法分析,避免了不必要的计算开销,节省了计算机资源。因为如果设计成以语法分析器为核心的结构,则在分析过程中一旦发现某个词法错误,那么之前所有的语法分析和翻译动作都白做了。若词法分析成功生成lex.txt,语法分析器进行语法分析工作:需要一个单词时,就从lex.txt读出一行,根据预测分析表和状态栈、符号栈的栈顶符号决定将此单词压栈/规约,若规约成功,则输出“accept”;否则,输出“error”和错误原因。采用语法制导翻译的方式,在语法分析的同时进行语义分析和中间代码生成,可翻译的语句类型有:含嵌套过程的声明语句、含数组的赋值语句、布尔表达式、if/while/for/repeat、过程调用语句、输入输出语句。符号表管理器用于管理程序中的各种标识符、过程名、过程嵌套关系等。出错处理对器程序不符合词法或语法要求的地方进行定位并提示出错信息。ZhouPascalCompiler是一个简化版的的Pac




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: