编译原理课程设计基于算符优先分析方法的表达式语法分析器.doc
文本预览下载声明
PAGE
基于算符优先分析方法
的表达式语法分析器
年 级: 2007
班 级: 级计算机科学与技术 4班
组 长:
组 员:
指导老师:
TIME \@ EEEE年O月A日 \* MERGEFORMAT 二〇一八年八月二十三日
目 录 TOC \o 1-3 \h \z \u
HYPERLINK \l _Toc265447843 前 言 PAGEREF _Toc265447843 \h 1
HYPERLINK \l _Toc265447844 第1章 课程设计计划 4
HYPERLINK \l _Toc265447845 1.1员与工作分配 4
HYPERLINK \l _Toc265447846 1.2课程计划 4
HYPERLINK \l _Toc265447847 1.3资源需求 4
HYPERLINK \l _Toc265447848 第2章 功能需求分析 5
HYPERLINK \l _Toc265447849 2.1 功能需求清单 5
HYPERLINK \l _Toc265447850 第3章 设计、分析与编码 6
HYPERLINK \l _Toc265447851 3.1 总体设计 6
HYPERLINK \l _Toc265447852 3.1.1 模块划分 6
HYPERLINK \l _Toc265447853 3.1.2程序分包 6
HYPERLINK \l _Toc265447854 3.2 详细设计 7
HYPERLINK \l _Toc265447855 3.2.1 类图 7
HYPERLINK \l _Toc265447856 3.3 程序流程图 9
HYPERLINK \l _Toc265447858 3.4 分析与编码实现 10
HYPERLINK \l _Toc265447859 3.4.1表达式文法G[E’]构造算符优先关系表 10
HYPERLINK \l _Toc265447860 3.4.2 根据算符优先表用栈结构来实现算符优先分析 PAGEREF _Toc265447860 \h 13
HYPERLINK \l _Toc265447861 3.4.3 辅助工具类设计 18
HYPERLINK \l _Toc265447862 第4章 测试用例及程序截图 21
4.1第一版测试………………………………………………………………………………………………………………21 HYPERLINK \l _Toc265447863 4.1第二版测试………………………………………………………………………………………………………………25
HYPERLINK \l _Toc265447864 4.2 第三版测试 PAGEREF _Toc265447864 \h 28
HYPERLINK \l _Toc265447866 第5章 用户使用说明 32
HYPERLINK \l _Toc265447867 5.1 使用步骤 32
HYPERLINK \l _Toc265447868 附录1. 参考文献 33
HYPERLINK \l _Toc265447869 附录2. 总结 33
前 言
1.摘要
编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。算符优先分析法是一种简单直观、特别方便于表达式分析,易于手式实现的方法。算符优先法只考虑算符(广义为终结符号)之间的优先关系,它是一种自底向上的归约过程,但这种归约未必严格按照句柄归约。它是一种不规范归约法。算符优先分析法的关键是比较两个相继出现的终结符号的优先级而决定应采取的动作。要完成算符间的优先级比较,就要先定义各种可能出相继出现的运算符的优先级,并将其表示成矩阵形式,在分析过程中通过查询矩阵元素而得出算符间的优先关系。
2.问题描述
给出该文法
E’ →# E #
E → E + Q | Q
Q → Q - T | T
T → T * F | F
F → F/ M|M
M → M^ P|P
P → ( E )|i
用算符优先分析法实现对表达式的计算。
3.项目开发平台
语言:Java
开发平台:MyEclipse
第1章 课程设计计划
1.1组员与工作分配
显示全部