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

需求

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

演示

运行环境

C++, CodeBlocks

技术原理

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

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

程序运行截图

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

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值