640?wx_fmt=gif

【CSDN 编者按】作为古老的编程语言之一——BASIC,它不仅开启了计算机领域全方位创意探索的大门,更为现在的科技巨头微软、苹果公司立下汗马之劳。

它是如何被发明的呢?它竟然是因为John G. Kemeny当时——(先卖个关子,文章有详细的来龙去脉)

作为BASIC之父的John G. Kemeny,他的人生经历又是如何呢?

640?wx_fmt=jpeg

作者 | Badri Sunderarajan

译者 | 弯月

责编 | 伍杏玲

20世纪50年代,“计算机”可以说英语,也可以理解英语。任何人无需培训就可以与“计算机”沟通。

你很惊讶吧?说起来,那时候的“计算机”这个词,可不是今天我们习以为常的机器。“计算机”其实应该叫做“计算师”,是一种头衔,例如“首席执行官”或“机械师”,一种在计算方面给予人帮助的人的头衔。

通常这些“计算师”的教育背景都很低,因此他们的工作也会被人轻视。2016年有一部电影叫作《隐藏人物》,讲述了有关这些“计算师”的故事:Katherine Johnson、Dorothy Vaughan和Mary Jackson,这几位名不经传的女士默默地在背后付出了很多计算的努力,才有了登月第一人。

与当时的“计算师”形成鲜明对比的是,后来的计算机是由开关、继电器、旋转轴和离合器构成的大型笨重机器。

例如,美国洛斯阿拉莫斯国家实验室的17台IBM ASCC计算机,又成为“哈弗马克1号”。这些机器并不会说英语,技术人员需要经过培训,然后通过按钮或穿孔卡输入指令,计算机即便是处理最简单的问题也需要数周时间才能完成。实际上,它们处理的问题一点都不简单:当时操作员利用它们计算原子弹内爆的效果。

1943年,John G. Kemeny开始接触这些马克1号计算机(应该称为“计算器” )。虽然当时他并不怎么懂计算机,但最终他发明了一种语言,虽然不完全是英语,但是通过这种语言每个人都学会了计算机编程。

让我们先来回顾一下John G. Kemeny的生平。

 

640?wx_fmt=png

战争年代,背井离乡求学

 

John George Kemeny,又名Kemény János György,于1926年5月31日出生于匈牙利布达佩斯。1938年,希特勒统治了德国,并在匈牙利掀起了反犹太运动,他的父亲被迫离开了匈牙利,前往美国。两年后,他与家人在纽约再次团聚,当时Kemeny只有十四岁。

虽然Kemeny要学习英语,但他在就读乔治华盛顿高中时仍然取得了优异的成绩,并在三年后以全班第一名毕业。后来,他到普林斯顿大学学习数学和哲学。

当时,匈牙利与希特勒领导势力狼狈为奸,在大屠杀中杀害了许多无辜的百姓。其中包括John Kemeny拒绝离开自己祖国的祖父,一同殉难的还有一位叔叔和婶婶。

而美国也在此时宣布参战,由于担心敌人会研发出原子弹,于是美国启动了一个秘密项目,打算率先研制出自己的原子弹。这就是曼哈顿计划,而John Kemeny也应邀加入了该项目。

John Kemeny从普林斯顿大学休假一年,前往美国洛斯阿拉莫斯国家实验室,在那里他在著名的物理学家理查德·费曼(Richard Feynman)的指导下工作。此外,Kemeny还结识了另一位匈牙利出生的数学家约翰·冯·诺依曼(John von Neumann),他是现代电子计算机与博弈论的重要创始人。

还有,与Kemeny共事的另一名大众耳熟能详的知名人士便是阿尔伯特·爱因斯坦( Albert Einstein)。

 

640?wx_fmt=png

成为爱因斯坦助理

 

1948年,在费曼的指导下John Kemeny获得了学士学位,之后便跟随阿隆佐·邱奇攻(Alonzo Church)读博士学位。

当时,爱因斯坦在数学方面需要一个助理。爱因斯坦的数学也非常好,但是物理才是他的专业。他处于对最新的尖端数学缺乏了解,因此他需要一位研究助理。

640?wx_fmt=jpeg

达特茅斯学院图书馆

爱因斯坦有几位研究助理,而Kemeny只是其中一位。这些助理不仅为爱因斯坦提供了最新的数学知识,另外,他们还要帮忙计算。

人人都会犯错,如果计算的东西越多,犯的错误就越多。爱因斯坦的工作需要大量的计算:据Kemeny所说,他们需要不断地根据一个公式推导出另一个公式求解微分方程,这个过程似乎是无穷无尽。因此,如果其中出错了就很难发现,按照程序员的说法:“这是无法调试的烂摊子”。

那有什么解决的办法呢?找多个人计算同一个问题。

爱因斯坦和Kemeny(或其他研究助理)分别计算同一个问题,完成后比较答案。由于计算时间非常漫长,因此如果他们的答案一致,那么就可以肯定这个答案是正确的。毕竟两个人犯同一个错误的概率并不大!

因此,在Kemeny开始研究计算机之前,他自己的工作就是“计算机(师)”。

1949年,年仅23岁的Kemeny博士毕业,他的毕业论文是“类型论与集合论”。此外,他还与来自美国沿海缅因州的Jean Alexander喜结连理。

1953年,在他发表论文4年后,Kemeny被派遣到达特茅斯数学系工作,并于两年后当人系主任。Kemeny在达特茅斯数学系遇到了另一位来自普林斯顿大学的博士Thomas Kurtz,为了在达特茅斯工作,Kurtz的薪水被削减,因此他正在想办法增加收入。

Kemeny建议他可以争取麻省理工学院计算站点的IBM研究奖学金。恰巧在1956年夏天,计算机和认知科学家约翰·麦卡锡(John McCarthy)安排了一门“人工智能”课程,这可能是史上第一次“人工智能”这词出现在课程名中。

 

640?wx_fmt=png

忍不了汇编,发明BASIC

 

在Kemeny和Kurtz教学生编程的时候,他们意识到当前的语言,汇编,非常复杂和繁琐。它需要你了解很多数学知识,以及计算机构建方式的详细内容。这种学习编程的方式太低级了!

640?wx_fmt=jpeg

达特茅斯学院图书馆

于是,他们二人合力创建了达特茅斯,即Dartmouth 简化代码(Dartmouth Simplified Code)。这基本上是一个模板系统,每个Darsimco的命令都与一小部分的汇编命令相对应。人们在使用达特茅斯命令时,可以利用预先编写好的代码块,而无需掌握如何处理位和字节。

后来,他们建立了Dartmouth 超简化编程实验(Dartmouth Oversimplified Programming Experiment,简称Dope),这是一种比Darsimco更简单的语言。然而这种语言过于简单,几乎无用武之地。

就在这个时候,新的高级语言Fortran出现了,编程变得不再那么繁琐,但是人们仍然需要拥有数学背景才能使用这种语言。(对于那些有数学背景的人来说,Fortran可能非常强大:这就是为什么时至今日仍然有物理学家在使用最新版的Fortran。)

Kemeny和Kurtz想要创建一种普通人也可以很方便地使用的语言。最终,他们创建了BASIC。

BASIC(Beginner’s All-purpose Simplified Instruction Code,初学者的通用简易指令代码)拥有类似于英语的简单命令,用户可以通过输入这些命令操控计算机。例如,可以通过“HELLO”登录,通过“BYE”退出,通过“SAVE”和“UNSAVE”管理永久存储中的程序等等。

从此,编程不再像按计算器上的键,而更像是概括大纲。

后来,BASIC变得非常受欢迎,微软等公司纷纷开始采用BASIC,并发布了各自的版本。这可能是John Kemeny对这个世界最大的贡献,但绝不是他唯一的贡献。

除了BASIC以外,Kurtz和Kemeny还有一项重大的贡献:他们创建了分时系统,允许多个用户同时运行程序而无需排队等候。如今数字多任务使用的就是达特茅斯分时系统(DTSS),我们都需要感谢Kurtz和Kemeny!

 

640?wx_fmt=png

出任校长,深受欢迎

 

1970年,44岁时的Kemeny出任达特茅斯校长,并在这个岗位上奉献了11年,直到后来辞职继续从事教学。

在担任校长期间,Kemeny在达特茅斯做出了许多重大改革,包括将达特茅斯从一所男子学校转变成男女混合大学。他还设计了“达特茅斯计划”,将学期的课程安排重新调整为三个月:方便学生灵活地参加校外项目,而且还可以让大学扩招更多的学生,同时还无需建造更多的教学大楼。

据报道,Kemeny在学生中间非常受欢迎,他与学生们非常亲近。他积极地招募少数民族的学生,并恢复了达特茅斯为美洲印第安人提供教育的承诺。

在Kemeny取得这些成就的背后,一直在默默支持他的是妻子Jean Alexander Kemeny。她凭借自己的实力成为了一名直言不讳的活动家,她曾为支持公民和妇女的权利而努力,并为达特茅斯转型成男女混合大学贡献了自己的力量。后来,Jean写了一篇回忆录《It’s Different at Dartmouth》(不一样的达特茅斯),记录了她作为达特茅斯“第一夫人”的十年生平。

在担任校长期间,Kemeny曾应美国总统吉米·卡特(Jimmy Carter)的请求,负责调查三里岛核事件。此次调查的最终报告严格批评了美国联邦监管机构以及当时核电行业安全标准的松懈。

1981年,Kemeny退休,他辞去了达特茅斯校长一职,并重返学校教学。两年后,他和Kurtz共同创立了True BASIC Inc.,以商业的方式推广和销售BASIC。与此同时,Kemeny坚持在达特茅斯教学,一直到1990年。

两年后,John Kemeny去世,享年66岁。但他创造的编程语言通过多种版本和形式流传了下来,一直到半个世纪之后的今天。

原文:https://medium.com/interesting-histories/john-g-kemeny-inventor-of-basic-f0d118c9f2f4

本文为CSDN翻译,转载请注明来源出处。

Python 的这几个技巧,简直屌爆了

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

 

【END】

CTA峰会嘉宾揭秘!五月齐聚杭州,共话机器学习与知识图谱的技术研究与落地应用。会议双日开发者预售票限量预售中,仅售699元,学生票限量预售399元(原票价1099元)。

添加小助手微信15101014297,备注「CTA」,了解大会详情。

640?wx_fmt=jpeg

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

☞ 手机基带芯片激荡 30 年!

 硬核追星!杨超越杯决赛是些啥编程项目?

 前端代码的整洁之道 | 技术头条

准码农自述:我是如何从二本到日本留学,从 C 语言到人工智能的?

☞ 阿里半跪过,任正非差点跳楼,京东被骗光钱:成年人的生活哪有容易二字?

☞ 回报率29%! 大神用情感分析创建一个比特币交易算法, 原来交易玩的是心理战

☞ 硬核粉丝 | 清华双胞胎“YCY Dance Now”杀进超越杯编程大赛决赛

☞ 异构计算=未来?一文带你秒懂3大主流异构

☞ 她说:为啥程序员都特想要机械键盘?这答案我服!

 

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

 
 

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

 

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐