Concrete Semantics
by Tobias Nipkow, Gerwin Klein · first published 2014
80% recommend20% neutral
Part I of this book is a practical introduction to working with the Isabelle proof assistant. It teaches you how to write functional programs and inductive definitions and how to prove properties about them in Isabelle’s structured proof language. Part II is an introduction to the semantics of imperative languages with an emphasis on applications like compilers and program analysers. The distinguishing feature is that all the mathematics has been formalised in Isabelle and much of it is executable. Part I focusses on the details of proofs in Isabelle; Part II can be read even without familiari
Affiliate links. As an Amazon Associate I earn from qualifying purchases.
Another good one is: * 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…
on “Principles of Programming Languages (1997) [pdf]” ↗…* http://www.cs.man.ac.uk/~pt/Practical_Foundations/ * https://www.mta.ca/~rrosebru/setsformath/ * https://github.com/ademinn/ttfv/blob/master/2006.%20Sorensen... * http://www21.in.tum.de/~nipkow/Concrete-Semantics/ * http://adam.chlipala.net/frap/ * https://softwarefoundations.cis.upenn.edu/
on “Ask HN: How to self-study mathematics from the undergrad through graduate level?” ↗…The other 3 are classics, but much more dense (e.g. the Nielsons book requires some decent abstract algebra background): * Software Foundations (Pierce): https://softwarefoundations.cis.upenn.edu/ * Concrete Semantics (Nipkow): http://www21.in.tum.de/~nipkow/Concrete-Semantics/ * FRAP (Chlipala): http://adam.chlipala.net/frap/ * Model checking (Katoen): https://mitpress.mit.edu/books/principles-model-checking *…
on “Why Don't People Use Formal Methods?” ↗T. Nipkow, G. Klein, Concrete Semantics. http://concrete-semantics.org/ B. C. Pierce et al, Software Foundations. https://softwarefoundations.cis.upenn.edu/
on “MIT 18.404J – Theory of Computation [video]” ↗…compiler written in Ocaml) can't. Simplifying a bit, bootstrapping lowers the trusted computing base. Maybe Leroy's [3, 4] are good starting point for learning about this field. [1] T. Nipkow, G. Klein, Concrete Semantics. http://www.concrete-semantics.org/ [2] A. Chlipala, A verified compiler for an impure functional language. http://adam.chlipala.net/papers/ImpurePOPL10 [3] X. Leroy, Verifying a compiler: Why? How?…
on “CakeML – A Verified Implementation of ML” ↗