Der*_*itz 14 language-features programming-languages
我正在寻找动态打字,静态打字,弱打字和强打字等内容.
以及OO功能,如多态性,继承,嵌套类,内部类,抽象类,纯虚函数.
此外,还有反射,静态绑定,动态绑定等.
但是,我并不是在寻找控制流,内置类型或语法糖等等.A [5] vs A.get(5).虽然,它不会受到伤害.
如果像这样的东西存在并将这些概念映射到特定语言,那将是非常棒的.
我知道许多这些功能已在维基百科上解释,但除非我已经知道这些功能是什么(我记得)或恰好找到相互关联的链接,否则无法快速访问.事实上,我唯一一次使用维基百科来做这样的事情,就好像我碰巧看到有人引用了一个想法,我需要查阅.
我的主要目标是让我有机会快速发现或了解我对这些概念的了解,这样的权威列表将非常有用.
如果这样的事情不存在,为什么?
是不是因为不同的编程语言决定以不同的方式命名这些东西但实际上做同样的事情呢?(即纯虚函数(C++)与抽象方法(Java))虽然其他人可能会命名相同的东西,但做一些略有不同的事情?(Java与C++中的Protected关键字)另一个原因可能是语言只是没有足够的共同特征来编译这样的列表而且学习一种语言并且它的功能一次更好?在这种情况下,当我学习语言时,我可能会编译自己的"功能列表"...
谢谢阅读!:)
Jör*_*tag 21
Peter van Roy的作品中有很好的解释编程范式和构建这些范例的编程概念.特别是在Peter Van Roy和Seif Haridi 的"计算机编程概念,技术和模型 "一书中.(这是随附的维基.)CTM(因为它在业界众所周知)使用多范式分布式Oz编程语言来介绍所有主要的编程范例.
彼得范罗伊也制作了这张惊人的海报,展示了34种主要范例及其在不同轴上的关系和位置.这张海报基本上是一个令人难以置信的压缩版CTM.有关该海报的更全面的解释载于" 傻瓜编程范例:每个程序员应该知道的内容"一文,该文章出现在G. Assayag和A. Gerzso编辑的" 计算机音乐新计算范例 "一书中.它解释了例如非常简洁和易于理解的,编程范例实际上是什么,编程概念是什么,以及两者是如何相关的.
另一本展示几种主要编程范例的好书是Harold Abelson和Gerald Jay Sussman 的计算机程序结构和解释.几十年来,本书是麻省理工学院编程入门(6.001)的基础.Abelson和Sussman自己教授的课程是在1986年为惠普公司培训时录制的.
您可以在麻省理工学院的OpenCourseWare网站上找到2005年春季课程的录像和课程资料.麻省理工学院短期ArsDigita大学项目的另一个课程录音.SICP也在其他大学教过,实际上伯克利的2010年课程刚刚结束.
SICP,因为它是俗称,是可能之一的有史以来最好的编程书籍.
SICP和CTM之间的主要区别在于教学方法:CTM使用一种已经支持它们的极其强大的多范式语言(大多数是分布式Oz,还有其他一些)来演示大多数主要范例.SICP OTOH通过在本地不支持它们的语言(Scheme的一个子集)中实现它们来演示它们.IOW:CTM会教OO通过在Scheme中实现OO系统来展示用OO语言编写的程序SICP.看到以十几行代码实现的面向对象是非常棒的.
编程语言中的设计概念(由Franklyn A. Turbak和David K. Gifford与Mark A. Sheldon合作)是另一本很好的相关书籍.
编程语言的概念(作者Robert W. Sebesta)解释了编程语言的概念,从Konrad Zuse的Plankalkül开始,继续使用第一个真正的编程语言,如Fortran,Lisp,Cobol,Algol,BASIC以及C,C++, Java和Ada.
编程语言中的概念(由John C. Mitchell撰写)是另一本经常被引用的书,但不幸的是我还没有读过自己.
编程语言要点的同上 (Daniel P. Friedman和Mitchell Wand)又名EoPL.
编程语言语用学(由迈克尔·L.·斯科特)是有关实施程序设计语言的概念,但它也谈到约的方式,据说是非常接近他们.(再说一遍,我还没看过这个.)
既然你问了很多关于专门打字的问题,那么我就不会提及类型和编程语言(由Benjamin C. Pierce提供)或TaPL,因为它通常被称为.这基本上是关于类型理论的书,因为它与编程语言有关.但请注意,它对类型的看法并非没有争议:例如,它几乎完全否定了动态类型的存在.
为了平衡皮尔斯非常严格的定义,你一定要阅读Luca Cardelli 精彩的Typeful Programming.在论文中,他认为使用类型作为建模和结构构造而不仅仅是安全网的编程本身就是一种编程范式.(例如,这与Peter van Roy的海报和书形成鲜明对比,后者故意无视打字.)
一个非常棒的资源是Lambda the Ultimate博客(实际上我已经介绍了几乎所有上述阅读材料.)