C++ 简史

Bjarne Stroustrup 在剑桥读博的时候,需要实现一个「分布式的操作系统」。他回忆起自己在丹麦读大学的时候就用过 Simula,认为 Simula 的一些特性比如「类型表达」、「编译排错」能力以及「类」和「协程」都很有吸引力,于是选择 Simula 语言作为工具来实现这个系统。

结果他实现的系统慢得不能接受,为了能按时毕业,他只好用 BCPL 重写了那个程序。他也在那时暗下决心,之后要是没有顺手的工具,他再也不会去处理类似这种的问题。当然他也对顺手的工具做出了定义,它应该:

  • 具有 Simula 这种对程序组织的支持——某种形式的类分层结构,对并发的某种支持以及基于类的静态检查。
  • 运行得像 BCPL 一样快
  • 支持高度可移植实现

毕业之后,他来到了贝尔实验室。工作过程中有一个需求是要去分析 Unix 内核,然后把它部署在一个局域网上。这时候他面临了两个问题,一是如何分析因为内核分布造成的网络流量,其次是怎么将内核模块化。

那时的他也更明确了自己所描述的语言会以什么样的形式诞生,他形容这种语言是『带有 「Simula 类」的「Algol 68」』。但他坦言,如果要构造以及实际工具,C 还是稍微比 Algol 68 要合适一些,因为在当时,C 语言可以用到当时几乎所有领域,同时程序员可以用 C 语言有效地利用硬件资源,并且在当时已有可用的 C 编译系统和标准库,以及一些相关的工具,所以在灵活性,高效性,可用性和可移植性方面,C 语言都当仁不让。这也是为什么 C 成为了 C++ 的母语言。在实现新语言的过程中,BS 最初的需求是:可以像使用 Simula 一样使用 C,让程序员去描述类型。于是他采用了 Simula 中的术语 Class 来让 C++ 支持定义类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值