Notes from my research for forest-lang, mostly in the form of links to reference later.
In order to find the optimal cost/benefit ratio, Wirth used a highly intuitive metric, the origin of which is unknown to me but that may very well be Wirth’s own invention. He used the compiler’s self-compilation speed as a measure of the compiler’s quality. Considering that Wirth’s compilers were written in the languages they compiled, and that compilers are substantial and non-trivial pieces of software in their own right, this introduced a highly practical benchmark that directly contested a compiler's complexity against its performance. Under the self- compilation speed benchmark, only those optimizations were allowed to be incorporated into a compiler that accelerated it by so much that the intrinsic cost of the new code addition was fully compensated.
- The Implementation of Functional Programming Languages
- An algorithm for optimal lambda calculus reduction
- Parsing: a timeline
- A typed, algebraic approach to parsing
- https://github.com/bellissimogiorno/nominal
- Programming with Abstract Data Types by Liskov & Zilles
- Existential quantifiers in abstract data types
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory
- Mathematical Logic in Computer Science
- Fused effect systems in Haskell
- Simple explanation of Hindley Milner
- Simple explanation of type unification
- Jan's proposal to add Row Types to GHC
- Type driven development in Idris
- A reckless introduction to Hindley-Milner type inference
- The Hindley-Milner Type Inference Algorithm
- Practical type inference for arbitrary-rank types
- "A Theory of Changes for Higher-Order Languages" by Cai, Gairrusso, Rendel and Ostermann. - found from https://github.com/paf31/purescript-firkin