Jör*_*tag 11
到目前为止,编程范式的最佳解释可以在Peter van Roy的作品中找到.特别是在Peter Van Roy和Seif Haridi 的"计算机编程概念,技术和模型 "一书中.(这是随附的wiki.)CTM使用多范式的Distributed Oz编程语言来介绍所有主要的编程范例.
彼得范罗伊也制作了这张惊人的海报,展示了34种主要范例及其在不同轴上的关系和位置.这张海报基本上是一个令人难以置信的压缩版CTM.有关该海报的更全面的解释载于" 傻瓜编程范例:每个程序员应该知道的内容"一文,该文章出现在G. Assayag和A. Gerzso编辑的" 计算机音乐新计算范例 "一书中.
另一本展示几种主要编程范例的好书是Harold Abelson和Gerald Jay Sussman 的计算机程序结构和解释.几十年来,这本书是麻省理工学院CS101的基础.Abelson和Sussman自己教授的课程是在1986年为惠普公司培训时录制的.
CTM和SICP之间的主要区别在于CTM使用支持它们的语言演示了大多数主要范例(主要是分布式Oz,还有其他一些).SICP OTOH通过在本地不支持它们的语言(Scheme的一个子集)中实现它们来演示它们.看到以十几行代码实现的面向对象是非常棒的.
您可以在麻省理工学院的OpenCourseWare网站上找到2005年春季课程的录像和课程资料.麻省理工学院短期ArsDigita大学项目的另一个课程录音.SICP也在其他大学教过,实际上它正在伯克利教授.
就个人而言,我自己的经验是,真正理解编程范式是可能的
理想情况下,你会使用一种将范式推向极致的语言.在多范式语言中,很容易"欺骗"并回归到您更熟悉的范例.并且使用范例作为库只能在诸如Scheme之类的语言中实现,这些语言是专门为这种编程设计的.例如,在Java中学习惰性函数式编程并不是一个好主意,尽管有这样的库.
这是我最喜欢的一些: