
编译器
lengye7
这个作者很懒,什么都没留下…
展开
-
编译原理三大经典书籍(龙书 虎书 鲸书)
1、龙书(Dragon book)英文名:Compilers: Principles,Techniques,and Tools作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman中文名:编译原理技术和工具第一版龙书第二版龙书龙书”。龙书是Alfred V. Aho等人于1986年出版的,由于出版年代较早,其中包含部分过...转载 2019-04-12 00:41:04 · 3341 阅读 · 0 评论 -
有符号数和无符号数
写在正文的前面:终于在四十多岁的时候,干自己喜欢干的事情了。博客中所有文章都是原创,转载注明!!!专题:汇编语言中有符号数还是无符号数?一、汇编语言在存储方面讲,有符号数和无符号数存储形式是一致的。l 数据在内存或CPU的寄存器中都是按照有符号数的二进制补码方式存储的。 例如(在debug中测试): mov ax,-9 怎么理解这个代码...转载 2018-10-01 22:31:55 · 2471 阅读 · 0 评论 -
转载:Freestanding C与交叉编译器的生成原理分析
0 问题由来以前也用过C51写过简单的裸机程序,但是并没有认真的考虑过其与Linux环境下一般C语言程序的不同,只是想当然地认为C是跨平台的语言,并没有考虑过C语言的标准问题。今天在编译GCC交叉编译器时,遇到了种种问题,不得不重新考虑C语言的实现标准,否则很难清晰的了解交叉编译器的编译过程。1 C编译器的两种实现要求C语言标准的正式文档中明确提出了C编译器的两种实现标准:1....转载 2018-09-15 15:45:47 · 466 阅读 · 0 评论 -
转载:GCC源码分析(五)——指令生成
一、前言 又有好久没写了,的确很忙。前篇介绍了GCC的pass格局,它是GCC中间语言部分的核心架构,也是贯穿整个编译流程的核心。在完成优化处理之后,GCC必须做的最后一步就是生成最后的编译结果,通常情况下就是汇编文件(文本或者二进制并不重要)。 前面也讲到了,GCC中间语言的核心数据结构是GENERIC、GIMPLE和RTL。其中的RTL就是和指令紧密相关的一种结构,它是指令生成的起...转载 2018-09-15 12:33:14 · 907 阅读 · 0 评论 -
转载:GCC源码分析(四)——优化
一、前言本篇只介绍一下框架,就不具体介绍每个步骤了。 二、Pass框架上一篇已经讲了gcc的中间语言的表现形式。gcc 对中间语言的每一步处理叫做一个pass。从一个函数的GENERIC树刚被转换为GIMPLE之后,接下来的工作就由一连串的pass来完成。这些pass环环相扣,最终完成整个程序的优化工作,为目标代码生成做最后的准备。GCC的pass结构定义在gcc/tree-p...转载 2018-09-15 12:32:11 · 649 阅读 · 0 评论 -
转载:GCC源码分析(三)——中间语言
一、前言 很忙,很久没更新博客了,继续没写完的gcc分析,争取在传说将要用C++重写的gcc 5出来之前初略分析完。二、符号表(GENERIC) 前篇介绍了gcc的语法分析,在语法分析过程中,所有识别出来的语言部件都用一个叫TREE的变量保存着。这个TREE就是gcc语法树,叫做GENERIC。实际上它也是gcc的符号表,因为变量名、类型等等这些信息都由TREE关联起来。 G...转载 2018-09-15 12:31:34 · 1164 阅读 · 0 评论 -
转载:GCC源码分析(二)——前端
从这一篇开始,我们将从源代码的角度来分析GCC如何完成对C语言源文件的处理。GCC的内部构架在GCC Internals(搜“gccint.pdf”,或者见[1])里已经讲述得很详细了,但是如果你只看了gccint就来看代码,还是觉得一头雾水,无法下手,因为你很难把gccint所讲的概念同gcc代码里真实的数据结构联系起来。那么这也是我把我这半年的分析经理写下来的原因,大家可以参照gccint来...转载 2018-09-15 12:30:55 · 473 阅读 · 0 评论