一、课程设计目的
通过设计、编制、调试一个简单计算器程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。
二、课程设计内容及步骤
本次课程设计需要使用 LR 分析法完成简单计算器的设计,其中算术表达式的文法如下:
- 〈无符号整数〉∷= 〈数字〉{〈数字〉}
- 〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉}
- 〈表达式〉∷=[+|-]〈项〉{〈加法运算符〉〈项〉}
- 〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉}
- 〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’
- 〈加法运算符〉∷= +|-
- 〈乘法运算符〉∷= * |/
本次课程设计分为如下步骤完成:
- 根据题目要求的文法写出产生式
- 进行文法拓广,根据产生式画出识别活前缀的 DFA
- 根据 DFA 写出 LR(0)或 SLR(1)分析表
- 编写程序,对输入串进行分析
- 设计若干用例,上机测试并通过所设计的分析程序
三、翻译方法
3.1 词法分析
词法分析是计算机科学中将字符序列转换为单词(Token)序列的过程。进行语法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称 Lexer)&