
Principles of program design
by M. A. Jackson · first published 1975
13mentions
4recommended by
7HN commenters
2011–2024first – last mentioned
57% recommend43% neutral
This book is about programming for data processing applications, and its purpose is to present a coherent method and procedure for designing systems, programs, and components. The main emphasis is on the structure: on the dissection of a problem into parts and the arrangement of those parts to form a solution.
Affiliate links. As an Amazon Associate I earn from qualifying purchases.

…data science, nor I'm an experienced programmer. But many of the CS pioneers dealt with the issue of reading input, processing it, and giving a meaningful output. Recently I've stumbled upon Jackson's Principles of Program Design and it has really helped me in writing a parser. IMHO general understanding of structuring a program goes a long way than arbitrary design patterns. I now am a propenent of modular programming. For me…
on “From design patterns to category theory” ↗<rather late book report> Principles of Program Design, Michael Jackson. I found a very good copy with free shipping for less than $5.00. It is absolutely brilliant. It is a conventional technical book style presentation of the many software engineering principles…
on “Ask HN: What are you reading?” ↗M.A. Jackson's Principles of Program Design (1975) uses examples in COBOL, but some of its takeaways are * A program should correspond 1:1 to its design. "Program structure [should] match the problem structure." * Avoid flowcharts (flow of control)…
on “Ask HN: How can I practice designing data structures well?” ↗…recommend for someone who wants to broden his understanding about algorithms and learn programming concepts as well as ways to build solutions to problems? My answer: Hey! I recommend, Michael A Jackson, Principles of Program Design, JSP. Mr Jackson has literally "been behind my chair all these years…". Had never been able to stay in the programming profession if I did not have this great support for my thoughts in a difficult profession. Thus,…
on “Jackson Structured Programming” ↗…best books you would recommend for someone who wants to broden his understanding about algorithms and learn programming concepts as well as ways to build solutions to problems?" My answer:I recommend Principles of Program Design, JSP. Michael J has literally "been behind my chair all these years". Had never been able to stay in the programming profession if I did not have this great support for my thoughts in a difficult profession,…
on “Jackson Structured Programming” ↗> In Chapter 3 of Principles of Program Design[1] Jackson presents two versions of a program, one designed using JSP, the other using the traditional single-loop structure. I think I've come back around to seeing some merit in the "traditional" version.…
on “Jackson structured programming” ↗…architecture is one reason why banking still (sometimes) uses COBOL...the software was written around abstractions that address the timelines involved. For what it's worth, Michael (not that one) Jackson's Principles of Program Design is where I picked up account balance as a long running process.
on “Ask HN: How do you handle long-running workflows at your company?” ↗…https://en.m.wikipedia.org/wiki/Jackson_structured_programmi... The wiki article just hints about using coroutines under certain circumstances; so called “structure clash”. The program inversion technique is fully described in Jackson’s book Principles of Program Design, 1975.
on “Coroutines in C” ↗…course, some programmers who draw flowcharts do produce well structured programs; but their success is in spite of the technique, not because of it. Flowcharts tend to conceal structure... Principles of Program Design. M.A. Jackson (1975)
on “Show HN: Knotend – a keyboard-driven flowchart editor” ↗…Then we aren't left waiting for UI DOM stuff when we verify the model. The latter can happen separately, and extremely quickly. See also Data-Oriented Programming. Sharvit, Yehonathan. Manning 2022. Principles of Program Design. M.A. Jackson. 1975. SAM Pattern. Jean-Jacques Dubray. https://sam.js.org/
on “Waterloo Style” ↗…operations to create a more powerful machine, and the operations of that machine to create one still more powerful, until I have a machine on which my problem can be easily solved." -- Jackson, M.A. Principles of Program Design (1975)
on “Write code top-down” ↗…bad idea to teach the details of any programming language in a course. Nobody can predict which programming language you will use. Therefore, time in a course is better spent on studying the general principles of program design rather than the arcane principles of any given programming language."
on “How to Design Classes (in Ruby, Python, Java or any OOP)” ↗A glut of very affordable, yet relevant, books from days of yore--many scanned, some still retained as physical treasures--marks the nascent field of computer science. I read and re-read parts of "Principles of Program Design" (1975) and type little C programs from King's "Modern C" (1996). The new wonders may come from familiarity with bare metal, algorithms, and the desire to build the "virtual machine" to solve each problem.…
on “Ted Nelson on What Modern Programmers Can Learn from the Past (2018)” ↗