编译原理课堂笔记(1)编译概述

简介: 一、翻译程序与编译程序 1、所谓翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成与之等价的另一种语言(称为目标语言)的程序(目标程序)。 如果源语言是高级语言,目标语言是诸如汇编语言或机器语言之类的低级语言,那么称这样的翻译程序为编译程序。 2、解释程序是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。它与编译程序的主要区别是编译过程中不会产生

一、翻译程序与编译程序

1、所谓翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成与之等价的另一种语言(称为目标语言)的程序(目标程序)。

如果源语言是高级语言,目标语言是诸如汇编语言或机器语言之类的低级语言,那么称这样的翻译程序为编译程序

2、解释程序是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。它与编译程序的主要区别是编译过程中不会产生目标程序,而是按照源语言的定义解释执行源程序本身。

3、采用编译方式在计算机上执行用高级语言编写的程序,需要分阶段进行,一般分为2个阶段:编译阶段和运行阶段。

4、如果编译阶段生成的目标程序不是机器语言程序而是汇编语言程序则程序的执行需要分为3个阶段:编译阶段、汇编阶段和运行阶段。

二、编译过程和编译程序的基本结构

编译程序的功能是把高级语言编写的源程序翻译成等价的机器语言或汇编语言表示的目标程序。

1、编译过程

(1)词法分析

对源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个个具有独立意义的单词

(2)语法分析

在词法分析的基础上,根据语言的语法规则识别出各种语法单位(如表达式、说明、语句等)并检查各种语法单位在语法结构上的正确性。

(3)语义分析及中间代码生成

对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式(比源语言更接近目标语言的一种中间代码或直接用目标语言)来描述这种语义

(4)代码优化

对当前阶段产生的中间代码进行等价变换或改造,以获得更高效的目标代码

(5)目标代码生成

将中间代码生成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

三、编译程序的生成方法

1、对源语言和目标语言的认真分析

2、设计编译算法

3、选择语言编制程序

4、调试编译程序

5、提交相关文档资料



目录
相关文章
|
1月前
|
自然语言处理 算法 前端开发
编译原理 -概述
编译原理 -概述
18 0
|
1月前
编程笔记 01工具及参考资料
编程笔记 01工具及参考资料
|
6月前
|
自然语言处理 编译器 Linux
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
422 0
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
|
7月前
|
自然语言处理 Java 编译器
【编译原理】第一章,什么是编译原理?
【编译原理】第一章,什么是编译原理?
|
自然语言处理 前端开发 编译器
前端学编译原理(一):编译引论(下)
前端学编译原理(一):编译引论(下)
234 0
|
自然语言处理 前端开发 算法
前端学编译原理(一):编译引论(上)
前端学编译原理(一):编译引论(上)
258 0
|
开发框架 Java .NET
《Python编程:从入门到实践》学习记录(5-8)基础语法部分
《Python编程:从入门到实践》学习记录(5-8)基础语法部分
《Python编程:从入门到实践》学习记录(5-8)基础语法部分
|
索引 Python 容器
《Python编程:从入门到实践》学习记录(1-4)基础语法部分
《Python编程:从入门到实践》学习记录(1-4)基础语法部分
《Python编程:从入门到实践》学习记录(1-4)基础语法部分
|
JSON Java 测试技术
《Python编程:从入门到实践》学习记录(9-11)基础语法部分
《Python编程:从入门到实践》学习记录(9-11)基础语法部分
《Python编程:从入门到实践》学习记录(9-11)基础语法部分
|
C语言 C++
《C语言深度剖析》第三章 预处理详解 p2(完结) C语言从入门到入土(进阶篇)(一)
本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!
《C语言深度剖析》第三章 预处理详解 p2(完结) C语言从入门到入土(进阶篇)(一)