gpt4 book ai didi

programming-languages - 是否有权威的编程语言功能列表?

转载 作者:行者123 更新时间:2023-12-03 21:34:34 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

5年前关闭。




Improve this question




我正在寻找动态类型、静态类型、弱类型和强类型等内容。

以及 OO 特性,如多态、继承、嵌套类、内部类、抽象类、纯虚函数。

此外,反射、静态绑定(bind)、动态绑定(bind)等。

但是,我并不是真的在寻找诸如控制流、内置类型或语法糖之类的东西。 A[5] 与 A.get(5)。虽然,它不会受到伤害。

如果存在这样的东西并将这些概念映射到特定的语言,那就太棒了。

我知道其中许多功能已经在 Wikipedia 上进行了解释,但除非我已经知道这些功能是什么(我记得)或者只是碰巧找到了一个相互关联的链接,否则无法快速访问。事实上,我唯一一次使用维基百科来做类似的事情是如果我碰巧看到有人引用了一个我需要查找的想法。

我的主要目标是让我有一种方法可以快速发现或更新我对这些概念的了解,这样的权威列表将非常有帮助。

如果这样的东西不存在,为什么?

是因为不同的编程语言决定以不同的方式命名其中一些东西,但实际上做的是同样的事情吗? (即纯虚函数(C++)与抽象方法(Java))虽然其他人可能名称相同,但做的事情略有不同? (Java 与 C++ 中的 Protected 关键字)另一个原因可能是语言根本没有足够的共同特性来编译这样的列表,最好一次学习一门语言并且它的特性是一个?在这种情况下,我可能会在学习语言时编制自己的“功能列表”......

谢谢阅读! :)

最佳答案

在 Peter van Roy 的作品中可以找到对编程范式以及构建这些范式的编程概念的非常好的解释。尤其是书中Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi . ( Here's the companion wiki. ) CTM(业内俗称)使用 multi-paradigm Distributed Oz programming language介绍所有主要的编程范例。
Peter van Roy 还制作了 this amazing poster that shows the 34 major paradigms and their relations and positions on various axis .海报基本上是一个令人难以置信的 CTM 压缩版本。文章 Programming Paradigms for Dummies: What Every Programmer Should Know 中包含对该海报的更详尽解释。它作为一章出现在由 G. Assayag 和 A. Gerzso 编辑的《计算机音乐的新计算范式》一书中。例如,它非常简洁易懂地解释了编程范式实际上是什么,编程概念是什么,以及两者之间的关系。
另一本展示几种主要编程范例的好书是Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman。 .几十年来,这本书是麻省理工学院为本科生编写的《编程导论》(6.001) 的基础。 A course taught by Abelson and Sussman themselves was recorded at a corporate training for Hewlett-Packard in 1986 .
您可以找到video recordings and course materials from the Spring 2005 course on MIT's OpenCourseWare website . Another recording of the course from MIT's short-lived ArsDigita University project . SICP在其他大学也有教过,其实是the 2010 course at Berkeley has just finished .
众所周知,SICP 可能是有史以来最好的编程书籍之一。
SICP 和 CTM 之间的主要区别在于教学方法:CTM 使用已经支持它们的极其强大的多范式语言演示大多数主要范式(主要是分布式 Oz,但也有一些其他)。 SICP OTOH 通过以一种 native 不支持它们的语言(Scheme 的一个子集)实现它们来演示它们。 IOW:CTM 将通过在 Scheme 中实现 OO 系统来教 OO 展示用 OO 语言、SICP 编写的程序。看到在十几行代码中实现的面向对象真是太棒了。
Design Concepts in Programming Languages (by Franklyn A. Turbak and David K. Gifford with Mark A. Sheldon)是另一本很棒的相关书籍。
Concepts of Programming Languages (by Robert W. Sebesta)很好地解释了编程语言的概念,从 Konrad Zuse 的 Plankalkül 开始,接着是第一个真正的编程语言,如 Fortran、Lisp、Cobol、Algol、BASIC 以及 C、C++、Java 和 Ada。
Concepts in Programming Languages (by John C. Mitchell)是另一本经常被引用但我自己还没有读过的书,很遗憾。
Essentials of Programming Languages 同上(由 Daniel P. Friedman 和 Mitchell Wand 撰写)又名 EoPL。
Programming Language Pragmatics (by Michael L. Scott)更多的是关于实现编程语言概念,但它也以一种据说非常容易理解的方式谈论它们。 (再说一次,我还没读过这个。)
既然你问了很多关于打字的具体问题,我就不提Types and Programming Languages了。 (由 Benjamin C. Pierce 撰写)或通常称为的 TaPL。这基本上是一本关于类型理论的书,因为它与编程语言有关。但是请注意,它对类型的看法并非没有争议:例如,它几乎完全否认了动态类型的存在。
为了平衡 Pierce 非常严格的定义,您绝对应该阅读精彩的 Typeful Programming通过卢卡卡德利。在论文中,他认为使用类型作为建模和结构化构造而不仅仅是安全网的编程本身就是一种编程范式。 (例如,这与 Peter van Roy 的海报和书籍形成鲜明对比,后者故意完全忽略打字。)
一个非常棒的资源是 Lambda the Ultimate博客(实际上是我接触到上述几乎所有阅读 Material 的地方。)

关于programming-languages - 是否有权威的编程语言功能列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3403721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com