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 Essentials of programming languages

    Essentials of programming languages

    Daniel P. Friedman · 1992

    A new edition of a textbook that provides students with a deep, working understanding of the essential concepts of programming languages, completely revised, with significant new material. This book provides students with a deep, working understanding of the essential concepts of programming languages. Most of these essentials relate to the semantics, or meaning, of program elements, and the text uses interpreters (short programs that directly analyze an abstract representation of the program text) to express the semantics of many essential language elements in a way that is both clear and executable. The approach is both analytical and hands-on. The book provides views of programming languages using widely varying levels of abstraction, maintaining a clear connection between the high-level and low-level views. Exercises are a vital part of the text and are scattered throughout; the text explains the key concepts, and the exercises explore alternative designs and other issues. The complete Scheme code for all the interpreters and analyzers in the book can be found online through The MIT Press web site. For this new edition, each chapter has been revised and many new exercises have been added. Significant additions have been made to the text, including completely new chapters on modules and continuation-passing style. Essentials of Programming Languages can be used for both graduate and undergraduate courses, and for continuing education courses for programmers.

    ProgrammingComputer Science
    Open LibraryAmazon
    Stats for nerds
    43recommend
    76mentions
    48people
    2008–2026years
    84% recommend16% neutral

    Mentions per year

    2008201020122014201620182020202220242026

    What Hacker News says

    1. JtsummersJul 2026
      Along with TAPL, I like Essentials of Programming Languages. It's an introductory text going through a series of interpreters each adding new language features and covering alternative ways to implement things or accomplish a goal (an example, it covers various methods of parameter passing like pass by reference or value and so on).
      thread
    2. JtsummersJun 2026
      I'm a fan of the structure used in Essentials of Compilation [1][2] and Writing a C Compiler [3]. If you want to start with interpreters, I like Essentials of Programming Languages [4]. I have to admit, as popular as Crafting Interpreters is on this site and others, I'm not a fan. Others seem to love it so it's worth a shot, and freely available.

      EOC and EOPL are a bit on the academic side, but, I think, they're highly approachable aside from the issues some people have with Scheme and Racket (the Python version of EOC would address that issue). Afterwards, I think the other, deeper and more academic texts on compilers become more approachable.

      [1] https://mitpress.mit.edu/9780262047760/essentials-of-compila... - Racket version, has an open access version

      [2] https://mitpress.mit.edu/9780262048248/essentials-of-compila... - Python version, has an open access version

      [3] https://nostarch.com/writing-c-compiler - Your choice of implementation language

      [4] https://mitpress.mit.edu/9780262062794/essentials-of-program... - Scheme, but works in Racket

      thread
    3. roadside_picnicAug 2025
      "Essential" in contexts like this typically means "for this topic, here's what would be considered a strong foundation without diving into the weeds".

      Friedman and Wand's Essentials of Programming Languages isn't 'essential' for everyone, even for programmers, it represents the 'essential' parts of programming language theory. If you read and understand that book you can have a serious conversation with anyone on that topic.

      Similarly Essential Statistical Inference would imply a book that teaches you everything you need to know about statistical inference to do meaningful work in that area.

      So the claim here is, assuming you want to understand Coding theory, then you'll be in a good place to discuss it after you read this book.

      thread
    4. amboo7Mar 2025
      Essentials of Programming Languages 1st ed. is special
      thread
    5. iainctduncanMar 2024
      Second edition of Friedman's Essentials of Programming Languages is very good for this. A tough read, but very good. The second edition is written in Scheme, I think the third changed? (I can't recall the details but I know when I was hunting for reading it was recommended to stick to the second as I was specifically looking for Scheme).

      https://www.librarything.com/work/347168

      thread
    6. noob_engApr 2023
      Most of us have started learning programming by fiddling with an editor and the language syntax. Those who continue to find joy in the process then goes on to build more stuff with it. This is analogous to using a chisel and hammer to carve out wood. First we learn to hold the chisel and hammer properly (similar to learning syntax). Only then can we carve out designs on wood (building substantial programs, small or large).

      But there comes a moment where after practising quite some time, a switch gets flipped inside our head and we start to see the tools we use (chisel or programming language) as an all powerful tool whose use is limited only by our imagination. We become so sure of our skill with the tool that it becomes almost second nature to us. We imagine new things that we can build and use our tools like butter.

      In programming this confidence building moment may come at different times for different people. For me it came after learning in deep about programming languages from Essentials of Programming Languages book: https://en.wikipedia.org/wiki/Essentials_of_Programming_Languages. It was a moment of euphoria for me.

      Later on I got a similar moment from studying CS:aPP: https://csapp.cs.cmu.edu/. But it was not as intense.

      What was yours?

      thread

    Related

    Cover of Types and Programming Languages
    2008–2026

    Types and Programming Languages

    Benjamin C. Pierce
    132 recommend · 321
    Cover of Design concepts in programming languages
    2009–2026

    Design concepts in programming languages

    Franklyn A. Turbak
    7 recommend · 11
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of Concepts, techniques, and models of computer programming
    2007–2026

    Concepts, techniques, and models of computer programming

    Peter Van Roy
    70 recommend · 133
    Cover of Structure and Interpretation of Computer Programs
    2007–2026

    Structure and Interpretation of Computer Programs

    Harold Abelson
    347 recommend · 761
    Cover of Abstraction and specification in program development
    2010–2023

    Abstraction and specification in program development

    Barbara Liskov
    4 recommend · 7
    Cover of Practical Foundations for Programming Languages
    2013–2026

    Practical Foundations for Programming Languages

    Robert Harper
    17 recommend · 34
    Cover of The seasoned schemer
    2007–2026

    The seasoned schemer

    Daniel P. Friedman
    33 recommend · 60