《编译与反编译技术实战》——第2章编译器实践概述

简介:

本节书摘来自华章社区《编译与反编译技术实战》一书中的第2章编译器实践概述,作者刘晓楠 陶红伟 岳 峰 戴超,更多章节内容可以访问云栖社区“华章社区”公众号查看

第2章
编译器实践概述
人与计算机之间的交流也是通过语言进行的,但人类能理解的语言与机器可以理解的语言是不同的,中间需要翻译,因此,相应的编译器诞生了。编译技术所讨论的问题就是如何把符合人类思维方式的意愿(即源程序)翻译成计算机能够理解和执行的形式(即目标程序),而实现从源程序到目标程序转换的程序被称为编译程序或编译器。最早的编译器是20世纪50年代后期的Fortran编译器,该编译器也为后续高级语言和编译器的涌现奠定了基础。与编译技术相反,反编译技术所讨论的问题就是如何把计算机能够理解和执行的形式(目标程序)翻译成符合人类便于理解的形式(源程序或流程图),实现从目标程序到便于人类理解的系列文档的转换程序被称为反编译程序或反编译器。反编译技术起源于20世纪60年代,虽然在时间上只比编译技术晚10年左右,但反编译技术的成熟度却远不如编译技术。半个世纪以来,也涌现了不少实验性的反编译器,如Dcc、Boomerang和IDA的反编译插件Hex_rays等。但这些反编译器都有这样或那样的缺陷,还不能像编译器那样强健。
本章仅对编译器实践方面的知识进行简要阐述,反编译实践方面的概要介绍将在后续章节给出。

相关文章
|
自然语言处理
《编译与反编译技术实战 》一3.4 本章小结
词法分析是编译过程的第一个阶段,负责对源程序进行扫描,按照源程序的构词规则识别出一个个单词符号。编译过程中执行词法分析的程序称为词法分析器。本章介绍了构造词法分析器的两种方法:一种是基于状态转换图的词法分析器的手工实现,另一种是利用词法分析程序的自动生成工具LEX的词法分析器的自动实现。
1766 0
|
程序员
《编译与反编译技术实战 》一 第2章 编译器实践概述
人与计算机之间的交流也是通过语言进行的,但人类能理解的语言与机器可以理解的语言是不同的,中间需要翻译,因此,相应的编译器诞生了。编译技术所讨论的问题就是如何把符合人类思维方式的意愿(即源程序)翻译成计算机能够理解和执行的形式(即目标程序),而实现从源程序到目标程序转换的程序被称为编译程序或编译器。
1427 0
|
自然语言处理 C语言
《编译与反编译技术实战 》一2.3 编译器的设计与实现概述
根据不同的用途和侧重点,编译程序可以进一步分类,换句话说,有许多不同种类的编译器变体。譬如:用于帮助程序开发和调试的编译程序称为诊断编译程序,这类编译器可对程序进行详细检查并报告错误;另一类侧重于提高目标代码效率的编译程序称为优化编译程序,这类编译器通常使用多种混合的“变换”来改善程序的性能,但这往往是以编译器的复杂性和编译时间的增加为代价的。
1451 0