编程语言历史 C/C++

admin 3月前 68

在计算机硬件基础中我们大概介绍了一下计算机的发展历史。了解到在曾经有一段时期里计算机是不存在操作系统这一概念的,所有需要计算机完成的操作都需要当时的程序员来与计算机底层硬件进行直接对话,对话的方式就是通过二进制,故最早的编程语言即二进制语言,也被称为机器语言

  早期的操作人员是通过带有孔的纸带将程序输入电脑进行编译(对纸条打点),这使得开发人员的开发效率及其低下。而后为了解决这种问题则出现了汇编语言,汇编语言相较于机器语言来说稍微简洁了一些,实际上说白了汇编语言就是将机器语言的二进制指令用英文标识符做了一次封装,但它也是同底层硬件直接打交道的一种语言

  到了20世纪60年代,贝尔实验室的研究员Ken Thompson(肯·汤姆森)发明了B语言,而后又使用B语言编了个游戏 - Space Travel。他找了一台空闲的机器 PDP-7 想来玩这个游戏,但是这台机器并没有操作系统。所以顺带着 Thompson 又为 PDP-7 开发了一套操作系统,而后来这个OS(OS便是操作系统的意思)被命名为 UNIX

UNIX图示

img

 

  1971年的时候 Ken Thompson 的同事 D.M.Ritchie(DM里奇)也想玩 Space Travel,所以和 Ken Thompson合作开发UNIX,并且在 1972年的时候改进了B语言且将新语言改名为C语言(取BCPL中的第二个字母,C)

  到了1973年的时候C语言主体完成。Ken Thompson 和 D.M.Ritchie 已然忘记了 Space Travel 这款游戏。并且全身心投入到了UNIX和C语言的开发,至此,UNIX和C语言相辅相成的一直发展道了今天

 

  • 类C语言起源与历史

 

  CPL(Combined Programming Language) - 1963  CPL是1963年剑桥大学发明的

  BCPL(Base Combined Programming Language) - 1967  剑桥的Matin Richards 对CPL做了简化,推出了BCPL

  B(B Programming Language) - 1969  贝尔实验室的Ken Thompson(肯·汤普森) 对BCPL又做了改进,设计出了简单的且接近硬件的B语言,并用B语言写了第一个UNIX OS

  C(C Programming Language) - 1972  贝尔实验室的另外一个人Dennis MacAlistair Ritchie(D.M.Ritchie - DM里奇)在B语言的基础上设计出了C语言。C语言保持了B语言的优点(精炼、接近硬件),又克服了他的缺点(过于简单,数据无类型)

  C++(C plus plus Programming Language) - 1983  还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,它扩充和完善了C语言,特别是在面向对象编程方面。一定程度上克服了C语言编写大型程序时的不足。

  Java(Java Programming Language) - 1995  Sun公司的Patrick Naughton的工作小组研发了Java语言,主要成员是James Gosling(詹姆斯·高斯林)

  C#(C Sharp Programming Language) - 2000  Microsoft公司的Anders Hejlsberg(安德斯·海尔斯伯格)发明了C#,他也是Delphi语言之父。

  • 浏览器和JavaScript的历史

 

  1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,这是世界上第一款比较成熟的网络浏览器,一经面世便轰动世界

  但是这是一款名副其实的浏览器–只能浏览页面,浏览器无法与用户互动。比如你登录一个网站输入完用户名点击提交的时候。浏览器并不知道你是否输入了,也无法判断。只能传给服务器去判断

Version 1.0 界面

img

 

  1. 计算机的发展越来越好的同时,网上冲浪也越来越流行,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦体验的是,仅仅为了进行简单的表单有效性验证,就需要浏览器与服务器之间进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段

     

  2. 网景急于解决浏览器与用户交互这个问题。当时解决这个问题有两个办法,一个是采用现有的语言,比如Perl、Python、Tcl、Scheme等等,允许它们直接嵌入网页。另一个是发明一种全新的语言。这两个选择各有利弊。第一个选择,有利于充分利用现有代码和程序员资源,推广起来比较容易;第二个选择,有利于开发出完全适用的语言,实现起来比较容易。到底采用哪一个选择,网景公司内部争执不下,管理层一时难以下定决心。

     

  3. 就在这时发生了一件大事,1995年Sun公司将Oak语言改名为Java,正式向市场推出。Sun公司大肆宣传,许诺这种语言可以"一次编写,到处运行"(Write Once, Run Anywhere),它看上去很可能成为未来编程语言界的主宰

     

Java图标

img

 

  1. 网景公司动了心,决定与Sun公司结成联盟。它不仅允许Java程序以applet(小程序)的形式,直接在浏览器中运行;甚至还考虑直接将Java作为脚本语言嵌入网页,只是因为这样会使HTML网页过于复杂,后来才不得不放弃

     

  2. 总之,当时的形势就是,网景公司的整个管理层,都是Java语言的信徒,Sun公司完全介入网景公司对网页脚本语言上的决策。 因此,JavaScript后来就是网景和Sun两家公司一起携手推向市场的,这种语言被命名为"Java+Script"并不是偶然的

     

  3. 此时,34岁的系统程序员(布兰登·艾奇)Brendan Eich登场了。

     

布兰登·艾奇

img

 

  1. 1995年4月,网景公司录用了他。Brendan Eich的主要方向和兴趣是函数式编程,网景公司招聘他的目的,是研究将Scheme语言作为网页脚本语言的可能性。Brendan Eich本人也是这样想的,以为进入新公司后,会主要与Scheme语言打交道。

     

  2. 仅仅一个月之后,1995年5月,网景公司做出决策,未来的网页脚本语言必须"看上去与Java足够相似",但是比Java简单,使得非专业的网页作者也能很快上手。 这个决策实际上将Perl、Tcl、Scheme等非面向对象编程的语言都排除在外了。

     

  3. Brendan Eich被指定为这种"简化版Java语言"的设计师。但是,他对Java一点兴趣也没有。为了应付公司安排的任务,他只用10天时间就把JavaScript设计出来了。由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,使用JavaScript写出来的程序混乱不堪。如果Brendan Eich预见到,未来这种语言会成为互联网第一大语言,全世界有几百万学习者,他会不会多花一点时间放在JavaScript的研发上呢?

     

    总的来说,他的设计思路是这样的:

     

  1. 借鉴C语言的基本语法;

  2. 借鉴Java语言的数据类型和内存管理;

  3. 借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;

  4. 借鉴Self语言,使用基于原型(prototype)的继承机制。

 

  所以,Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程思想忠实拥护者)与网景公司(面向对象编程思想忠实用户群体)共同决定的。



少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:CSS文本控制
下一篇:编程语言分类之低级语言
Whatever is worth doing is worth doing well. juvenile hacker league
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回