美文网首页
现代编译器基本工作流程

现代编译器基本工作流程

作者: b485c88ab697 | 来源:发表于2016-06-07 17:08 被阅读489次

什么是编译器

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

编译器种类介绍

gcc编译器 clang编译器 微软的编译器

什么是低级语言

低级语言是指机器语言和汇编语言。

什么是机器语言

电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

什么是汇编语言

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。

汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

gcc编译器工作流程

编译基本流程.jpg

预处理展示(待整理)

使用otool查看执行文件及反汇编执行文件

  • otool -h 执行文件 获取头信息
  • otool -L 执行文件 查看动态连接库列表
  • otool -l 执行文件 查看载入命令列表
  • otool -tv 执行文件 反汇编文件

详细解释链接(待整理)

  • 静态库打包

编译流程是否可以逆向?(待整理)

链接常见问题(待整理)

通过class-dump导出方法信息(待整理)

满地打滚卖萌求赞,如果本文帮助到你,轻点下方的红心,给作者君增加更新的动力。

相关文章

  • 现代编译器基本工作流程

    什么是编译器 简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个...

  • C编译器的主要工作流程

    一个现代编译器的主要工作流程: 源代码 (source code) → 预处理器 (preprocessor) →...

  • 编译和解释的区别

    过程和结果 编译器是将 source code 转化成为一种新的目标代码. 一个现代编译器的主要工作流程如下:源代...

  • 越狱相关的计算机基础知识

    编程语言分类 现代编译器工作流程 Mach-O文件格式 应用程序数字签名技术 文件系统介绍 用户权限介绍

  • 静态库与共享库

    0.前言 在学习如何制作静态库和共享库之前,我们来了解GCC编译器的基本工作流程和GCC常用参数的使用。 1.GC...

  • Docker工作基本流程

    安装 首先在Docker的官方网站下下载相应的版本,由于默认宿主机均为Mac,所以直接下载Mac版本,其中Dock...

  • LLVM和GCC的区别

    GCC: GNU Compiler CollectionGCC属于传统编译器,传统编译器的工作原理基本上都是三段...

  • ijkplayer 基本工作流程

    一个非常好的开源播放器,最近利用下班时间对其基本工作流程进行了梳理,主要是梳理c层的逻辑,按照线程梳理分别有下面几...

  • git基本工作流程

    下载和安装git:https://git-scm.com/

  • spring mvc 工作基本流程

    spring mvc 起步 (1) Http请求:客户端请求提交到DispatcherServlet。(2) 寻找...

网友评论

      本文标题:现代编译器基本工作流程

      本文链接:https://www.haomeiwen.com/subject/cknddttx.html