1、 计算机科学与技术学院 课程设计课程设计 课程名称:课程名称:编译原理编译原理 题题 目:目:词法分析和算符优先分析词法分析和算符优先分析 班班 级:级: 学学 号:号: 姓姓 名:名: 20122012 年年 5 5 月月 2424 日日 设计一:词法分析器设计一:词法分析器 1. 课程设计目的和要求 3 1.1 实验目的 . 3 1.2 实验要求 . 3 2.设计描述 . 3 3.函数模块 . 4 5.测试样例与测试结果 . 8 6. 结论 8 设计二:设计二: 算符优先语法分析算符优先语法分析 1.课程设计的目的和要求 9 1.1 课程设计的目的 9 1.2 课程设计的要求 9 2.设计
2、描述 . 9 2.1 自底向上分析方法的描述: 9 2.2 算符优先文法的描述: .10 3. 概要设计和详细设计. 11 4.1 功能结构 11 4.2 模块的划分 . 11 5.源代码 .12 5.测试样例与测试结果 22 6. 结论 .23 设计一:词法分析器设计一:词法分析器 1.课程设计目的和要求课程设计目的和要求 1.1 实验目的实验目的 通过完成词法分析程序,了解词法分析的过程。编制一个读单词过程,从输入的源程序中, 识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。 并依次输出各个单词的内部编码及单词符号自身值。 1.2 实验要求实验要求 通过词法
3、分析器能够实现以下五种类型如单词等的识别。 (1)关键字“begin“,“end“,“if“,“then“,“else“,“while“,“write“,“read“等, “do“, “call“,“const“,“char“,“until“,“procedure“,“repeat“等 (2)运算符:“+“,“-“,“*“,“/“,“=“等 (3)界符:“,“,“,“,“;“,“,“,“.“,“(“,“)“,“:“等 (4)标识符 (5)常量 2.设计描述设计描述 词法分析:词法分析:逐个读入源程序字符并按照构词规则切分成一系列单词。 单词是语言中具有独立 意义的最小单位,包括保留字、标识符、
4、运算符、标点符号和常量等。词法分析是编译过程 中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析 程序调用词法分析程序来获得当前单词供语法分析使用。 表 1 各种单词符号对应类型表 单词符号 类型编码 助记符 标识符 1 $SYMNOL 常量 2 $CNSTANT int 3 $INT if 4 $IF else 5 $ELSE while 6 $WHILE for 7 $FOR read 8 $READ write 9 $WRITE + 10 $ADD - 11 $SUB * 12 $MUL / 13 $DIV = 17 $GE != 18 $NE = 19 $E = 20 $ASSIGN ( 21 $LPAR ) 22 $RPAR , 23 $COM ; 24 $SEM 3.函数函数模块模块 1.LexAnalyz()函数 实现整个分析的过程 2.main 主函数: 主要实验将输入的字符串存进 token 中,和组织其他函数已完成功能。 3.print()函数 将识别的结果打印