程序语言翻译基础

语言翻译程序是系统软件的一种,其主要作用是将高级语言或汇编语言编写的程序翻译成机器语言

语言处理程序主要分为: 汇编程序、编译程序、解释程序。

汇编程序

  • 汇编语言

汇编语言,面向机器的程序设计语言。

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码用地址符号或标号代替指令或操作数的地址在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。 -- 百度百科

汇编语言源程序由若干语句组成,主要包括:指令语句、伪指令语句、宏指令语句。

  • 编程程序

汇编程序的功能是将汇编语言所编写的源程序翻译成机器指令程序。

将每一条可执行汇编语句转换成对应的机器指令

编译程序

编译程序的作用是把某种高级语言编写的源程序翻译成与之等价的目标程序(汇编语言或机器语言形式)

编译程序(编译器)工作的6个阶段

  • 词法分析

即对源程序从前到后(从左到右)的逐个字符扫描,从中识别出一个个“单词”符号

“单词”符号是程序语言的基本语法单位,如关键字、标识符、常数、运算符和分隔符等。

“单词” 分单词类别和单词自身的值。例如对常整数60,常整数是类别,60是值。

  • 语法分析

在词法分析的基础上,根据语法规则将单词符号分解成各类语法单位,与表达式、语句、程序等。

通过语法分析能够确定一个输入串能否构成一个语法上正确的程序

Tip

词法分析和语法分析都是对源程序的结构进行分析。

  • 语义分析

分析语法结构的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。

语义分析的主要任务是进行类型分析和检查

  • 中间代码生成

根据语义分析的输出生成中间代码,中间代码是一种简单的记号系统,有多种形式。

  • 代码优化

由于中间代码不依赖于具体机器,所以优化一般是建立在对程序的控制流和数据流分析基础之上,与具体的机器代码无关

  • 目标代码生成

把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。

目标代码生成与具体的机器相关。

词法分析之有限自动机DFA

p61页,上午题有可能考1-2分。

语法分析的两种形式:自顶向下和自底向上

P67页,上午题有可能考1-2分。

解释程序

解释程序是另一种语言处理程序,在词法、语法、词义分析方面与编译程序的工作原理基本相同。

主要区别是:解释程序是在运行用户程序时,直接执行源程序或源程序的中间表示。

解释程序不产生源程序和目标程序,这是他和编译程序的主要区别。