编译原理课程设计.docxVIP

  • 24
  • 0
  • 约7.38千字
  • 约 14页
  • 2021-03-21 发布于天津
  • 举报
编译原理11 编译原理 11级嵌入式应用技术班 2014年6月 课程设计报告 课程: 学号: 姓名: 班级: 教师: 时间: 计算机科学与技术系 设计名称: 简单计算器的实现 设计内容、目的与要求: 设计内容: 计算器的功能要求如下:可以支持加(+)、减(-)、乘(*)、除(/)运算, 如3+4-5*2/2;支持括号运算,如(4+5) *5/8。用户输入表达式后,转化为逆波 兰式并执行计算,最后输出该表达式的结果。 设计目的: 1、 对单词的构词规则有明确的定义; 2、 编写的分析程序能够正确识别源程序中的语法符号; 3、 计算器源程序的以.c格式输出; 4、 对于源程序中的语法错误,能够做出简单的错误处理,给出简单的错误提示, 保证顺利完成整个源程序的分析; 5、 计算器能够实现加,减,乘,除,混合运算,多项式运算 设计要求: 1、 将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式, 并计算用逆波兰式来表示的算术表达式的值。 2、 掌握利用算符优先分析法完成中缀表达式到逆波兰式的转化。 计划与进度安排: 5月20日一5月21日:确定本次课程设计研究课题:实现简单计算器。 5月22日一5月30日:进行需求分析,分析该计算器具有哪些功能,并明确该 课题的一些要求。 5月31日一6月3日:查找相关资料和书籍,了解本课题涉及有关知识,如: 编译原理的一些基本概念,逆波兰式的基本概念,以及逆 波兰式的转化问题等。 6月4日一6月8日:概要设计,将程序的几大模块分开来设计,画出程序的流 程图 6月8日一6月10日:详细设计,写出代码并进行调试 6月10日一6月12日:运行程序,如果能够实现本次课程设计则进行优化,如 果不能满足要求则继续改进。 6月13日一6月15日:对本次课程设计进行分析总结。 设计过程、步骤(可加页): 一、需求分析 1.1总述 在日常的学习与工作过程中, 经常遇到计算表达式数值的问题, 诸如34- (8+5*10)。如果人为地分步计算, 难免因疏漏了括号或字符而导致结果出错。 表达式计算器具有计算表达式结果的功能, 大大方便了学习与工作。本次开发的 表达式计算器能帮我们对数据进行有效的运算,如通过四则运算能实现对输入数 据的加减乘除。本课程设计结合了编译原理中的利用算符优先分析法完成中缀表 达式到逆波兰式的转化,并计算输入表达式的结果。 1.2编写表达式计算器的意义 我们每个人都使用过计算器,专用的计算器都是一个现成的器件,是由运 算芯片完成运算功能的。而且只能进行单纯的加、减、乘、除运算 ,不能进行表 达式运算。那么如何用计算机来实现一个基于表达式的计算器呢 ?用计算机来实 现一个基于表达式的计算器,也就是用编写程序(即软件)的方法来实现。 所谓的编译程序是指这样的一种程序,它能够把某一种语言程序(称为源 语言程序)转换成另一种语言程序(称为目标语言程序),而后者与前者在逻 辑上是等价的。四则混合计算器的输入是一个由字符组成的表达式 (源程序), 如果这个表达式是合法的,则输出是这个表达式的计算结果(目标代码);否 则输出错误信息。因此四则混合计算器是一个典型的编译程序。编译原理是计算 机软件专业的一门重要的专业必修课。尽管编译过程与外文书刊的翻译工作过程 比较类似,但由于编译程序所翻译的毕竟不是自然语言 ,必然有其自身特性, 因而学生普遍认为这门课程是专业课中比较难于学习的。 即使学习了编译原理这 门课,大多数学生也不可能就开发出一个编译程序。事实上,许多从事计算机专 业的人士也未能编写出一个完整的编译系统。而编制四则混合运算的计算器,就 等价于编写一个小的编译系统,而且又具有可实现性,因此,把这个题目作为 编译原理学习的一个测验题目是非常适合的。 现有的编译程序通常有两大类:一 类是翻译,另一类是解释。所谓翻译,是指在计算机中放置一个能为计算机直接 执行的翻译程序,它以某一种程序设计语言(源语言)所编写的程序(源程序) 作为翻译或加工的对象,当计算机执行翻译程序时,就将它翻译为与之等价的 另一种语言目标语言的程序(目标程序)。如C编译程序就是一种翻译程序, 它的源语言和目标语言分别是相应的 C语言和机器语言。解释程序也是以源程 序作为它的输入,它与编译的主要区别是在解释程序的执行过程中不产生目标 程序,而是边解释边执行源程序本身。 1.3功能要求 要求:实现具有加、减、乘、除、括号等运算的简单计算器,输入表达式, 转换为逆波兰式,输出该表达式的值。 二、概要设计 2.1开发环境 操作系统:Windows 7 开发平台:VC++6.0 开发语言:C 2.2总体设计 程序在VC++6.0中使用面向对象的技术实现了计算器。程序主要结构如 下: 定义部分:定义常量、变量、数据结构。 初始化:设立算符优

文档评论(0)

1亿VIP精品文档

相关文档