将算术表达式转换成三元式的程序实现、编译原理课程设计

需求

设计一个语法制导翻译程序, 将算术表达式翻译成三元式, 要求: 先确定一个定义算是表达式的文法, 为其设计一个语法分析程序, 为每条产生式配备一个语义子程序, 按照一遍扫描的语法制导翻译方法, 实现翻译程序。对用户输入的任意一个正确的算术表达式, 程序将其转换成三元式输出, 可按照一定格式输出到指定文件中

演示

运行环境

C++, CodeBlocks

技术原理

中间代码(Intermediate Representation或者IR):复杂性介于源程序语言和机器语言的一种表示形式。 编译程序锁使用的中间代码有多种形式。常见的有逆波兰记号,三元式,四元式,和树形表示, 整体代码设计思路有如下几点

  • 编程语言选用c++, 基于STL标准容器开发, 可翻译成Java Python等语言
  • 为了实现三元式一遍解析, 采用栈这个数据结构来存储符号, Java Python都有该容器
  • 每个操作符号 加减乘除都有优先级, 设计了两个函数来制定符号的优先级, 数字越大优先级越高
  • 最终结果出了会在终端打印, 也会输出到 result.txt 这个文件中

程序运行截图

将算术表达式转换成三元式的程序实现、编译原理课程设计_第1张图片

代码下载地址  cs-work.com/p/21088

 

你可能感兴趣的:(课程设计,编译原理)