既然有 C 语言,那么 A 语言和 B 语言别离是什么?

4周前 (01-10 01:27)阅读1回复0
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值136195
  • 级别管理员
  • 主题27239
  • 回复0
楼主

我先科普一下我整理的一些汗青 (我无视了良多计算机牌子和语言,全都挤进去就目炫缭乱了):

1822 年,Charles Babbage 研发差分机(主动化算术)。英国政府赞助。

1832 年,差分机只能完成 1/7。

1837 年,Charles Babbage 研发出一个电脑, Mechanical computer (Analytical Engine), 不外仍是未完成。

1842 年,Ada Lovelace 数学家帮手 Charles Babbage, 她的条记被公认为是第一个计算机法式。

1911 年,Marchant calculator 被私家公司研发。

1935-1938 年,德国人 Konrad Zuse 本身研发出 mechanical calculator Z1。

1936 年,苏联开发出水流积算器(Water Integrator), 可运算 non-homogeneous differential equations。

1940 年,Konrad Zuse 展出 Z2 。

1941 年,Konrad Zuse 展出德国政府赞助的可编程的通用型计算机 Z3 。

1942 年,Konrad Zuse 起头研发 Z4。

1943 年,美军赞助宾夕法尼亚大学团队开发 ENIAC 计算机。Z1 被轰炸。

1945 年,Z4 附近地域被敌军轰炸而停滞。1949 年才继续研发出来。

1946 年,trackball 为了雷达系统开发出来。ENIAC 开发完成。

1948 年,苏联 20 人团队开发 MESM 可编程通用型电脑。1950 年开发完成。

1949 年,Moniac 液态 Analog computer 被纽西兰人 William Phillips 开发用来预测英国经济。英国原子能科学研究院 (AERE) 起头开发 Harwell computer。

1951 年,Harwell computer 开发完成。1957 年从哈韦尔搬场到角逐赢家胡弗汉顿大学。改名为 WITCH。1973 年捐去伯明翰博物馆。 2012 年在英国国度计算机博物馆(TNMOC) 重启。

1953 年,IBM 的 John Backus 为了 IBM 701 大型计算机开发了第一个高级法式语言 Speedcoding。之后John Backus 团队为了 IBM 704 起头开发 FORTRAN 语言。

1954 年,日本推出继电器计算机 FACOM 100。

1955 年,美国海军 Whirlwind Project 在 MIT 开发了可在屏幕画图的 Light Pen。MIT 研发 Tx-0 (Transistorized Experimental computer zero) 电脑。

1956 年,兰德公司和卡内基梅隆大学开发出 Information Processing Language (IPL), 第一个 AI 法式语言。

1957 年,哈佛 Kenneth E. Iverson 已动手开发 APL 语言(1962 年在 A Programming Language 一书公开)。

1958 年,MIT John McCarthy 研发出 Lisp 语言。John Backus 用 Backus–Naur form 帮忙苏黎世联邦理工学院开发出 ALGOL 语言 (即 ALGOL 58)。

1959 年,Lisp 推出 GC (Garbage Collection) 概念。CODASYL 联盟推出 COBOL (common business-oriented language) 语言。Digital Equipment Corporation(DEC)基于 Tx-0 研发 PDP-1。

1960 年,在巴黎推出 ALGOL 60。

1962 年,DEC 推出 PDP-4。MIT 设想,DEC 和 Spear推出的第一台迷你电脑 (12-bit) LINC (定名来源于 MIT Lincoln Laboratory)。

1963 年,DEC 推出 (12-bit) PDP-5 和 (36-bit) PDP-6。MIT Lincoln TX-2 电脑的一个叫 Sketchpad 法式有 light pen 画图功用。 ESR 教育公司推出 5 美金的玩具型电脑 Digi-Comp I。剑桥和伦敦大学联手基于 ALGOL 60 开发出 CPL (Combined Programming Language) 语言。

1964 年,DEC 推出 PDP-7。General Electric, Bell Labs, MIT 联手方案开发 Multics 系统。 IBM 开发了 PL/I 语言 (Programming Language One)。达特茅斯学院 Kemeny & Kurtz 开发了 BASIC 语言。

1965 年,DEC 推出热销的商用 12-bit 电脑 PDP-8。

1966 年,基于 ALGOL 60 的 ALGOL W 语言面世。

1967 年,剑桥传授 Martin Richards 基于 CPL 开发出 BCPL (Basic Combined Programming Language) 语言。

1968 年,德国 Telefunken 公司开发了 ball-based mouse。Mouse 呈现在斯坦福研究所开发的 NLS 可点击超链接功用的系统。几所大学合做的基于 PL/I 的 XPL 语言呈现,用来进修开发编译器。

1969 年,Multics 的几个研究员放弃 Multics 而专帮 Bell Labs 从头开发新的 OS 叫 UNIX。Ken Thompson 在 PDP-7 以汇编开发了 UNIX 系统(定名来源: Multics -> Unics -> Unix)。

1970 年,UNIX 1 从 PDP-7 移植到 PDP-11/20。Niklaus Wirth 基于 ALGOL W 开发出 Pascal 语言。IBM 的 Edgar F. Codd 提出关系模子 (Relational model)。

1971 年,出书 Unix 手册, 已有 mail, cp, su 号令, 在 Thompson shell 施行。

1972 年,UNIX 2 在十台电脑安拆。 有了 echo 号令和 c 编译器。 Thompson 参考 BCPL 研发出 B 语言, 不外用在 PDP-11 有问题。 Dennis Rithcie 按照 B+types 开发出新的 C 语言。 Thompson 利用时失败了 3 次,Dennis 归去加上了 Structures 后才胜利。 UNIX 3 推广 C 语言。 同年 UNIX 4 从汇编语言大量改成 C 语言。 Paul Allen 和 Bill Gates 成立 Traf-O-Data 公司。

1973 年,Mouse 不再停留在只点击链接, Xerox PARC 推出了以 Mouse+GUI 为次要界面的 Xerox Alto 电脑。Digital Research 的 Gary Kildall 帮 Intel 研发 PL/M (Programming Language for Microcomputers)语言。

1974 年, UNIX 5 大量发出教育 license。有了 dd, find 号令。32-bit OS/32 系统的 Interdata 7/32 推出。

1975 年,两个 Berkeley 研究生 Bill Joy 和 Chuck Haley 接触了 Ken Thompson 所带来的 UNIX 6 和 Pascal, 且改良了编纂器,称为 ex 。Unix Users Group 协会成立。Bill Gates 和 Paul Allen 看到 Altair 报导, 就联络 Altair。 在 PDP-10 30 天内完成 Altair BASIC 翻译器。Allen 下机前才完成 bootstrap 法式。同年 "Micro-Soft" 成立,其基于 CP/M 系统(OS 基于 PL/M 语言) 的 Altair 8800 电脑推出。

1976 年,Steve Jobs 推出 Steve Wozniak 一手设想的 Apple 1 电脑, 用 BASIC 编译。Bell labs 的 Stephen Bourne 起头开发 Bourne Shell (sh)。

1977 年,Bill Joy 编译了和 UNIX 类似的 BSD 系统。贸易化的 Unix 6 有了 ratfor 和 bc 语言。Unix Users Group 协会因 "UNIX" 商标问题改名为 USENIX。Commodore 国际推出 Commodore BASIC 系统的 Commodore PET 电脑。 DEC 推出流行的 32-bit 电脑 VAX-11/780。 UNIX 移植在 Interdata 7/32 和 Interdata 8/32。1977 至 1983 年, Jean Ichbiah 带队替美国国防部(DoD) 设想 Ada 语言, 以取代该部成百的语言。 Larry J. Ellison 拜读了 1970 IBM Codd 的论文后, 和 Ampex 前上司 Robert Nimrod "Bob" Miner 等人成立软体开发尝试室 (Software Development Laboratories, SDL)。

1978 年,苹果方案 Apple Lisa (有 GUI 的)电脑。 UNIX 7 把 Thompson shell 换成了 Bourne Shell, 有了 sed 和 awk 号令。 Bell Labs 卖 UNIX 7 license 给 Microsoft。Dennis Ritchie 和 Brian Kernighan (两人简称 K&R) 出书了出名的 "The C Programming Language" 第一版。Bill Joy 推出了基于 UNIX 6 的 1BSD。

1979 年,UNIX 移植在 DEC VAX, 成为 UNIX/32V。Bill Joy 蒲月推出 2BSD, 有了 vi 和 C shell。UNIX/32V 东西+2BSD 东西+虚拟内存(大改)内核的 3BSD 在年尾推出。 消费 CP/M 硬件的 Novell 公司成立。 Bjarne Stroustrup 开发 “C with Classes” 语言。Mike Lesk 在 1978 写的 UUCP (Unix-to-Unix Copy) 法式随 UNIX 7 发布。北卡罗来纳大学研究生 Steve Bellovin 出席杜克大学研究生 Jim Ellis 和 Tom Truscott 的开发类似 ARPANET 的邮件列表(mailing lists) 以供给没参与 DARPA (国防高级研究方案局) 项目标大学会议, 他先以 Bourne Shell 语言写了 Netnews 法式,能操纵 UUCP 法式通过调造解调器让两个电脑交换文件, 较后才以 C 语言重写。 Larry J. Ellison 改 SDL 公司名为 Relational Software, Inc. (RSI) , 推出在 PDP-11运行的 Oracle V2 (心理学, 没有人喜好当小白鼠掏钱买 V1), 乃是首个商用关系数据库办理系统 (relational-database management system, RDBMS), 首个客户是 CIA (IBM 还没筹办卖, 所以才找到那家做着类似工具的公司, 负责找的 Dave Roberts 刚好是 Miner 前上司, Oracle 是 CIA 项目标 codename)。

1980 年,Microsoft 推出 UNIX 7 license 的 Xenix 系统, 卖给 IBM/Intel/Tandy/Siemens (Siemens 改 Xenix 成 SINIX) 等 OEMs 公司。英国推出 Sinclair BASIC 系统的 Sinclair ZX80 电脑。Commodore VIC-20 推出。欧洲核子研究组织(CERN) 的 Tim Berners-Lee 写了超文本 ( hypertext) 法式 ENQUIRE。 UUCP 协议的 Usenet 新闻网公开。

1981 年,Bill Gates 在 COMDEX 博览会挖掘了IBM 电脑的 GUI 。Sinclair ZX 81 推出。IBM 姗姗来迟 (比 Oracle 迟了, 固然 1970 论文是 IBM 写的) 推出 SQL/DS (Structured Query Language/Data System), 它的首个 RDBMS。

1982 年,大杂烩(PWB/UNIX 2.0, CB UNIX 3.0, UNIX/TS 3.0.1, UNIX/32V 混在一路) UNIX System III 系统面世。Sinclair ZX Spectrum 推出。鉴于次要产物 Oracle 名气大, RSI 公司第二次改名成 Oracle Systems Corporation。 Sun Microsystems 公司成立, Bill Joy 很快就参加。 Sun 同年卖出 Sun-1 工做站, 乃是兴办人之一 Andy Bechtolsheim 在斯坦福大学 DARPA 赞助下设想的 CPU board, 系统是 UniSoft 移殖 Unix 7 的 UniPlus V7 到 Motorola 68000 微处置器的 SunOS。

1983 年,出名的商用 UNIX System V ( SysV) 系统面世。MIT 的 Richard Stallman 开展了 GNU Project,专门开发免费 license 的 UNIX-like(很像 UNIX 但又不是 UNIX,GNU 也是 GNUs Not Unix 的缩写) 东西。Apple Lisa 发布。4.2 BSD 推出。SunOS 曾一度交融 SysV 和 4.2 BSD。Anders Hejlsberg 在 Borland 幂下开发 Turbo Pascal 和 Delphi 两个IDE (之后在微软带队开发了 .Net, C#, TypeScript)。Novell 开发收集系统 NetWare。"C with Classes" 重定名为 C++。因为 CIA 和 Navy Intelligence (海军谍报)都要求移植在 VAX, Navy 还要撑持 Unix, 以 C 语言重写成 Oracle v3。

1984 年,Sinclair QDOS 系统的 Sinclair QL 推出。Linus Torvalds 也用过 QL, 还写了本身的汇编器和编纂器。他 11 岁就接触日本推出的 Commodore VIC-20 电脑了 。

1985 年,卡内基·梅隆大学的人,基于 4.2BSD 开发了 Mach 系统微内核。Steve Jobs 的 NeXTSTEP 就是基于 Mach 系统内核, 多年后成为了 Mac OS。 IBM 和 Microsoft 起头开发 OS/2。第一版 "The C++ Programming Language" 书发行。

1986 年,4.3BSD 推出, 其 TCP/IP stack 影响力甚大。

1987 年,一个大学传授开发了 MINIX OS 便利给学生进修。OS/2 开发出来了。AT&T (Bell labs 母公司)和 Sun 交融三巨头系统 BSD + SysV + Xenix, 称为 System V Release 4 (SVR4)。然后改名为 Solaris 2。

1988 年,K&R 改版 ANSI 尺度的 "The C Programming Language" 书出书。Steve Jobs 1985 年成立的 NeXT Inc. 推出 NeXT Computer 工做站电脑。

1989 年,为了移除 AT&T license,BSD 推出 BSD license 的 Networking Release 1 (Net/1) 系统。

1990 年,GNU 要开发自家的 GNU Hurd 系统内核(也是参考 Mach)取代 UNIX。

1991 年,几乎砍掉所有 AT&T 东西的 Net/2 发行。几个月后,芬兰大学生 Linus Torvalds 不爽 MINIX 教育-only license ,在 MINIX 平台写了 Linux 系统内核, 8月26日在新闻组(Usenet newsgroup )正式(7月3日是第一次提,不外目标是求人供给 POSIX 尺度文件)分享, Linux 系统大量安拆了 GNU 的东西,所以 Richard Stallman 对峙人们称号 Linux 系统为 GNU/Linux 比力公允。跟着 GNU GPL license 的 Linux 面世后, GNU Hurd 内核酿成开发停滞。Berners-Lee 1989 年起草,连系超文本 ( hypertext) + 传输控造协议(TCP) + 域名系統(DNS) 的概念构成 World Wide Web (WWW), 第一个万维网网站 http://info.cern.ch

由欧洲核子研究组织(CERN)的 NeXT 主机在8月6日上线。

1992 年,Berkeley Software Design (BSDi) 敢敢拿 Net/2 当成 BSD/386 来卖钱后,被 AT&T 控诉。

1993 年,Novell 从 AT&T 买下了 Unix System Laboratories 分部。继承者 FreeBSD, NetBSD 在讼事期间已相续拔剑而出。美国国度超等电脑应用中心(NCSA)为 NCSA HTTPd web 办事器开发 CGI 尺度。

1994 年,BSD 和 Novell 息争后已失去开源开发者的自信心, 与 Linux 合作已无可能。Solaris 2.4 发行。世界上更好的语言末于刷存在感了, Rasmus Lerdorf 以 C 语言开发 Personal Home Page Tools (PHP Tools) 的一套 CGI 二进造东西。

1995 年,Berkeley 大学最初一个版本 4.4BSD-Lite Release 2 发行。 Oracle Systems Corporation 改名改上瘾, 第三次改名成现今的 Oracle Corporation。Amazon.com 卖出第一本书 “Fluid Concepts and Creative Analogies”。

1996 年, OpenBSD 推出。 Sun 发布 Java 1.0。 Compaq 内部文件提出 “Cloud Computing”。 史丹佛大学生 Larry Page 参与 Stanford Digital Library Project (SDLP) 项目。 他觉得 WWW 就是庞大的链接图像, 所以筹算打造反向链接 (Backlink) PageRank 算法的搜刮引擎 BackRub 以代替当今流行的关键字搜刮次数算法, 随后 Sergey Brin 参加一路以 Java 和 Python 语言开发。 爬虫在3月从 Larry Page 的史丹佛主页起头爬。 他们也参考李彦宏的 “link analysis”, 即 IDD Information Services 的 Randex 的 anchor text 且在 2001 的 patent 文件

提及 (点击 1998 年的下载只能看见 2001)。

1997 年, BackRub 改名成 Google。

1998 年,Andi Gutmans 和 Zeev Suraski 与做者合做, 推出 PHP 3.0, 递归缩写定名为 PHP: Hypertext Preprocessor ,也代替了 PHP/FI 2.0 气概的定名。 史丹佛大学博士生 Larry Page 和 Sergey Brin 岁首年月和数人发布了 PageRank 算法论文。 接着两人成立 Google 公司, 首轮四个次要投资人包罗 Sun 兴办人之一 Andy Bechtolsheim 和 Amazon 兴办人 Jeff Bezos。

2000 年, Ericsson 在新加坡发布第一部蓝牙手机 Ericsson T36。 微软发布 .NET Framework 1.0 Beta 1。

2002 年, 微软发布 .NET Framework 1.0 Service Pack 1。

2004 年, DragonFly BSD 推出。

2006 年, Amazon 推出 Amazon Web Services (AWS) 平台。 3 月推出 Amazon S3 (Amazon Simple Storage Service), 8月公测 EC2 (Amazon Elastic Compute Cloud)。

2009 年,NetWare v6.5 最初一版。

2010 年, Oracle 收买 Sun。

C 语言源自 B, B 源自 BCPL,可 B 的定名就连 Dennis Ritchie 本人都不懂准确谜底(看下文, 他实的不懂同事在想什么!工做也没聊过那个话题 !? C 语言之父不懂, 知乎上的大神能懂吗 ?)... 所以不存在 A 语言, 就算存在也是在 Ken Thompson 的脑子里未曾公开。知乎大神也请别随意脑补 Algol,若是 Algol 是 A 语言,那么 CPL 就是 B 语言,BCPL 就是 C 语言, B 就是 D 语言了, 把 CPL 和 BCPL 间接抹去那不大好意思吧 ? 要说脑补实的没完没了,好比 "A"T&T 开发的 Multics 工具就是 A 语言, "B"ell labs 开发的就是 B 语言, 亦或 Ken Thompson 女神是 "A"da Lovelace 。汗青文献并没有 A 语言的说法。当然你能够说 APL 是 A programming language 的缩写,但现实上是 APL 语言, 而不是 A 语言;即使是也不是你想像的那种 A-B-C 曲属关系。

The Development of the C Language*:

Challenged by McIlroys feat in reproducing TMG, Thompson decided that Unix—possibly it had not even been named yet—needed a system programming language. After a rapidly scuttled attempt at Fortran, he created instead a language of his own, which he called B. B can be thought of as C without types; more accurately, it is BCPL squeezed into 8K bytes of memory and filtered through Thompsons brain. Its name most probably represents a contraction of BCPL, though an alternate theory holds that it derives from Bon [Thompson 69], an unrelated language created by Thompson during the Multics days. Bon in turn was named either after his wife Bonnie, or (according to an encyclopedia quotation in its manual), after a religion whose rituals involve the murmuring of magic formulas.

小我觉得比力合理的是 BCPL 和 Bonnie 的堆叠字就是 B。 当然我也只是脑补 :p

不外别忘了 Ken Thompson 用人名定名产物的习惯有迹可循,好比第一代 Unix shell

定名为 Thompson Shell。

所以 Ken Thompson 就是一贯闷骚法式员性格,把喜好的人名内置在产物, 如 Steve Jobs 定名 Lisa 电脑没两样。口虽不说,但产物名仍是很诚笃的。

【更新】

KEN, UNIX, AND GAMES

:

Once we had moved to the PDP-11, and Unix was beginning to achieve some visibility, Ken continued various game-related activities. Some were just simple text interactions, like a Blackjack opponent, or a rewriting of the "Hunt-the-Wumpus" game. Many of these were written for his son Cory, then at just the age to play with them. Some were not games as such, but recreational demos: he wrote an interpreter for the Snobol language, and illustrated it with a program that solved the Instant Insanity puzzle.

当我看到那篇文章(其实我是先看的维基)提到 Ken Thompson 儿子叫 Cory 我就震惊了, Ken Thompson 在 2019 年 5 月被 Brian Kernighan 的访谈

提到他写 Unix 的时候孩子才一岁。 既然刚出生的儿子叫 ‘C’ory (有些文章写成 Corey), Dennis 应该也是才坚决选的 C, C after B 反而是巧合。

The Development of the C Language*

:

This paper is about the development of the C programming language, the influences on it, and the conditions under which it was created. For the sake of brevity

, I omit full descriptions of C itself, its parent B [Johnson 73] and its grandparent BCPL [Richards 79], and instead concentrate on characteristic elements of each language and how they evolved.

所以呢,B 语言是 C 语言的 "parent", Bonnie 是 Cory 的妈妈, 那比 C after B 的烂理由有意义得多了。

0
回帖

既然有 C 语言,那么 A 语言和 B 语言别离是什么? 期待您的回复!

取消