Principles of Programming Languages (1997) [pdf]
cs.nott.ac.uk
cs.nott.ac.uk
A lot of toy Scheme implementations omit call/cc for instance because it can be hard to reason about and do correctly, whereas following the spec made it really easy.
For example, if you able to capture what the meaning of a programming language is, then could you please demonstrate by communicating what "the meaning of the programming language" C is, for instance? This appears to be a nonsensical combination of words, as I do not recognise a programming language as having an intrinsic meaning?
Some other resources for people who find that this piques their interest and that they want to go deeper:
* Formal Reasoning About Programs ("FRAP") by Adam Chlipala - available for free here: http://adam.chlipala.net/frap/. Forms the basis for 6.822 at MIT, and comes with an accompanying Coq formalisation (as well as psets in Coq).
* The Formal Semantics of Programming Languages: An Introduction by Glynn Winskel.
* Essentials of Programming Languages by Friedman and Wand http://eopl3.com/
It's quite accessible and has an emphasis on executable implementations. Covers quite a wide variety of paradigms, FP, FP with mutation, type checking, type inference, and objects and classes.
* Concrete Semantics by Nipkow and Klein http://concrete-semantics.org/, which is also an introduction to the Isabelle/HOL proof assistant and formalizes all of the PL content in Isabelle
There's also:
* Semantics with Applications: An Appetizer by Nielson and Nielson https://www.springer.com/gp/book/9781846286919, apparently a newer edition of an older book I liked and which used to be available as a free PDF, but the link from my browser history is now broken
2017 (1 comment) https://news.ycombinator.com/item?id=13575213
The pdf is marked 2016 but probably dates from much earlier, so maybe it's best not to put a year in the title.
The Hugs 1.3 manual is dated August 1996. Hugs 1.4 is from 1997. And then came Hugs98.
What's interesting is how many things we can now intuitively take for granted, but for each idea someone had to suffer and make it real. Their primary barrier was people via communication and getting traction.