Concepts, Techniques, and Models of Computer Programming

Peter Van Roy, Seif Haridi

出版社

The MIT Press

出版时间

2004-02-20

ISBN

9780262220699

评分

★★★★★
书籍介绍
这本书最打动人的地方,是它把编程当成一门有科学底子的学科来教,而非零散工具的堆砌。作者用一组极简的“核语言”统一地铺陈声明式、并发、面向对象等多种范式,让读者看清它们之间的深层关联,而非各自为政。它反复强调:程序员的难处与乐趣不在写代码,而在设计抽象;好的算法远比更快的机器、更聪明的编译器重要。正因如此,它被许多人视为“不学电脑也该读的电脑书”,适合作为梳理知识的线索,帮助建立全局观。但它的宽泛与抽象同样引发争议:有人读不懂、兴趣流失,也有人批评其理想与实操脱节。它不是SICP,也不教具体语言细节,而更像一份关于“如何思考编程”的宣言。
作者简介
Peter Van Roy is Professor in the Department of Computing Science and Engineering at Université catholique de Louvain, at Louvain-la-Neuve, Belgium. Seif Haridi is Professor of Computer Systems in the Department of Microelectronics and Information Technology at the Royal Institute of Technology, Sweden, and Chief Scientific Advisor of the Swedish Institute of Computer Science.
AI导读
核心看点
  • 统一框架展示主流编程范式
  • 强调抽象设计与算法优于硬件
  • 结合实践技巧与科学理论基础
读者共识
  • 高屋建瓴,梳理知识体系线索
  • 难度较大,部分读者中途放弃
  • 比SICP更系统化的范式介绍
精彩摘录
  • "Programming as defined above has two essential parts: a technology and its scientific foundation. The technology consists of tools, practical techniques, and standards, allowing us to do programming. The science consists of a broad and deep theory with predictive power, allowing us to understand pro"
  • "The most difficult work of programmers, and also the most rewarding, is not writing programs but rather designing abstractions."
  • "Top-down software development Let us summarize the methodology we used to write Pascal: The first step is to understand how to do the calculation by hand. The second step is to write a main function to solve the problem, assuming that some auxiliary functions are known. The third step is to complete"
  • "Correctness To prove correctness in general, we have to reason about the program. This means three things: We need a mathematical model of the operations of the programming language, defining what they should do. This model is called the language’s semantics. We need to define what we would like the"
  • "Complexity A lesson we can learn from this example is that using a good algorithm is more important than having the best possible compiler or fastest machine."
  • "Programming encompasses three things: First, a computation model, which is a formal system that defines a language and how sentences of the language (e.g., expressions and statements) are executed by an abstract machine. Second, a set of programming techniques and design principles used to write pro"
  • "The EBNF notation given above defines a class of grammars called context-free grammars. They are so-called because the expansion of a nonterminal, e.g., digit , is always the same no matter where it is used. A grammar that contains a nonterminal whose use depends on the context where it is used is c"
用户评论
看到第9章了,搁置之,后面那些有空再看吧,因为兴趣不大了。与其勉强看完,不如暂别
外行用来学习的,能理解逻辑,具体的细节没法深究了
高屋建瓴,不学电脑也应该读的电脑书之一。
说啥呢,看不懂
介绍的太宽泛。到是可以当梳理知识的线索。
下载
收藏