HackerTube.live
Books / Programming

THE READING ROOM / BOOK GUIDE

Concepts, techniques, and models of computer programming

Peter Van Roy; Seif Haridi

A textbook by Peter Van Roy and Seif Haridi that teaches programming through a sequence of computation models, from simple declarative ideas to concurrent and stateful systems.

About the book

This textbook is built around a deliberate argument: that programming is best learned by studying a progression of computation models rather than by mastering one language's syntax. Van Roy and Haridi organize the material so each model adds a capability, and the reader sees what that capability buys and what it costs. The book's central vehicle is a multiparadigm language, and its approach is to show how ideas from functional, object-oriented, concurrent, and logic programming relate within a shared framework.

The scope is broad and the treatment is formal in places. Readers encounter declarative programming, dataflow, state, concurrency, and relational computation as connected topics. The authors pair concepts with techniques and models, so theory sits beside practical programming patterns. The book is aimed at students and programmers who want a structural understanding of how languages and paradigms differ.

Its reputation rests on that unifying ambition. The material assumes comfort with mathematical notation and abstract reasoning, and it rewards readers who work through examples rather than skim. Expect a substantial volume that treats programming as a subject with principles worth stating precisely.

How to read it

Approach the book in order. Each model builds on the previous one, and skipping ahead weakens the comparisons that give the argument its force. Keep the formal definitions nearby and translate them into small programs as you go; the abstractions become concrete only when exercised.

The density is real. Budget time for the conceptual chapters and treat the exercises as part of the text. Readers who prefer learning from running code should pair the reading with hands-on work in the language the book uses, since the prose alone can feel remote from practice.

Who it suits

This suits computer science students, language designers, and experienced programmers who want a principled map of programming paradigms. It will appeal to readers who enjoy formal definitions and comparative frameworks, and to instructors seeking a coherent course structure. Programmers looking for a fast practical guide to a single language should look elsewhere.

Reading considerations

The book's language choices and tooling reflect the period in which it was written, so some practical details may feel dated even where the concepts remain sound. The formal style will deter readers without mathematical patience. Pagination and supporting materials can differ between printings, so check which one you have, and test whether the abstraction-first method matches how you actually learn.

Follow the HN conversation

70 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.

Search HN comments about this book ↗

Explore videos on the same subject ↗

Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.