9 ms·
Essentials of Programming Languages
- waynesonfire 6y agotable of contents would be nice.
- deleted 6y ago[deleted]
- fernly 6y agoNot quite the same but the preface lists the chapter topics. http://eopl3.com/preface.html http://eopl3.com/preface.html
- kesava 6y agoDr.Racket has a `#lang eopl` to support the second/third editions: https://docs.racket-lang.org/eopl/index.html 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 6y agoJust 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)
- deleted 6y ago[deleted]
- kesava 6y agoThank you for that pointer. I have been trying a few approaches but hit a serious wall. I have a write up on what I tried so far. Could you please take a look and give me some pointers/feedback? Thanks in advance! https://gist.github.com/kesava/ec1518495387928d35ec9fc5a764ddbf https://gist.github.com/kesava/ec1518495387928d35ec9fc5a764d...
- jasperry 6y agoI 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.
- ipnon 6y agoStudying 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 6y agoOne revelation I got from programming a hobby language was that many language feutures seems accidental.
- throwaway_pdp09 6y agoCould you elaborate please?
- rightbyte 6y agoIt'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".
- coldtea 6y ago
- ExcavateGrandMa 6y agoI 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?
- systems 6y agobetween 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 6y agoYou might want to google for Library Genesis and see if you can find them there to compare these and buy one of them afterwards.
- jasperry 6y agoProgramming 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.
- kesava 6y agoA 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 6y agoThe 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.
- bmitc 6y agoThis is curious to me. Because I first bought the 3rd and latest edition of this book, as you do, but then I read reviews that the 2nd edition was superior. So I picked up the 2nd edition since I saw it for a cheap price used. Now, here I am reading that the 1st edition is better. Haha. What would you recommend for someone to start with regarding this particular book? (I haven't gone through the book yet.) Is there a technical reason why material was changed so drastically, or is it more along the lines of streamlining things for a university course? Are the things left out in the subsequent editions interesting but not useful or are they interesting and useful but not conducive to fitting into a one or two semester course sequence?
- zelphirkalt 6y agoThe MIT Press page is a 404 unfortunately.
- CalChris 6y agoThe book is 2008.
- zelphirkalt 6y agoDoes 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 6y agoThis works: https://mitpress.mit.edu/books/essentials-programming-languages-third-edition https://mitpress.mit.edu/books/essentials-programming-langua...
- saxonww 6y agoThe 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 6y agoI 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-languages-third-edition https://mitpress.mit.edu/books/essentials-programming-langua...
- thesizeofa 6y agoisnt gjvc the dude who frequents #freebsd on efnet?
- siraben 6y agoI read EOPL independently in high school, and I thoroughly enjoyed it because it had a good balance between theory and practice. I would consider Types and Programming Languages to be theory-based, EOPL in the middle and SICP to be practice-based. (My personal order was SICP -> EOPL -> TAPL) It's a great exercise to implement[0] the languages from EOPL. I think it fits a lot better in a statically typed language like Haskell (the parsing can be done with parser combinators), since they essentially have to re-create ADTs with macros in Scheme, when they could be easily embedded into the host language. The effectful interpreters could have their effects encapsulated in a monad transformer stack. [0] https://github.com/siraben/eopl https://github.com/siraben/eopl
- dependenttypes 6y agoI would also suggest "Concepts, Techniques, and Models of Computer Programming", "How to Design Programs" (second edition: https://htdp.org/2020-8-1/Book/index.html https://htdp.org/2020-8-1/Book/index.html), and the books in "The little X" series (such as The little schemer).
- kgoutham93 6y agoApart from Coursera's course "programming languages", are there any other courses which teach interesting concepts from different programming languages instead of zeroing on 1 language.