C语言的发展史(The Development of the C Language).docx
《C语言的发展史(The Development of the C Language).docx》由会员分享,可在线阅读,更多相关《C语言的发展史(The Development of the C Language).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言的发展史(The Development of the C Language) 本文讲述C程序设计语言的开展、它所受到的影响和它诞生的条件。简洁起见 我省略了对C自身、它的父亲BJohnson 73以及祖父BCPLRichards 79的完好描绘 而是关注于每一种语言的特性要素和它们是怎样演化的。 在1969-1973年度间 C的出现 伴随着Unix操作系统的早期开展 而最富创造性的时期是1972年度。另外一个(发生)一连串改变的顶峰期是1977到1979年度间 此时Unix系统的可移植性得以证实。第二个阶段期间 出现了第一份被广为传播的该语言的描绘 The C Programming
2、Language 通常被称为白皮书或者K RKernighan 78。最后 在1980年度代中期 该语言被ANSI X3J11委员会正式标准化 并作出了进一步的修改。截止1980年度代早期 尽管已有各种机器构造及操作系统的【C的各种】编译器 该语言几乎与Unix十分亲密关联 更近一些 它的使用传播得更广 而今天它是整个计算机产业中最广泛使用的语言之一。 历史背景 1960s晚期 是Bell Telephone Laboratories(贝尔 实验室)的计算机系统研究(中心)的动乱岁月Ritchie 78 Ritchie 84。计算机被从Multics工程组拖走Organick 78 该工程是M
3、IT(麻省理工学院)、General Electric(通用电气公司)以及贝尔实验室的合作工程。到1969年度 贝尔实验室管理层、甚至研究人员都认为 Multics工程不能按期完成并且代价高昂。甚至在GE-645 Multics机器被撤走之前 一个非正式小组早期由Ken Thompson指导 已经着手一些其它的研究。 Thompson祈望按照自己的设计、使用可用的任何方式 创造一个舒适的计算环境。事后诸葛亮地讲 他的方案集成了Multics的许多创新方面 包括关于进程的明晰概念控制块,树型构造的文件系统、作为用户级程序的命令解释器、文本文件的简单表示以及访问设备的通用化。他们排除了其余特性 比
4、方对内存以及文件的统一访问。此外 开场的时候 他与我们这些俗人遵循推延 着Multics的另一个先驱性(固然不是原创)的特性 即几乎仅用高级语言来编程。PL/I【Programming Language One IBM公司在1950s创造的高级编程语言】Multics的实现语言 不太符合我们的口味 因此我们也使用其他语言 包括BCPL 我们担忧【regretted 】失去使用在汇编程序的级别以上的语言进展编程的优势 即容易编写、易于理解。当时我们并未十分关注可移植性 到后来才有了这方面的兴趣。 Thompson面临的硬件环境 即使在那个时代也是又拥挤又简陋 他从1968年度就开场使用的DEC
5、PDP-7 只有8K的18bit字(长)的内存 并且没有对他有用的软件。固然心想着使用高级语言 他还是用PDP-7汇编器编写了最初的Unix系统。刚开场的时候 他甚至并未在PDP-7上编程 而是在一台GE-635机器上使用GEMAP汇编器的一些宏。一个后处理器(postprocessor)生成PDP-7可读的纸带。 这些纸带从GE机器拿到PDP-7上进展测试 直到一个原始的Unix内核(kernel)、一个编辑器、汇编器、一个简单的外壳(shell) 命令解释器 以及一些工具 像Unix rm, cat, cp命令 被完成。此后 这个操作系统可以自己支持 可以编写以及测试程序 勿需借助纸带 并
6、且程序开发可以在PDP-7上持续进展。 Thompson的PDP-7汇编器在简明性上甚至优于DEC的 它对表达式求值并得到对应的比特流【二进制源代码】。没有库、没有装载器或者没有链接器 程序的全部源文件提交给汇编器 而其输出文件(the output file)有一个固定名字是可以直接执行的 这个名字 a.out 道出了一点Unix渊源 它是汇编器的输出。甚至在系统有了链接器以及有了显式指定另一个名字的方式之后 它仍被保存作为编译器的默认可执行文件(名) 。 Unix在PDP-7上首次运行后不久 1969年度Doug McIlroy创造了这一新系统的第一个高级语言 一个McClure的TMG实
7、现McClure 65。TMG是一种自顶而下 递归降解(top-down, recursive-descent)风格的编写编译器 更一般地 TransMoGrifiers 的语言 它将上下文无关的语法表示法与经过(式程序)元素相结合。McIlroy以及Bob Morris使用TMG为Multics编写了早期的PL/I编译器。 受McIlroy重造TMG事迹的刺激 Thmopson认为Unix(当时可能还没有取这个名字)需要一种系统编程语言。经过用Fortran的短暂而受阻的尝试后 他创造了一门他自己的语言 他称之为B。B可被视为没有类型的C。更准确地 它是塞进8K字节内存 经过Thompson
8、大脑过滤后的BCPL。它的名字最有可能表示为BCPL的缩写 尽管另一种理论认为它源自于BonThompson 69 Thompson在Multics的那些日子创造的一门不相关的语言。Bon进而二中其一 可能是以他妻子Bonnie的名字 或 根据它的操作手册中的一个百科全书般的引用 以一种宗教命名 该教仪式涉及咕隆咕隆的神奇咒语。【不知道是不是西藏的原始宗教 苯教 Bon 】【太难搞了】 起源 这些语言 BCPL是由Martin Richards于1960年度代中期 在访问麻省理工学院时设计的 在1970年度代早期它被用在几个有趣的工程中 其中包括位于牛津的OS6操作系统Stoy 72 以及施乐
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言的发展史The Development of the Language 语言 发展史 Language
限制150内