编译原理1

1        引论

1.1        什么叫编译程序

编译程序是指能够把某一种语言程序(称为源语言程序)转换成另一种语言程序(称为目标语言程序),而后者与前者在逻辑上是等价的。

 

1.2        编译过程概述

1.2.1   词法分析。对构成源程序的字符串进行扫描和分解,识别单词。

例: for I := 1 to 100 do,分析结果如下:

基本字                 for

标识符                 I

赋值号                 :=

整常数                 1

基本字                 to

整常数                 100

基本字                 do

描述词法规则的有效工具是正规式和有限自动机。

1.2.2   语法分析。在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位。

1.2.3   语义分析与中间代码产生。对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。

1.2.4   优化。优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能生产出更高效的目标代码。

1.2.5   目标代码生成。把中间代码(或经优化处理之后)变换成特定及其上的低级语言代码。

 

1.3        编译程序的结构

1.3.1   编译程序总框


 


1.3.2   表格与表格管理

编译程序在工作过程中需要保持一系列表格,以等级源程序的各类信息和编译各阶段的进展状况。最重要的是符号表。用来登记源程序中出现的每个名字以及名字的各种属性。

1.3.3   出错处理

编译程序应能最大限度的发现源程序中的各种错误,准确的指出错误的性质和发生错误的地点,并且能将错误所造成的的影响限制在尽可能小的范围内,是的源程序的其余部分能继续被编译下去,以便进一步发现其他可能的错误。

1.3.4   遍

受不听源语言、设计要求、使用对象和计算机条件的限制,往往将编译程序组织为若干遍。所谓“遍”就是对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理。

1.3.5   编译前端与后端

前端主要由与源语言有关但与目标机无关的那些部分组成。通常包括词法分析、语法分析与中间代码产生,有的代码优化工作也可包括在前端。后端程序包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值