免费智能真题库 > 历年试卷 > 网络管理员 > 2009年上半年 网络管理员 上午试卷 综合知识
  第12题      
  知识点:   程序设计语言基础   高级语言   中间代码
  关键词:   高级语言   系统软件   源程序   中间代码   语言        章/节:   软件基础知识       

 
(12)属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码
 
 
  A.  编译程序
 
  B.  预处理程序
 
  C.  汇编程序
 
  D.  解释程序
 
 
 

 
  第45题    2012年上半年  
   47%
以下属于客户端脚本语言的是(45)。
  第14题    2013年下半年  
   47%
一个计算机算法是对特定问题求解步骤的一种描述。(14)并不是一个算法必须具备的特性;若一个算法能够识别输入的非法数据并进行适..
  第2题    2010年下半年  
   56%
某班级学生《C++程序设计》成绩表如下图所示。若学生作业成绩、上机成绩和笔试成绩分别占综合成绩的15%、25%和60%,那么可先在E3..
   知识点讲解    
   · 程序设计语言基础    · 高级语言    · 中间代码
 
       程序设计语言基础
               程序设计语言的基本概念
               机器语言和汇编语言为低级语言。机器语言是特定的计算机系统所固有的、面向机器的语言,由0、1字符串组成机器指令序列,用机器语言编写的程序可读性很差。
               由于计算机只能理解和执行机器语言,所以高级程序设计语言需要进行翻译,负责这一任务的程序称为"语言处理程序"。它们大致可以分为汇编程序、解释程序和编译程序。
               程序设计语言的种类
               根据程序设计的方法,将程序设计语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言。
               FORTRAN、PASCAL和C语言都体现了命令式程序设计的思想。
               C++、Java和Smalltalk是面向对象程序设计语言的代表。
               LISP是函数式语言的代表。
               Prolog是逻辑型程序设计语言的代表。
               程序设计语言的基本成分
               数据、运算、控制和传输等是程序设计语言的基本成分。
               (1)数据成分:指一种程序设计语言的数据类型。数据是程序操作的对象,具有存储类、类型、名称、作用域和生存期等属性。
               (2)运算成分:指明允许使用的运算符号及运算规则。
               (3)控制成分:指明语言允许表述的控制结构。计算问题的程序都可以用顺序、选择和重复这3种控制结构来描述。
               (4)传输成分:指明语言允许的数据传输方式,如数据的输入和输出。
               函数
               函数是程序模块的主要成分,是一段具有独立功能的程序。函数的使用涉及3个概念,即函数定义、函数声明和函数调用。
               函数应先声明后调用,如果程序中对一个函数的调用在该函数的定义之前进行,则应该在调用前对被调用函数进行声明。函数声明定义了函数原型,其目的在于告诉编译器传递给函数的参数个数、类型以及函数返回值的类型。
               函数调用时实参和形参间交换信息的方法有传值调用和引用调用两种。若实现函数调用时实参向形参传递相应类型的值,则称为传值调用,在这种形式下,形式参数不能向实际参数返回信息。当形式参数为引用类型时,函数中对形参的访问和修改实际上就是对相应的实际参数所作的访问和改变。
               汇编程序
               汇编语言是为特定的计算机或计算机系统设计的面向机器的符号化程序设计语言。汇编语言源程序中可以有3类语句,即指令语句、伪指令语句和宏指令语句。
               由于计算机不能直接识别和运行符号语言程序,所以要用专门的翻译程序——汇编程序进行翻译。汇编程序的功能是将用汇编语言编写的源程序翻译成机器指令程序。
               汇编程序的基本工作包括:将每一条可执行汇编语句转换成对应的机器指令;处理源程序中出现的伪指令和宏指令。汇编程序一般至少需要两次扫描源程序才能完成翻译过程。第一次扫描的主要工作是定义符号的值并创建一个符号表(ST),ST记录了汇编时所遇到的符号的值。此外,在第一次扫描中,还需要对与定义符号值有关的伪指令进行处理。第二次扫描的任务是产生目标程序,可执行汇编语句被翻译成对应的二进制代码机器指令。
               编译程序基本原理
               编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译程序的工作可以分为6个阶段。
               (1)词法分析阶段。这个阶段的任务是对源程序从前到后逐个字符进行扫描,从中识别出一个个单词符号。
               (2)语法分析阶段。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。通过语法分析,确定整个输入串是否构成一个语法上正确的程序。
               (3)语义分析阶段。语义分析的一个主要工作是进行类型分析和检查。
               (4)中间代码生成阶段。根据语义分析的输出生成中间代码。中间代码的设计原则是:容易生成,容易被翻译成目标代码。中间代码生成所依据的原则是语言的语义规则。
               (5)代码优化阶段。优化所依据的原则是程序的等价变化规则。
               (6)目标代码生成阶段。这是编译工作的最后一个阶段,任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。
               在编译中,如果发现源程序有错,编译程序要将错误信息报告给用户。程序错误大致可以分为静态错误和动态错误两种。静态错误是指编译时所发现的程序错误,又分为词法错误和静态语义错误,如单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误;而运算符与运算对象类型不匹配等错误属于静态语义错误。动态错误指程序中包含的逻辑错误,它们发生在程序运行时,如变量取零做除数、引用数组下标越界等错误。
               解释程序基本原理
               解释程序在运行用户程序时,直接执行源程序或源程序的内部形式,不产生源程序的目标代码。解释程序也可以先将源程序翻译成某种中间代码形式,然后对中间代码进行解释,实现用户程序的运行。
               解释方式跟编译方式相比,一般效率低、灵活性好、易于移植。在解释方式下运行程序,可能需要反复扫描源程序,而源程序只需要被编译程序翻译一次,就可以多次运行。由于解释程序需要反复检查源程序,这也使解释方式更灵活。
 
       高级语言
        不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言,每一种高级(程序设计)语言,都有自己人为规定的专用符号、英文单词、语法规则和语句结构(书写格式)。高级语言与自然语言(英语)更接近,而与硬件功能相分离(彻底脱离了具体的指令系统),便于广大用户掌握和使用。高级语言的通用性强,兼容性好,便于移植。
        高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言。它又可分为面向过程的语言和面向问题的语言,前者在编程时不仅要告诉计算机“做什么”,而且要告诉计算机“怎么做”,如Basic,Pascal, Fortran, C等高级语言。后者只要告诉计算机做什么,如Lisp,Prolog等高级语言,也常称为人工智能语言。
 
       中间代码
        从原理上讲,对源程序进行语义分析之后就可以直接生成目标代码,但由于源程序与目标代码的逻辑结构往往差别很大,特别是考虑到具体机器指令系统的特点,要使翻译一次到位很困难,而且用语法制导方式机械生成的目标代码往往是烦琐和低效的,因此有必要设计一种中间代码,将源程序首先翻译成中间代码表示形式,以利于进行与机器无关的优化处理。由于中间代码实际上也起着编译器前端和后端的分水岭作用,所以使用中间代码也有助于提高编译程序的可移植性。常用的中间代码有后缀式、四元式和树等形式。
        (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)
   题号导航      2009年上半年 网络管理员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第12题    在手机中做本题