当前位置:首页 > 程序设计 >
《自己动手构造编译系统:编译、汇编与链接》电子书封面

自己动手构造编译系统:编译、汇编与链接

  • 发布时间:2020年05月29日 10:14:47
  • 作者:范志东
  • 大小:59.9 MB
  • 类别:编译系统电子书
  • 格式:PDF
  • 版本:高清版
  • 评分:7.3

    自己动手构造编译系统:编译、汇编与链接 PDF 高清版

      给大家带来的一篇关于编译系统相关的电子书资源,介绍了关于编译系统、编译、汇编方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小59.9 MB,范志东编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.8。

      内容介绍

      《自己动手构造编译系统:编译、汇编与链接》以作者实现的一个基于Intelx86指令集的编译系统为例,结合程序代码的主要部分详细阐述了编译系统的实现原理和过程。本书对编译器、汇编器、链接器、编译优化器涉及的关键算法、数据结构和程序实现流程,以及ELF文件的格式、Intel指令格式均作了详细的说明,并结合大量的图表,展示了编译系统工作过程中代码信息的流动和存储格式的变化。是一本“手把手”教读者实现编译系统的贴心手册。

      目录

      • 前言
      • 第1章代码背后1
      • 从编程聊起 1
      • 历史渊源 2
      • GCC的工作流程 3
      • 1.3.1预编译 4
      • 1.3.2编译 5
      • 1.3.3汇编 6
      • 1.3.4链接 7
      • 设计自己的编译系统 8
      • 本章小结 9
      • 第2章编译系统设计 11
      • 2.1编译程序的设计 11
      • 2.1.1词法分析 12
      • 2.1.2语法分析 13
      • 2.1.3符号表管理 14
      • 2.1.4语义分析 15
      • 2.1.5代码生成 16
      • 2.1.6编译优化 16
      • 2.2 x86指令格式 18
      • 2.3 ELF文件格式 19
      • 2.4汇编程序的设计 21
      • 2.4.1汇编词法、语法分析 22
      • 2.4.2表信息生成 23
      • 2.4.3指令生成 24
      • 2.5链接程序的设计 25
      • 2.5.1地址空间分配 25
      • 2.5.2符号解析 26
      • 2.5.3重定位 27
      • 2.6本章小结 27
      • 第3章编译器构造 29
      • 3.1词法分析 29
      • 3.1.1扫描器 30
      • 3.1.2词法记号 32
      • 3.1.3有限自动机 36
      • 3.1.4解析器 40
      • 3.1.5错误处理 53
      • 3.2语法分析 55
      • 3.2.1文法定义 55
      • 3.2.2递归下降子程序 65
      • 3.2.3错误处理 70
      • 3.3符号表管理 74
      • 3.3.1符号表数据结构 75
      • 3.3.2作用域管理 78
      • 3.3.3变量管理 82
      • 3.3.4函数管理 88
      • 第4章编译优化147
      • 第5章二进制表示191
      • 第6章汇编器构造219
      • 第7章连接器构造263
      • 参考文献

      学习笔记

      编写程序时如何不乱码?一文通读Python中文编译的环境

      既然身在中国,我们的页面交流自然而言的就需要用到 中文编码 ,然而,Python的发源地是在美国,由此而产生的,也就是print()后面输入 中文字符串 后,页面会进行 一系列的报错与乱码 ,为此,本篇介绍 Python中文编码 的文章,就是为了解决这个问题而产生的。 我们都知道Python的编辑器与找寻Python解释器的代码—— #!/usr/bin/env python or #!/usr/bin/python 与此项类似的,我们致使中文字符出现在页面上 不乱码的代码 ,也有—— #-*-coding:UTF-8-*- 这条代码,在中国,可以说是与 #!/usr/bin/env python 相等重量的代码了。 在中国,页面与人之间的交流是通过计算机语言与汉语进行的, #!/usr/bin/env python 为了……

      Sonar编译问题对应:File [...] can't be indexed twice.

      现象说明 maven的java项目,测试用例和main所在的源码文件均符合缺省写法和格式,但是在使用mvn clean sonar:sonar进行编译时提示can't be indexed twice错误。 相关版本 使用如下相关版本信息: 错误信息提示 ERROR: Caused by: File [...] can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files 相关信息说明 maven的pom中对于源码和测试代码的指定可以通过如下设定进行: sourceDirectory源码目录/sourceDirectory testSourceDirectory测试代码目录testSourceDirectory sonar中对于源码目录和测试代码目录的设定可以通过如下方式进行: sonar.sources=源码目录 sonar.tests=测试代码目录 对策 可以通过设定sonar的exclusi……

      RHEL6.5编译安装MySQL5.6.26教程

      一、准备编译环境,安装所需依赖包 yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y 二、编译安装 1、使用cmake编译,cmake编译方式不同于make,对比如下: make: ./configure ./configure --help cmake: cmake . cmake . -LH or ccmake . 2、编译选项 指定安装路径常用的选项 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc 存储引擎配置: -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 若要明确指定不编译某个引擎,可以使用类似如下命令: -DWITHOUT_ENGINE_STORAGE_ENGINE=1 若要编译其他功……

      基于编译虚拟机jvm—openjdk的编译详解

      java只所以被推广,实际上很大原因是因为本身是跨平台的,很大作用是因为虚拟机的关系。 一般情况下开发人员不需要关注虚拟机内部实现就可以日常开发了,但是有时候涉及到性能的时候就需要了解虚拟机的实现机制了。 那么今天写的内容更多的是关于编译一套自己的虚拟机,为日后了解虚拟机底层原理铺铺路。 编译虚拟机可能会遇到很多坑,也很花费时间。也因大家的环境的差异,可能遇到的问题都不一致。 我只能说把自己遇到的问题都列出来,权当抛砖引玉了。 1首先我们应该下载openjdk的源码,这个openjdk实际上是有一个版本历史的,大家可以去了解一下, 然后这里面的源码内容和oracle jdk内……

      Python是如何编译运行

      这儿的表述实行是相对性于编译实行来讲的。大家都了解,应用C/C++这类的编译性語言撰写的程序,是必须从源代码转化成电子计算机应用的机器语言,历经连接器连接以后产生了二进制的可执行文件。运行该程序的情况下,就可以把二进制程序从电脑硬盘加载到运行内存中并运行。 可是针对Python来讲,python源代码不用编译成二进制代码,它能够立即从源码运行程序。在我们运行python文档程序的情况下,python解释器将源码变换为字节码,随后再由python解释器来实行这种字节码。那样,python就不必担心程序的编译,库的连接载入等难题了。 针对python表述語言,有下列3层面的特点: 每一次运行必须开展转……

      以上就是本次介绍的编译系统电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:区块链:重塑经济与世界

      下一篇:游戏数据分析的艺术

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者留言
      江聪健

      江聪健 提供上传

      资源
      36
      粉丝
      21
      喜欢
      191
      评论
      8

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com