编译原理笔记—编译概述

编译程序是计算机系统中的重要的系统软件,是高级语言的支撑基础。本篇主要为编译原理的初步了解。

◆编译程序

    计算机只懂自己独特的指令系统,也就是说它只能直接执行机器语言编写程序设计。但,人们多数用高级程序设计语言来编写程序,所以,需要一个翻译程序将其翻译为机器语言程序才能执行。

    (1)翻译程序:

             把一种语言(源语言)写的程序翻译成与之等价的另一种语言(目标语言)这样的程序就是翻译程序

            源程序->翻译程序->目标程序

    (2)编译程序:

            源语言是高级语言(例Pascal,c,Ada,Java语言),目标语言是汇编语言或机器语言之类的低级语言,这样的翻译程序为编译程序

            源程序(高级语言所写)->编译程序->目标程序(汇编语言或机器语言等)

    编译方式在计算机上执行用高级语言编写的程序分编译阶段和运行阶段两个阶段进行

    编译阶段生成的目标程序不是机器语言程序,而是汇编语言程序则分编译阶段,汇编阶段和运行阶段三个阶段进行

(注意:翻译程序比编译程序概念大)

◆编译过程

    编译过程是一种语言的翻译过程,翻译大致过程为:

    1.词法分析—单词

        对程序的字符串从左到右扫描识别和分,根据词法规则(词法规则是单词符号形成的规则)识别出一个一个独立意义的单词符号。

    2.语法分析—单词串

        在词法分析的基础上,根据语言语法从单词符号串中识别出语法单位(例,表达式)进行语法检查

    3.语义分析—句子含义

        对于语言的各种语法单位赋予具体的意义。语义分析的任务是首要对每种语法单位进行静态的语义检查,然后分析其含义,并用另一种语言形式来描述这种语义

    4.根据相关关系及语法结构进行一系列必要修饰作用

        也可以称为代码优化环节,对当前阶段产生的中间代码进行等价改造,使其更省时间和空间,更为优化。优化主要包括局部优化和循环优化。

    5.翻译成另一种语言

        即目标代码生成。

◆编译程序的结构

综上,编译程序结构为:

        源程序—>词法分析程序—>语法分析程序—>语义分析及中间代码生成程序—>代码优化程序—>目标代码生成程序程序—>目标程序

你可能感兴趣的:(编译原理笔记—编译概述)