[HN Gopher] Essentials of Programming Languages
       ___________________________________________________________________
        
       Essentials of Programming Languages
        
       Author : gjvc
       Score  : 98 points
       Date   : 2020-08-30 18:10 UTC (4 hours ago)
        
 (HTM) web link (eopl3.com)
 (TXT) w3m dump (eopl3.com)
        
       | zelphirkalt wrote:
       | The MIT Press page is a 404 unfortunately.
        
         | CalChris wrote:
         | The book is 2008.
        
           | zelphirkalt wrote:
           | Does this mean I cannot expect MIT Press to keep pages for a
           | touch older book alive or the page of the book to link to the
           | correct MIT Press page?
        
         | mitchbob wrote:
         | This works: https://mitpress.mit.edu/books/essentials-
         | programming-langua...
        
       | kesava wrote:
       | Dr.Racket has a `#lang eopl` to support the second/third
       | editions: https://docs.racket-lang.org/eopl/index.html The first
       | edition seems to build a tower of abstractions gradually, than
       | directly jumping into the deep end of the pool. But getting code
       | from first edition to run on Dr.Racket is quite a trouble. Can
       | someone well versed with Racket macros, please write `define-
       | record` to work with `#lang eopl`? I can figure out the macros
       | with some effort, but cant quite figure out how to extend an
       | existing lang.
        
         | soegaard wrote:
         | Just tested and `(require foo)` works fine in `#lang eopl`.
         | That is, if you define `define-macro` and put it in package,
         | say, `eopl1`, then you can use                   #lang eopl
         | (require eopl1)
        
       | ExcavateGrandMa wrote:
       | I wanted to learn more about EOPL 2, an HTML page appeared and
       | then browser refresh'd to 404... it was surprising :D
       | 
       | What kind of programming language is used in the book? What the
       | summary?
        
       | thesizeofa wrote:
       | isnt gjvc the dude who frequents #freebsd on efnet?
        
       | waynesonfire wrote:
       | table of contents would be nice.
        
         | fernly wrote:
         | Not quite the same but the preface lists the chapter topics.
         | 
         | http://eopl3.com/preface.html
        
         | [deleted]
        
       | systems wrote:
       | between this book and Programming Language Pragmatics ( Michael
       | Scott ), which is the better book ? (the are both very expensive,
       | I can only afford one, if there is another less expensive and
       | just as good or better option, please recommend)
        
         | SanderSantema wrote:
         | You might want to google for Library Genesis and see if you can
         | find them there to compare these and buy one of them
         | afterwards.
        
         | kesava wrote:
         | A used first edition of EOPL is way cheaper and far better in
         | developing the subject matter than the latter versions. There
         | is even a chapter on Type checking and interference:
         | ftp://ftp.cs.indiana.edu/pub/techreports/TR491.pdf
        
           | abecedarius wrote:
           | The way I'd put it is that later editions are more focused on
           | classroom use, while the first edition felt closer to my
           | interests as a hacker. The later editions do have many
           | improvements like a nicer development of the CPS
           | transformation, but they also dropped the chapter on
           | compiling by transforming an interpreter, and so on.
        
         | jasperry wrote:
         | Programming Language Pragmatics is much more a reference book,
         | to dip into for a not-too-theoretical discussion of a broad
         | range of PL topics. EOPL is all about understanding
         | fundamentals by implementing interpreters, with code that
         | builds through the book. I use both, but I would choose EOPL as
         | the book for a "proper" course in programming languages.
        
       | saxonww wrote:
       | The MIT Press site implies there might be a Kindle edition for
       | this, but the Amazon store page doesn't mention one. It also
       | offers etextbook rental, but the link goes to a page with no
       | options for that afaict. I see where there are epubs offered
       | online for prior editions, but they look sketchy. Is this
       | textbook legitimately available in any ebook format?
        
         | jagged-chisel wrote:
         | I get a 404 on the MIT Press link. What link did you use?
         | 
         | Edit: Visiting MIT Press and searching finds this[1], and I
         | also cannot find a single digital option for this book.
         | 
         | 1 - https://mitpress.mit.edu/books/essentials-programming-
         | langua...
        
       | jasperry wrote:
       | I was a TA for a programming languages course taught using this
       | book, and it was one of the most enlightening experiences I've
       | had: Implementing interpreters in Scheme to learn about
       | recursion, environments, closures, objects, continuations. I
       | think of it kind of as the dual of a course on developing a
       | compiler for a static languages.
        
         | pcstl wrote:
         | Do you know of any good courses on developing compilers for
         | static languages?
        
           | jasperry wrote:
           | I think a course like that is pretty standard in a lot of
           | larger CS programs. I saw that Stanford has a free online
           | course: https://online.stanford.edu/courses/soe-
           | ycscs1-compilers
           | 
           | I would be partial to any course that uses Appel's "Modern
           | Compiler Implementation in ML", though that book is getting
           | pretty old now.
        
         | ipnon wrote:
         | Studying programming languages has the same side effects as
         | studying AI. You have to learn some broadly applicable
         | programming tricks to get your programs running. I see closures
         | everywhere after writing my own programming language. Someone
         | might use backtracking in a new domain after studying AI.
        
           | rightbyte wrote:
           | One revelation I got from programming a hobby language was
           | that many language feutures seems accidental.
        
             | throwaway_pdp09 wrote:
             | Could you elaborate please?
        
               | rightbyte wrote:
               | It's hard to explain but it was a feeling I got. It felt
               | like the language fell into place on it's own when you
               | added stuff and not in a way other code projects do.
               | Parsing with flex/bison "naturally" converged syntax
               | towards other languages because other languages are made
               | so they are easy to write grammar for etc. Whether an
               | "if(exp)" introduces a scope of is own is just down to
               | where you happen to put the push_scope() call, and so on.
               | 
               | I wonder how much of C that was just "that is how it
               | happened to turn out".
        
       ___________________________________________________________________
       (page generated 2020-08-30 23:00 UTC)