History of C++之二

本文来自: https://www.softwarepreservation.org/projects/c_plus_plus

C++ 历史源档案

作者:Paul McJones — 上次修改时间: 2021-07-12 14:34
 

Paul McJones,编辑
paul@mcjones.org
http://www.mcjones.org/dustydecks/

 

抽象的

这是有关 C++ 编程语言的诞生、开发、标准化和使用的设计文档、源代码和其他材料的集合。

内容

 

年表

资料来源:“C++ 时间线”,D&E,第 4 页;HOPL-III 纸
1979年4月
C with Classes 的工作开始了
1979年10月
第一个运行类 (Cpre) 的 C
1983年8月
贝尔实验室使用的第一个 C++
1984
C++ 命名
1985年2月
Cfront Release E(第一个外部 C++ 版本)
来见作者
1985年10月
Cfront Release 1.0(第一个商业版本)

C++ 编程语言

1986
第一个商用 Cfront PC 端口(Cfront 1.1,Glockenspiel)
1987年2月
Cfront 1.2 版
1987年12月
第一个 GNU C++ 版本 (1.13)
1988
Oregon Software C++ 首次发布[公告];首个 Zortech C++ 版本
1989年6月
Cfront 2.0 版
1989
带注释的 C++ 参考手册ANSI C++ 委员会 (J16) 成立(华盛顿特区)
1990
第一次 ANSI X3J16 技术会议(新泽西州萨默塞特)[见合影,由 Andrew Koenig 提供];接受模板(西雅图,华盛顿州);接受例外(加利福尼亚州帕洛阿尔托);第一个 Borland C++ 版本
萨默塞特会议集体合影
1991
第一次 ISO WG21 会议(瑞典隆德);Cfront Release 3.0(包括模板)C++ 编程语言(第 2 版)
1992
第一个 IBM、DEC 和 Microsoft C++ 版本
1993
接受运行时类型识别(俄勒冈州波特兰);接受名称空间和字符串(按字符类型模板化)(德国慕尼黑);C++ 的历史:1979-1991年发表在 HOPL2
1994
字符串(按字符类型模板化)(加利福尼亚州圣地亚哥);接受 STL(加利福尼亚州圣地亚哥和加拿大滑铁卢)
1996
接受出口(瑞典斯德哥尔摩)
1997
对完整标准的最终委员会投票(新泽西州莫里斯敦)
1998
ISO C++ 标准批准
2003
技术勘误;C++0x 的工作开始了
2004
性能技术报告;库技术报告(哈希表、正则表达式、智能指针等)
2005
C++0x 特性的首次投票(Lillehammer,挪威);原则上接受autostatic_assert和 rvalue 引用
2006
第一个完整的委员会(官方)对 C++0x 的特性进行投票(柏林,德国)

 

Cfront 发布 

注意

本节中的源代码经版权所有者许可发布,仅供历史研究之用。

 

发布 E

版本 E 是 1985 年 2 月 Cfront 的“教育”版本。除了部分makefile,Stroustrup相信Release E的每一个字、每一行代码都是他写的。源代码的第一页有一个手写的目录结构图和一条消息给 Stroustrup 签名的“SCD”(史蒂夫杜赫斯特)。

源代码

  • 比亚内·斯特劳斯特鲁普。掌握。E 版,AT&T Technologies, Inc.,1985 年 2 月 。PDF (302.5 kB)包括自述文件、主 makefile、CC。
  • 比亚内·斯特劳斯特鲁普。前锋。版本 E,AT&T Technologies, Inc.,1985 年 2 月。 PDF (10.1 MB)包括 makefile、alloc.c、cfront.h、dcl.c、dcl2.c、del.c、error.c、expand.c、expr。 c、expr2.c、gram.y、lex.c、main.c、misc.c、norm.c、norm2.c、print.c、repr.c、simpl.c、size.c、size.h、 table.c,token.h,typ.c,typ2.c,typedef.h,size_align。
  • 比亚内·斯特劳斯特鲁普。图书馆。版本 E,AT&T Technologies, Inc.,1985 年 2 月。 PDF (1.7 MB)包括复杂的、新的、流和任务库。
  • 比亚内·斯特劳斯特鲁普。扫描。版本 E,AT&T Technologies, Inc.,1985 年 2 月。PDF (365.2 kB)包括 makefile、ldfacn.h、sscan.c、CCcrt0.s 和 CCmcrt0.s。
  • 马克霍普金斯。从上面的 PDF 文件手动转录。名为“Cover”的文件包括霍普金斯的笔记。2016 年 8 月 17 日。.zip

文档

  • C++。版本 E,AT&T 贝尔实验室,1984 年 11 月。带有 Acco 紧固件的活页文档。
    • 目录。2 页。 PDF (40.6 KB)
    • 鸟斯特鲁普。C++ 教程。1984 年 9 月 10 日,20 页。 PDF (1.3 MB)
    • 比亚内·斯特劳斯特鲁普。C++ 中的数据抽象。未注明日期,23 页。[HOPL2 论文引用了一篇类似名称的论文:“C. Bell Labs Technical Journal 中的数据抽象,第 63 卷,第 8 期,1984 年 10 月,第 1701--1732 页。(写于 1983 年夏天)”。 ] PDF (1.6 MB)
    • 比亚内·斯特劳斯特鲁普。C++ 中的运算符重载。未注明日期,15 页。[HOPL2 论文引用了一篇同名的论文:“系统实现语言的 IFIP WG2.4 会议论文集:经验与评估,1984 年 9 月”。] PDF (923.1 kB)
    • Leonie V. Rose 和 Bjarne Stroustrup。C ++中的复杂算术。未注明日期,13 页。[HOPL2 论文引用此名称的论文为:“AT&T 贝尔实验室内部技术备忘录,1984 年 1 月;在 AT&T C++ 翻译器发行说明中重印,1985 年 11 月”。] PDF (530.5 kB)
    • 比亚内·斯特劳斯特鲁普。一组用于协程样式编程的 C++ 类。未注明日期,19 页。[HOPL2 论文引用了一篇同名的论文:“A Set of C Classes for Co-routine Style Programming, Bell Laboratories Computer Science Technical Report CSTR-90, Nov. 1980”。] PDF (1.3 MB)
    • 比亚内·斯特劳斯特鲁普。C++ 编程语言 - 参考手册。未注明日期,ii+50+vi 页。[显然最初发布时没有目录或索引。它前面有一个封面和两页,附录 B 和 C——主要文件不包括附录。] PDF (4.1 MB)
    • 匿名的。C++(版本 E)安装指南。1984 年 11 月,第 1 页。 PDF (73.2 KB)
    • 匿名的。CC - C++ 编译器。手册页,第 1 节,1984 年 11 月 5 日,2 页。 PDF (119.4 KB)
  • 比亚内·斯特劳斯特鲁普。C++ 编程语言 - 参考手册。计算科学技术报告第 108 号,AT&T 贝尔实验室,1984 年 11 月 1 日,iii+50+6 页。 PDF 位于 www.eah-jena.de/~kleine,来自 archive.org
  • 比亚内·斯特劳斯特鲁普。C++ 中的数据抽象。计算科学技术报告第 109 号,AT&T 贝尔实验室,1984 年 1 月 1 日,19 页。 PDF 位于 www.eah-jena.de/~kleine,来自 archive.org

    附录:Leonie V. Rose 和 Bjarne Stroustrup。C. Bell 实验室的复杂算术。未注明日期(约 1984 年),15 页。

  • 比亚内·斯特劳斯特鲁普。C++ 教程。计算科学技术报告第 113 号,AT&T 贝尔实验室,1984 年 9 月 10 日,20 页。PDF 位于 www.eah-jena.de/~kleine,来自 archive.org

文件

  • B. 斯特劳斯特鲁普。C++ 的可扩展 I/O 工具。1985 年夏季 USENIX 会议论文集,1985年 6 月,第 57-70 页。

    本文介绍了由 Stroustrup 设计的原始 C++ 流库。Jerry Swartz 将其扩展到 iostreams 库。

发布 1.0

1985 年 10 月,Cfront 1.0 是第一个商业版本。

源代码

  • 1.0 版,AT&T Technologies, Inc. “cfront 10/10/85”。副本由 ACE Associated Computer Experts(阿姆斯特丹)的 Willem Wakker 提供。 .tar.gz (433 kB) 解压
    • 自述文件开始:
    ident "@(#)cfront:README 1.4"
    这是 AT&T C++ 翻译器,第 1 版
  • 版本 1.2,AT&T Technologies, Inc.“cfront 1.2.1 2/16/87”。Poul-Henning Kamp 提供的压缩 tar 文件。.tgz
    此版本由 Kamp 进行了更改,以适应 Pyramid 计算机的代码。请参阅incl.patchsrc.patch,并注意每个修补文件都有一个“ .orig ”版本。
  • 版本 1.2.2,AT&T Technologies, Inc.“cfront 1.2.2 6/10/87”。作为 cmd/cfront 包含在包含 Research Unix Edition 9 源代码的压缩 tar 文件中。请参阅tuhs.org上Alcatel-Lucent USA Inc.压缩 tar 的声明

文档

  • 发行说明。UNIX System V AT&T 翻译器,1985 年,36 页。Lifeboat 为 MSDOS ADVANTAGE C++ 删节。Scan 由 Jonathan Caves 提供,他指出:“……这是 Glockenspiel C++ 重新标记的‘美国’版本。” PDF (2.5MB)

发布 2.0

AT&T 于 1989 年 6 月发布了 Cfront 2.0。

源代码

  • AT&T C++ 翻译器 2.00 06/30/89。作为 cmd/cfront/cfront2.00 包含在包含 Research Unix Edition 10 源代码的压缩 tar 文件中。请参阅tuhs.org上Alcatel-Lucent USA Inc.压缩 tar 的声明
  • AT&T C++ 翻译器 2.1.0+ 04/01/90。作为 cmd/cfront/ocfront 包含在包含 Research Unix Edition 10 源代码的压缩 tar 文件中。请参阅tuhs.org上Alcatel-Lucent USA Inc.压缩 tar 的声明
  • AT&T C++ 翻译器 2.1++ 08/24/90。作为 cmd/cfront/cfront 包含在包含 Research Unix Edition 10 源代码的压缩 tar 文件中。请参阅tuhs.org上Alcatel-Lucent USA Inc.压缩 tar 的声明

文档

  • 发行说明。选择 Code 307-90, C++ Language System, Release 2.0, Unix System V, AT&T, 1989, 114 页。带有 Acco 紧固件的活页文档。PDF (5.2 MB)
  • 比亚内·斯特劳斯特鲁普。产品参考手册。选择 Code 307-146, C++ Language System, Release 2.0, Unix System V, AT&T, 1989, 158 pages。带有 Acco 紧固件的活页文档。PDF (8.0 MB)
  • 图书馆手册。选择 Code 307-145, C++ Language System, Release 2.0, Unix System V, AT&T, 1989, 226 pages。带有 Acco 紧固件的活页文档。PDF (10.4 MB)
    • 1. C++ 中的复杂算术。基于 Leonnie V. Rose 和 Bjarne Stroustrup 的论文。
    • 2. 任务库。基于这些论文:
      • Bjarne Stroustrup 和 Jonathan Shopiro。A Set of C++ Classes for Co-routine Style Programming,USENIX C++ Workshop 论文集,1987 年 11 月。
      • 乔纳森·肖皮罗。为实时控制扩展 C++ 类系统。
      • 斯泰西·基南。C++ 协程库的移植指南。
    • 3. Iostream 示例。基于 Jerry Schwarz 的论文。
    • 附录 A. 手册页。
  • 选读。选择 Code 307-144, C++ Language System, Release 2.0, Unix System V, AT&T, 1989, 224 pages。带有 Acco 紧固件的活页文档。PDF (9.5 MB)
    • 1. C++ 的演变:1985 年到 1989 年。基于 Bjarne Stroustrup 的论文。
    • 2. C++ 简介。基于 Keith Gorlen 的论文。
    • 3. C++概述。基于 Bjarne Stroustrup 的论文,发表于 ACM SIGPLAN Notices,1986 年 10 月,第 7-18 页。
    • 4. 面向对象编程。基于 Bjarne Stroustrup 的论文:什么是面向对象编程?,发表于 1988 年 5 月的 IEEE 软件杂志,第 10-20 页。
    • 5.多重继承。基于 Bjarne Stroustrup 的论文:C++ 的多重继承,发表于 EUUUG 春季会议论文集,1987 年 5 月。
    • 6. C++ 的类型安全链接。基于 Bjarne Stroustrup 的论文,发表于 Computing Systems, Volume VI, Number 4, Fall 1988, pages 371-404。
    • 7. C++ 的访问规则。基于 Phil Brown 的论文。
    • 附录 A. C++ 手册页:CC、c++filt 和 demangle。

发布 3.0

朗讯于 1991 年发布了 Cfront 3.0。

Bjarne Stroustrup 指出,“警告说 Cfront 3 是预标准的,强烈不建议使用或进一步开发可能已经到位。”

源代码

标准化文件

GNU g++ 版本

 

有关 C++ 的论文和文章

  • 托尼·格里格斯。新的 C++ 语言扩展了 C 编程能力。贝尔实验室新闻,第 24 卷,第 51 期,1984 年 12 月 17 日,第 1-2 页。PDF格式
  • 比亚内·斯特劳斯特鲁普。C++ 的历史:1979-1991。
    • 第二届 ACM SIGPLAN 编程语言历史会议的论文集中(剑桥,马萨诸塞州,美国,1993 年 4 月 20 日至 23 日)。ACM 数字图书馆
    • 在 research.att.com 上的 PDF
    • 也出现在:TJ Bergin 和 RG Gibson,Eds。程序设计语言史---IIACM 出版社,1996 年。
  • 比亚内·斯特劳斯特鲁普。在现实世界中发展一种语言:C++ 1991-2006。
    • 第三届 ACM SIGPLAN 编程语言历史会议的论文集中(加利福尼亚州圣地亚哥,2007 年 6 月 9 日至 10 日)。HOPL III。ACM 出版社,纽约,纽约,4-1-4-59。ACM 数字图书馆
    • 预印本,2007 年 5 月 25 日。research.att.com上的 PDF

 

致谢

1.Bjarne Stroustrup; Chuck Allison(时间线校正);
2.Jonathan Caves(Cfront 1.0 发行说明);
3.Noel Hunt(用于 blit 的 Pi 调试器);
4.Poul-Henning Kamp (Cfront 1.2); 
5.Warren Toomey 和 The Unix Heritage Society(Cfront 1.2.2 和 2.x 源代码来自 Research Unix Editions 9 和 10);
6.Willem Wakker 和 ACE 联合计算机专家,阿姆斯特丹(Cfront 1.0 来源)。
 
 
 

注:本文由于是翻译,仅供学习等试用,如有涉及侵权等行为,请告知本人,我给予删除。

posted @ 2022-06-17 06:43  jinzi  阅读(41)  评论(0编辑  收藏  举报