@songying
2018-12-22T18:32:34.000000Z
字数 2981
阅读 1350
面向对象
这篇文章介绍了所有主流的编程范式,基本概念以及各个编程范式之间的关系。并对30多种范式进行了分类,大多数范式在概念层面有着很小的差别,但这对编程来说,依旧有着很大的不同。我们讲述了编程范式是如何影响语言设计的,并提出了两个观点: dual-paradigm languages and a definitive language. 我们引入了编程语言的主要思想: records, closures, independence(concurrency) 以及 named state。我们解释了数据抽象的主要原则以及它是如何引导我们进行大规模编程的。最后,我们以 concurrency结尾。
我们引出了四种鲜为人知但是很重要的范式: declarative concurrency,functional reactive programming, discrete synchronous programming, 以及 constraint programming.
本节对所有的范式都有提及,但是更多的描述 little-known paradigms, 常见的范式简单略过。
A programming paradigm is an approach to programming a computer based on a mathematical theory or a coherent set of principles. 每个编程范式支持一系列概念,这使得它更好的处理某一类问题。而编程问题的复杂性使得遇到的问题多种多样,这也是现代语言支持多范式的原因。一门理想的语言应该支持多种范式,这样编程人员能够选择合适的概念集来解决一类问题。这种语言也被称为多范式语言。而主流的语言远不能达到这一点。不过,理解范式的概念集能够改善我们的编程风格。
第二章解释了什么是编程范式以及对主流编程范式进行了分类,同时分析了各个范式之间的关联。编程问题的复杂性使得语言支持多范式成为主流。
第三章描述了如何设计一门支持多范式的语言。对于用于大型编程的语言来说,多范式必须支持多个范式。一个较好的方式是dual-paradigm language:a language that supports one paradigm for programming in the small and another for programming in the large. 另一个思想是 definitive language。
第四章讲述了四个重要的概念: records, lexically scoped closures, independence (concurrency) 以及 named state.
第5章讲述了如何在程序中定带有操作的数据。我们展示了四种数据抽象: objects, abstract data types, declarative objects 以及 stateful abstract data types。
本章讲述Deterministic concurrent programming ,
本章讲述了编程范式,各种实现编程范式的语言,以及编程范式包含的概念。
每个编程语言都实现了多个范式,而每个范式中都包含多个核心概念。 本章提到了27种在实际中都有应用的编程范式。值得一提的是,不同编程范式之间有着很多的相同点。我们通过分类来看看这些范式之间的相同点。
本节讨论编程范式中涉及到的四个重要概念: , namely records, lexically scoped closures, independence (concurrency), and named state。
record 其实就是 data structure: a group of references to data items with indexed access to each item。
R=chanson(nom:"Le Roi des Aulnes"
artiste:"Dietrich Fischer-Dieskau")
此时,我们就可以通过R.nom
来引用字符串 "Le Roi des Aulnes"。record 是 symbolic programming 的基础。许多重要的数据结构如:arrays, lists, strings, trees以及哈希表都是record。