- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * 一个赋闲的程序员+一段意外的假期+一台被淘汰的设备,Unix就这样诞生了。 那个赋闲的程序员,叫做Ken Thompson。照片上看上去很成熟,其实年龄不大,发明Unix的时候只有26岁。 1969年,他参与的研究项目Multics被贝尔实验室取消了,他顿时就无事可干了。 正好那年夏天,他的老婆带着孩子回娘家了,只留下他一个人在新泽西。反正空闲时间多得很,他就用了一个月的时间,在家里写了一个小型版的Multics。 但是,贝尔实验室没有机器可以让他测试,因为那时计算机太贵了,不可能用于一个年轻程序员的业余项目。Ken Thompson没有办法,只好在一台型号为PDP-7的小型机上测试自己的软件。这台小型机因为性能太差,所以没人去用,就被闲置在一边了。 虽然PDP-7叫小型机,其实也是庞然大物,需要一间房间才能放得下。 PDP-7在1965年上市的时候,价格是72000美元,已经属于超级便宜的计算机了。第一版的Unix就是在这种机器上诞生的,下面就是一张Ken Thompson和他的同事当时的工作照。 * 第一章:编译简介 编译器的后三个阶段称为对源程序进行综合,它们从源程序的中间表示建立起和源程序等价的目标程序。 第一章:编译简介 第一章:编译简介 符号表管理 编译器的一项重要工作是记录源程序中使用的标识符,并收集每个标识符的各种属性。 这些属性提供标识符的存储分配、类型和作用域信息。如果是过程标识符,还有参数的个数和类型,参数传递方式和返回值类型 符号表是为每个标识符保存一个记录的数据结构,记录的域是标识符的属性。该数据结构允许我们迅速地找到一个标识符的记录,在此记录中存储和读取数据。 第一章:编译简介 符号表管理 语句 ,放入符号表中 词法分析器发现源程序的标识符时,把该标识符填入符号表。但是,词法分析期间不能确定一个标识符的属性。 如: 其余的阶段把标识符的信息填入符号表,然后以不同的方式使用这些信息 第一章:编译简介 第一章:编译简介 错误诊断和报告 每个阶段都有可能发现源程序的错误。在发现错误后,该阶段必须处理此错误,使得编译可以继续进行,以便进一步发现源程序的其他错误 词法分析阶段能发现的错误类型是:当前被扫描的字符串不能形成语言的词法记号。 语法分析阶段诊断:记号流违反语言的语法规则。 语义分析时,编译器试图找出语法正确但对所含的操作来说是无意义的结构,如相加的两个标识符,其一是数组名,另一个是过程名。 第一章:编译简介 阶段的分组 前端 第一章:编译简介 阶段的分组 后端 第一章:编译简介 阶段的分组 前端只依赖于源语言 后端是编译器中依赖于目标机器的部分,它们一般独立于源语言,而与中间语言有关 取一个编译器前端,重写它的后端以产生同一源语言在另一机器上的编译器 把几种不同的语言编译成同一种中间语言,让不同的前端使用同一后端,从而得到一台机器上的几个编译器 编译的几个阶段常用一趟/遍(pass)扫描来实现,一趟/遍扫描包括读一个输入文件和写一个输出文件。 第一章:编译简介 编译系统 除了编译器外,还需要一些其他工具的帮助,才能得到可执行的目标程序,这些工具包括预处理器、汇编器和连接器等 C语言的编译系统 Java语言的编译系统 第一章:编译简介 C语言的编译系统 设有两个文件: main.c swap.c gcc –v –o swap main.c swap.c -v 可以输出该编译系统各步骤执行的命令 和执行结果 -o 指示生成的可执行文件的名字 第一章:编译简介 C语言的编译系统 预处理器 实现文件包含 #include stdio.h 实现宏展开 #define pi 3.1415926 条件编译 #if 、#ifdef 第一章:编译简介 C语言的编译系统 汇编器 对输入进行两遍扫描: 第一遍,汇编器扫描输入,将表示存储单元的所有标识符都存入符号表,并分配地址。 第二遍,汇编器再次扫描输入,把每个操作码翻译成机器语言中代表那个操作的位串,并把代表存储单元的每个标识符翻译成符号表中为这个标识符分配的地址 gcc –S main.c as –o main.o main.s 第一章:编译简介 C语言的编译系统 连接器 是一个收集、组织程序所需的不同代码和数据的过程 静态连接器 将多个可重定位目标文件组成一个可执行目标文件(也可以组成一个可重定位目标文件) 动态连接器 支持在内存中的可执行程序在执行时与共享目标文件进行动态的连接。 第一章:编译简介 Java语言的编译系统 一般的高级语言程序如果要在不同的平台上运行,至
您可能关注的文档
- C++程序设计教程:CH13 抽象类.ppt
- C++程序设计教程:CH15 异常.ppt
- C++程序设计教程:第十一章 基于对象编程.ppt
- C++程序设计教程:第十章 继承.ppt
- C++程序设计教程:第一部分 C++过程化语言基础.ppt
- C++程序设计教程:第一部分 C++过程化语言基础1.ppt
- C语言程序设计:第9章 用户自己建立数据类型.ppt
- C语言程序设计:第10章 对文件的输入输出.ppt
- C语言程序设计:选择题.ppt
- JAVA程序设计:第3章 Java语言基础.ppt
- 操作系统课件:Windows线程.ppt
- 大学数学微积分课件:第01讲大学数学基础.ppt
- 大学数学微积分课件:第02讲 映射与函数.ppt
- 大学数学微积分课件:第03讲 第二节、数列的极限 第三节、函数的极限.ppt
- 大学数学微积分课件:第04讲 第四节、无穷小与无穷大 第五节、极限运算法则.ppt
- 大学数学微积分课件:第05讲 第六节、极限存在准则 第七节、无穷小的比较.ppt
- 大学数学微积分课件:第06讲 第八节、函数的连续性与间断点第九节、连续函数的运算与初等函数的连续性第十节、闭区间上连续函数的性质.ppt
- 大学数学微积分课件:第07讲习题课1.ppt
- 大学数学微积分课件:第08讲 第一节、导数概念第二节、函数的求导法则(1).ppt
- 大学数学微积分课件:第09讲 第二节、函数的求导法则(2)(3)第三节、高阶导数.ppt
最近下载
- 【解读】GB17761-2018电动自行车安全技术规范.pdf VIP
- AD832I机台操作指引.pdf VIP
- 《植物的茎》(教案)-中职农林牧渔大类《植物生长和环境》同步教学(高教版)(第四版)(全一册).docx VIP
- 证券从业资格证金融市场基础知识模拟卷及答案解析.docx VIP
- 证券从业资格证考试金融市场基础知识冲刺试题.docx VIP
- 证券从业资格证《金融市场基础知识》考前练习及答案解析.docx VIP
- 证券从业《金融市场基础知识》基础练及答案解析.docx VIP
- 证券从业资格考试金融市场基础知识预测试题及答案解析.docx VIP
- 2021年证券从业考试《金融市场基础知识》习题及答案.docx VIP
- 高中英语学业质量标准研究.pptx VIP
文档评论(0)