【发布时间】:2016-07-23 12:31:37
【问题描述】:
Switch 语句现在以所有主要语言(Javascript、Java、PHP、C#、C++、C)出现,但该语句第一次出现在什么语言中?
【问题讨论】:
-
我投票结束这个问题,因为它是关于编程的历史而不是编程
标签: history
Switch 语句现在以所有主要语言(Javascript、Java、PHP、C#、C++、C)出现,但该语句第一次出现在什么语言中?
【问题讨论】:
标签: history
Lisp 有 cond,Wikipedia's source 位于 1956-1958 时间范围内。
我在 FORTRAN 中为麻省理工学院的 IBM 704 编写的一组国际象棋合法移动例程中发明了条件表达式。在 1957-58 年间...一篇定义条件表达式并提议在 Algol 中使用的论文被发送到 ACM 通讯部,但由于篇幅很短,被任意降级为致编辑的一封信。
-- John McCarthy: Lisp Prehistory - Summer 1956 through Summer 1958
【讨论】:
cond 被发明的时候,但粗略阅读 Lisp Prehistory 文章似乎并不能证实或反驳这一说法。维基百科暗示了“更一般的 cond 结构”,而不仅仅是 if - then - else 所以这就是我这个答案的基础。
无法真正回答,因为它是一个概念的演变。 C(您列表中最古老的)是从 B(也有 switch)演变而来的,它是从 BCPL(有 switchon 语句)演变而来的。 BCPL 来自 CPL,而 (AFAIK) 没有。在 Pascal-vs-C 峡谷的另一边,ALGOL(在 ALGOL68 中有 case 语句)从 FORTRAN(在计算的 GO TO 语句中有一个基本的前身)演变而来。计算出的GO TO 非常底层,很容易在汇编中实现。
【讨论】:
在您所指的语言中,C 可能是第一个。然而,如果你仔细观察,这个概念来自更基本的语言,就像汇编级语言一样,
【讨论】: