软考程序类专题五_编译原理

2007-9-6 16:11:45   Count:

① 词法分析、语法分析的基本理论和方法。
② 有限自动机的基本工作原理,NFA向DFA的转换。

软考程序类专题五:编译原理(20070831)在线专题授课音视频

(本课程正式学员可登录学习系统,进入对应课程,在窗口左边的“课程资料室”内进行在线浏览。)
主要知识点:
1.程序设计语言的一些基本概念
2.解释程序和编译程序的区别
3.编译程序的工作过程
4.NFA向DFA的转换算法
5.文法的基本要素

1.编译程序和解释程序的区别

  解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再执行;而编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。

2.程序设计语言的基本成分

  包括数据、运算、控制和传输等。

  数据成分指的是一种程序语言的数据类型。数据是程序操作的对象,具有存储类别、类型、名称、作用域和生存期等属性,使用时要为它分配内存空间。

   (1)常量和变量
  按照程序运行时数据的值能否改变,将数据分为常量和变量。左值指存储单元,右值是值。变量具有左值和值。常量只有右值,
  (2)全局量和局部量
  全局变量分配的存储空间在程序运行的过程中一般是不改变的,局部变量分配的存储单元是动态改变的。
  (3)数据类型
  按照数据组织形式的不同可将数据分为基本类型、用户定义类型、构造类型及其他类型。

  运算成分指明允许使用的运算符及运算规则。可以分成算术运算、关系运算和逻辑运算。

  控制成分指明语言允许表述的控制结构,程序员可以用顺序、选择和重复这3种控制结构来描述。

3.编译程序的工作过程

  分为6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。

  (1)词法分析阶段
  这个阶段的任务是对源程序从前到后逐个字符进行扫描,从中识别出一个个“单词”符号。

  (2)语法分析阶段
  语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。语法错误。

  (3)语义分析阶段
  语义分析阶段主要检查源程序是否存在语义错误,只有语法和语义都正确的源程序才能翻译成正确的目标代码。

  (4)中间代码生成阶段
  根据语义分析的输出生成中间代码。“中间代码”是一种记号系统。

  (5)代码优化阶段
  中间代码往往在时间上和空间上有很大的浪费。需要生成高效的目标代码时,就需要进行优化。优化所依据的原则是程序的等价变换规则。

  (6)目标代码生成阶段
  任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,这个阶段的工作与具体的机器密切相关。


浏览该文章的用户为您推荐了该信息: 
       
   
   
 
站内检索:
本月授课安排
栏目导航
阅读排行