原文信息 (买这个文件的时候能看原文信息。)
编 译 原 理
课
程
设
计
一、概述
课程设计的目标是做一个编译器,用的是SPL语言,该语言结构清晰简单,包括了一部分的高级预言的语法结构,对于简单的编译器程序来说,做为测试用例是比较合适的,难度也相对比较低的。
本SPL编译器是在Visual C++集成环境下,用C++语言实现,在Window XP平台下运行通过的.
二、结构设计说明和各功能模块描述
SPL编译器是先调用词法分析程序,对输入文件逐个字符的扫描,讲文件解析成为,标志符,数字,保留字,一些保留符号。再在语法分析中,扫描经过词法分析,解析后产生的词法表,根据SPL的文法,进行语法的判断,检查输入文件中是否存在错误。并记录下错误信息,和错误的位子。
1.词法分析
1.1 状态转换图
标识符:
1 2 3
字母:
1 2 3
数字:
1 2 3
1.2 单词符号及内部表示,符号表
::strcpy(m_tKeyWord[0],"");
::strcpy(m_tKeyWord[1],"");//标识符
::strcpy(m_tKeyWord[2],"");//正整数
::strcpy(m_tKeyWord[3],"prog..
一、概述
二、结构设计说明和各功能模块描述
三、测试结果
四、开发过程与完成情况
[原文]
一、概述
课程设计的目标是做一个编译器,用的是SPL语言,该语言结构清晰简单,包括了一部分的高级预言的语法结构,对于简单的编译器程序来说,做为测试用例是比较合适的,难度也相对比较低的。
本SPL编译器是在Visual C++集成环境下,用C++语言实现,在Window XP平台下运行通过的.
二、结构设计说明和各功能模块描述
SPL编译器是先调用词法分析程序,对输入文件逐个字符的扫描,讲文件解析成为,标志符,数字,保留字,一些保留符号。再在语法分析中,扫描经过词法分析,解析后产生的词法表,根据SPL的文法,进行语法的判断,检查输入文件中是否存在错误。并记录下错误信息,和错误的位子。
1.词法分析
1.1 状态转换图
标识符:
1.2 单词符号及内部表示,符号表
::strcpy(m_tKeyWord[0],"");
::strcpy(m_tKeyWord[1],"");//标识符
::strcpy(m_tKeyWord[2],"");//正整数
::strcpy(m_tKeyWord[3],"program");
::strcpy(m_tKeyWord[4],"var");
::strcpy(m_tKeyWord[5],"const");
::strcpy(m_tKeyWord[6],"begin");
::strcpy(m_tKeyWord[7],"end");
::strcpy(m_tKeyWord[8],"if");
::strcpy(m_tKeyWord[9],"then");
::strcpy(m_tKeyWord[10],"else");
::strcpy(m_tKeyWord[11],"while");
::strcpy(m_tKeyWord[12],"do");
::strcpy(m_tKeyWord[14],"int");
::strcpy(m_tKeyWord[16],"+");
::strcpy(m_tKeyWord[17],"-");
::strcpy(m_tKeyWord[18],"*");
::strcpy(m_tKeyWord[19],"/");
......