zoukankan      html  css  js  c++  java
  • 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++ 支持定义类型。

  • 相关阅读:
    Swap Nodes in Pairs
    Remove Nth Node From End of List
    Rotate list
    历届试题_DNA比对
    斐波那契字符串_KMP
    字符串的模式匹配
    理解图像Garbor和HOG特征的提取方法及实例应用
    人眼定位和基于人眼的人脸姿态矫正_转载
    借助百度云API进行人脸识别
    { "result": null, "log_id": 304592860300941982, "error_msg": "image check fail", "cached": 0, "error_code": 222203, "timestamp": 1556030094 }
  • 原文地址:https://www.cnblogs.com/little-bai/p/6021753.html
Copyright © 2011-2022 走看看