全部科目 > 数据库系统工程师 >
2018年上半年 上午试卷 综合知识
第 6 题
知识点 中间代码  
章/节 计算机软件基础知识  
 
 
算术表达式采用后缀式表示时不需要使用括号,使用(5)就可以方便地进行求值。a-b(c+d)(其中,-、+、*表示二元算术运算减、加、乘)的后缀式为(6),与该表达式等价的语法树为(7)。
 
  A.  a b c d -*+
 
  B.  a b c d*+ -
 
  C.  ab-c*d+
 
  D.  a b c d+*-




 
 
相关试题     计算机软件基础知识 

  第24题    2020年下半年  
程序设计语言的基本成分包括数据、运算、控制和(22)。数据是程序操作的对象,按照数据组织形式可以分为多种类型,其中枚举属于(23)类型;数组属于(24)类型..

  第27题    2014年上半年  
若某文件系统的目录结构如下图所示,假设用户要访问文件fault.swf, 且当前工作目录为swshare,则该文件的相对路径和绝对路径分别为()。

  第8题    2019年上半年  
对于给定的关键字序列{47, 34, 13, 12, 52, 38, 33, 27, 5},若用链地址法(拉链法)解决冲突来构造哈希表,且哈希函数为H(key)=key%ll,则( )。

 
知识点讲解
· 中间代码
 
        中间代码
        从原理上讲,对源程序进行语义分析之后就可以直接生成目标代码,但由于源程序与目标代码的逻辑结构往往差别很大,特别是考虑到具体机器指令系统的特点,要使翻译一次到位很困难,而且用语法制导方式机械生成的目标代码往往是烦琐和低效的,因此有必要设计一种中间代码,将源程序首先翻译成中间代码表示形式,以利于进行与机器无关的优化处理。由于中间代码实际上也起着编译器前端和后端的分水岭作用,所以使用中间代码也有助于提高编译程序的可移植性。常用的中间代码有后缀式、四元式和树等形式。
        (1)后缀式(逆波兰式)。逆波兰式是波兰逻辑学家卢卡西维奇(Lukasiewicz)发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。这种表示法的优点是根据运算对象和算符的出现次序进行计算,不需要使用括号,也便于用栈实现求值。对于表达式x:=(a+b)*(c+d),其后缀式为xab+cd+*:=。
        (2)树形表示。例如,表达式x:=(a+b)*(c+d)的树形表示如下图所示。
        
        表达式的树形表示
        (3)四元式表示。四元式是一种普遍采用的中间代码形式,其组成成分为运算符OP、第一运算对象ARG1、第二运算对象ARG2和运算结果RESULT。其中,运算对象和运算结果有时指用户自定义的变量,有时指编译程序引入的临时变量,RESULT总是一个新引进的临时变量,用来存放运算结果。例如,表达式x:=(a+b)*(c+d)的四元式表示为:
        ①(+,a,b,t1)②(+,c,d,t2)③(*,t1,t2,t3)④(:=,t3,_,x)



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有