Language agnostic 编程构建历史

Language agnostic 编程构建历史,language-agnostic,programming-languages,language-features,history,Language Agnostic,Programming Languages,Language Features,History,让我们研究并追溯语言结构的起源 例如: 从LISP引入的构造 If-then-Else块:“无处不在的If-then-Else结构,现在被视为任何编程语言的基本元素,由麦卡锡发明用于Lisp,在Lisp中它第一次以更一般的形式出现(cond结构)。它被Algol继承,并被普及。”-WikiPedia 职能类型:作为一等公民履行职能 垃圾收集 开关声明-1965- 根据: 所有过程语言之父ALGOL没有case语句,因为case的概念还没有在高级语言中被发明出来。然后在1965年,一种很少使用的

让我们研究并追溯语言结构的起源

例如:

从LISP引入的构造

  • If-then-Else块:“无处不在的If-then-Else结构,现在被视为任何编程语言的基本元素,由麦卡锡发明用于Lisp,在Lisp中它第一次以更一般的形式出现(cond结构)。它被Algol继承,并被普及。”-WikiPedia

  • 职能类型:作为一等公民履行职能

  • 垃圾收集


开关声明-1965-

根据:

所有过程语言之父ALGOL没有case语句,因为case的概念还没有在高级语言中被发明出来。然后在1965年,一种很少使用的语言ALGOL W被发布,其中包含了C.a.R.霍尔发明的switch…case语句,该语句允许非有序、非重叠的值和范围


C和Pascal都源于这种父语言,并且都有一种case形式:C是熟悉的开关(变量)case。。。和Pascal,使用case变量begin value1:。。。。C++、PHP、C语言和java语法都是从C版本中派生出来的。

< P>这是我至今所能识别的主要编程语言结构的全面历史。毫无疑问,我遗漏了一些东西,但我相信SO社区将帮助识别这些遗漏

Plankalkül(1943-45)——由康拉德·祖斯开发,根据F.l.鲍尔和H.沃斯纳在ACM论文中的介绍和交流,这是第一种高级非冯·诺依曼编程语言。该语言最初是为机械开发的,但在柏林自由大学的一个团队直到2000才发展起来。该语言介绍了以下内容:

  • “赋值语句、子例程、条件语句、迭代、浮点运算、数组、分层记录结构、断言和异常处理”()
Fortran

    循环(实际上是C语言、C++语言等的现代for循环)()
  • 三向算术IF语句()
  • 计算GOTO(Algol 58和Algol 60中switch语句的前身)——from()、()和()
IPL(信息处理语言)-递归(后来包含在LISP中)-

LISP-垃圾收集、lambda表达式和动态键入--()、()、()和()

ALGOL 58-引入代码块(但仅用于控制流,不用于可变范围)()

ALGOL 60-将词法范围添加到代码块中,使用词法范围()嵌套函数定义

ALGOL 68-运算符重载()

Simula-对象、类、子类、虚拟方法、协同程序()

ML-参数多态性()

ISBL(信息系统基础语言)-关系代数(在这里比在SQL中介绍得更早)--(),()

方案-第一个完全支持的闭包(),()

<>很奇怪,对于四种最常用的现代编程语言,C、C++、java和C语言,我无法识别任何可验证的、根本上新的编程语言构造。C++中的模板是在ML中引入的多态性的一种临时版本。java中新的语言特征最接近的是包含对线程的支持。大多数情况下,这四种语言都是其他地方发明的理想特性和概念的组合

其他注意事项:尽管Prolog是最早的逻辑编程语言之一,但我无法确定以前在其他语言中没有引入的任何重要功能

虽然有一些维基百科的参考资料,但上面列出的大部分功能都是由下面引用的可靠来源提供的。在我深入研究寻找权威参考文献的地方,基于维基百科的详细信息表现良好

我为Plankalkül引用的ACM论文确认了它的大部分特征。康拉德·祖斯是一位有远见的天才

参考资料

F.L.鲍尔和H.Wössner(1972)。通讯 在ACM中,15(7):678-685

劳尔·罗哈斯等人(2000年)。柏林弗雷大学信息研究所,技术报告B-3/2000

巴科斯(1956)。国际商业机器公司

艾伦·纽厄尔和赫伯特·西蒙(1956)。IRE信息理论学报IT-2,第3期:61-79

约翰·麦卡锡(1960),ACM的来文,第3 n.4节,第184-195页,4月

约翰·麦卡锡(1978)。Richard L.Wexelblat主编,《编程语言史:ACM SIGPLAN会议记录》,第173-197页。学术出版社,6月1日至3日

J.W.巴克斯(1959)。信息处理国际会议记录。教科文组织。第125-132页

巴科斯,鲍尔,格林,卡茨,麦卡锡,诺尔,A.J。佩利斯、H.鲁蒂绍尔、K.萨默森、B.沃库瓦、J.H.韦格斯坦、A.范·维因加德、M.伍德格;彼得·纳尔编辑(1963)。ACM通讯,第6卷,第1期(1月),第1-17页

A.van Wijngaarden,A.(编辑),Mailloux,B.J.,Peck,J.E.L.,Koster,C.H.A.(1969),第10.2.2节。数字。数学。14,79-218

奥勒·约翰·达尔、比约姆·米尔豪格和克里斯汀·尼加德(1970年)。(第二版)奥斯陆,挪威计算中心

卢卡·卡德利和彼得·韦格纳(1985)。计算机调查,第17卷,n。12月4日,第471-522页

帕特里克·霍尔、彼得·希区柯克、斯蒂芬·托德(1975)。第二届ACM编程语言原理研讨会会议记录,加利福尼亚州帕洛阿尔托:ACM,第225-232页,1月