某些编程功能是何时以何种语言引入的?
编程已经取得了长足的进步。 我还比较年轻(第一台计算机:C64),因此我认为编程中的许多东西是理所当然的,这些东西显然是在某个时候引入的,并且促进了现在常见的编程方式。
下面是一个(绝不是完整的)功能列表,我很想知道它们是用哪种语言以及何时引入的:
- 函数简介
- 编译语言
- 解释语言
- 条件和条件 循环结构
- 数组
- 字典(哈希表)
- 允许多线程
- 函数式编程(函数作为数据)
- 面向对象(我们需要更具体吗?也许继承比接口更早存在?)
- 泛型
- 面向方面编程
- 元编程
如果你可以尝试用一些参考资料来支持你的陈述。 如果您觉得我错过了一个重要的编程语言功能,其介绍也应该受到赞赏,请对此问题发表评论,以便可以将其添加到列表中。
更新: 我认为编程语言不能引入任何在汇编程序中不可能的东西,我宁愿寻找那些使“凡人”可以使用某些功能的语言。
Programming has come a long way. I am still relatively young (first Computer: C64), hence I take many things in programming for granted that were obviously introduced at some point and facilitated ways of programming that are now commonplace.
What follows is a (by no means complete) list of features, where I would love to know in which language and when they were introduced:
- introduction of functions
- compiled language
- interpreted language
- conditional & loop structures
- the array
- the dictionary (Hashtable)
- allowance of multi-threading
- functional programming (functions as data)
- object orientation (do we need to be more specific? maybe inheritance was there earlier than interfaces?)
- generics
- aspect-oriented programming
- meta-programming
If you can, try to back up your statement with some reference. If you feel I have missed an important programming language feature whose introduction should also be appreciated, please comment on this question such that it can be added to the list.
UPDATE:
I suppose that a programming language cannot introduce anything that wouldn't be possible in assembler, I'm rather looking for languages that made a certain feature available to "mere mortals".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
据我所知(并在维基百科的帮助下),我将陈述以下内容:
Dictionary
。请随时修改/更新任何附加信息。
To the best of my knowledge (and with the help of Wikipedia), I would state the following:
Dictionary
in Smalltalk.Please feel free to modify/update this with any additional information.
您可以在此处使用语言图表:http://www.levenez.com/lang/ 和维基百科寻找答案。 对于初学者来说:自 Fortran 以来,函数、循环和条件就一直存在。 然后,1958 年 Lisp 出现了,我想有些人会说其余的都是那时出现的:)
You could use a language graph here: http://www.levenez.com/lang/ and Wikipedia to find answers. For starters: functions, loops and conditionals are with us since Fortran. And then, in 1958 Lisp arrived, I think some will argue that the rest came then :)
寻找第一总是会导致头发分叉。 我敢打赌,你提到的任何事情在大受欢迎之前都已经做过好几次了。 尽管如此,这里有一个尝试:
Finding firsts always leads to hair splitting. I'll bet any of the things you mentioned were done several times over before they hit the big time. Nonetheless, here's an attempt:
我想我们可以放心地说“汇编程序”。 大多数(如果不是全部)这些概念已经存在很长时间了。
I think we can safely say "assembler". Most if not all of these concepts have been around for a very long time.
口齿不清。 1958.
或者,
函数介绍 - Alonzo Church 的 lambda 演算,1930
编译语言 - Grace Hopper,1952
解释语言 - Lisp,1958,也许之前的东西。
有条件& 循环结构 - Bletchley Park Bombe 1940 年代(循环运行)。 提花,1801
数组 - 作为带有索引的连续内存块,Bletchley Park 或 Manchester Baby,1940 年代
字典(Hashtable)-?
允许多线程 - Jacquard,1801; Multix 1965
函数式编程(函数作为数据) - Godel,1930 年代
面向对象
接口
泛型 - 泛型方法(又是 Lisp)还是参数类型(modula???)?
面向方面编程 - common lisp 元对象协议,20 世纪 80 年代末
元编程 - lisp 宏,20 世纪 50 年代或60 年代
Lisp. 1958.
Alternatively,
introduction of functions - Alonzo Church's lambda calculus, 1930
compiled language - Grace Hopper, 1952
interpreted language - Lisp, 1958, maybe something before.
conditional & loop structures - Bletchley Park Bombe 1940s ( ran in a loop ). Jacquard, 1801
the array - as a contiguous chunk of memory with an index, Bletchley Park or Manchester Baby, 1940s
the dictionary (Hashtable) - ?
allowance of multi-threading - Jacquard, 1801; Multix 1965
functional programming (functions as data) - Godel, 1930s
object orientation
interface
sgenerics - generic methods ( Lisp again ) or parametric types ( modula??? )?
aspect-oriented programming - common lisp meta-object protocol, late 1980s
meta-programming - lisp macros, sometime in the 50s or 60s