Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of A discipline of programming

    A discipline of programming

    Edsger Wybe Dijkstra · 1976

    Executional abstraction; The role of programming languages; States and their characterization; The characterization of semantics; The semantic characterization of a programming language; Two theorems; On the design of properly terminating; Euclid's algorithm revisited; The formal treatment of some small examples; The linear search theorem; The problem of the next permutation.

    Programming
    Open LibraryAmazon
    Stats for nerds
    16recommend
    51mentions
    30people
    2009–2025years
    59% recommend41% neutral

    Mentions per year

    200920112013201520172019202120232025

    What Hacker News says

    1. wglbFeb 2025
      A Discipline of Programming, Dijkstra

      The architecture of Concurrent Programs, Per Brinch Hansen

      Literate programming--see http://www.literateprogramming.com/

      I don't recommend Design Patterns, as these are elements needed if your programming language is inadequate.

      There are many more.

      thread
    2. jasonwatkinspdxDec 2023
      Doh! Yeah that was a typo. Sorry I can't edit now. Thanks for the correction.

      Even though I don't use any of his techniques, Dijkstra's "A Discipline of Programming" did affect the way I see things considerably.

      thread
    3. User23Dec 2023
      Well it's not popular (even though it ought to be), but Edsger Dijkstra's A Discipline of Programming is an approachable and informal (by the author's standards) look at solving non-trivial problems in a provably correct way. In fact the entire EWD archive[1] can be arranged into a course pretty readily, although you'll definitely want to skim or skip large chunks of it. Also some of the papers are just acerbic observations on life, which some people like and some don't.

      And there's it's big brother Predicate Calculus and Program Semantics by Dijkstra and Scholten that more rigorously formalizes the same approach.

      Dafny[2] is one approach out of Microsoft Research that attempts to provide automated tooling around some of those concepts.

      All of the above are excellent places to start if you're interested in learning how to write better code with the imperative languages that you're actually going to use professionally.

      [1] https://www.cs.utexas.edu/users/EWD/

      [2] https://dafny.org/

      thread
    4. User23Jan 2023
      A Discipline of Programming by Edsger Dijkstra. It’s an approachable introduction to a frankly under-taught approach to programming.

      Being able to apply mathematical reasoning to programming is perhaps the main reason to use a functional approach. But mathematical reasoning isn’t restricted to functional style programs! All imperative programs can be described by purely functional mappings between points in a program state space with each in scope variable naming a dimension.

      thread
    5. rramadassDec 2022
      Two books that i can recommend;

      1) A Method of Programming.

      2) A Discipline of Programming.

      Browse the EWDs and read those whose titles interest you. My favourites are those dealing with Program Correctness and Languages.

      Note that understanding Dijkstra can be hard; so don't be discouraged if you don't "get" something at the first read.

      thread
    6. User23Sep 2022
      Dijkstra’s A Discipline of Programming and its spiritual successor that he did with Scholten Predicate Calculus and Program Semantics. They changed how I think about programming.
      thread

    Related

    Cover of A method of programming
    2015–2023

    A method of programming

    Edsger Wybe Dijkstra
    2 recommend · 4
    Cover of Predicate calculus and program semantics
    2017–2026

    Predicate calculus and program semantics

    Edsger Wybe Dijkstra
    1 recommend · 15
    Cover of Compiler construction for digital computers
    2015–2026

    Compiler construction for digital computers

    David Gries
    1 recommend · 7
    Structured ProgrammingO. Dahl
    2007–2026

    Structured Programming

    O. Dahl
    3 recommend · 12
    Cover of Programming on Purpose
    2010–2026

    Programming on Purpose

    P. J. Plauger
    7 recommend · 9
    Cover of Advanced programming language design
    2015–2026

    Advanced programming language design

    Raphael A. Finkel
    2 recommend · 7
    Cover of Object-oriented programming
    2010–2026

    Object-oriented programming

    Peter Coad
    3 recommend · 5
    Cover of Low-Level Programming
    2019–2026

    Low-Level Programming

    Igor Zhirkov
    3 recommend · 8