当前位置:   article > 正文

一文快速了解编译原理【编译原理基本概念】

编译原理

一文带你快速了解编译原理

一个写的很不错的编译原理系列博客

编译原理概述

编译器与解释器

编译器将程序员编写的源文件编译称可执行的目标程序(如.exe, .class)。像C++、Java这种高级语言(又称编译型语言)都有自己的编译器。

除了编译器之外还有一种叫做解释器,对应的就是解释性语言,最著名的例如Python,JavaScript。

各自特点

  • 编译器:工作效率高,时间快、空间省;交互性与动态性差,可移植性差。
  • 解释器:工作效率低,时间慢、空间费;交互性与动态性好,可移植性好。

几种程序的区别

三种级别的语言

编译程序:将源程序的语句一次全部翻译成机器语言程序(先翻译成汇编),而后再执行机器语言程序(只需翻译一次)
解释程序:将源程序的语句
翻译一句执行一句(每次执行都要翻译)
不会生成目标程序 。
汇编程序:把汇编语言源程序翻译为机器语言程序,只能翻译汇编程序。
翻译程序:把高级语言源程序翻译成机器语言程序(目标代码)的软件,编译、汇编、解释程序,可统称"翻译程序"。

任何高级语言最终都会归结到某一具体机器上的具体机器码序列,编译器便是中间的译者

⭐️编译器阶段划分

编译器的阶段划分: 词法分析、语法分析、语义分析、中间代码生成、代码优化和代码生成
实际上编译的各个阶段都可以看成完成一定的翻译工作:词法分析是将代码文件的字符流翻译成单词流( 空格和注释将在这一阶段被滤过),语法阶段是将单词流按照语言语法规则翻译成语法树,语义分析则是在语法树的基础上按照语义规则完成语义操作( 类型检查、一致性检查、类型转换以及标识符符号表管理等工作)。

img

符号表管理器和出错处理贯穿编译器工作的各个阶段。

1. 词法分析

将源代码的字符流翻译成单词流,空格和注释将在这一阶段被略过。

2. ⭐
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/464304

推荐阅读
相关标签