Concepts, Techniques, and Models of Computer Programming - Peter Van Roy, Seif Haridi

Concepts, Techniques, and Models of Computer Programming

Peter Van Roy, Seif Haridi

出版社

The MIT Press

出版时间

2004-02-20

ISBN

9780262220699

评分

★★★★★
书籍介绍
This innovative text presents computer programming as a unified discipline in a way that is both practical and scientifically sound. The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together. After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language--a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.
AI导读
核心看点
  • 统一框架展示主流编程范式
  • 强调抽象设计与算法优于硬件
  • 结合实践技巧与科学理论基础
适合谁读
  • 计算机专业高年级学生
  • 希望深入理解编程本质的开发者
  • 对程序设计理论感兴趣的读者
读前提醒
  • 内容深奥,需具备一定编程基础
  • 建议配合Oz语言环境实践学习
  • 可先读前两章,不必强求通读
读者共识
  • 高屋建瓴,梳理知识体系线索
  • 难度较大,部分读者中途放弃
  • 比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"
作者简介
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.
用户评论
看到第9章了,搁置之,后面那些有空再看吧,因为兴趣不大了。与其勉强看完,不如暂别
外行用来学习的,能理解逻辑,具体的细节没法深究了
高屋建瓴,不学电脑也应该读的电脑书之一。
说啥呢,看不懂
介绍的太宽泛。到是可以当梳理知识的线索。
收藏