Mathematical-logic system based on functions| en.wikipedia.org
Programming paradigm based on applying and composing functions| en.wikipedia.org
In this post, we clean up our compiler.| danilafe.com
In this post, we extend our language with let/in expressions and lambda functions.| danilafe.com
In this post, we enable our compiler to understand polymorphic data types.| danilafe.com
In this post, we extend our compiler's typechecking algorithm to implement the Hindley-Milner type system, allowing for polymorphic functions.| danilafe.com
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.| danilafe.com
In this post, we enable our compiler to convert G-machine instructions to LLVM IR, which finally allows us to generate working executables.| danilafe.com
In this post, we allow our compiler to throw away invalid programs, detected using a monomorphic typechecking algorithm.| danilafe.com
In this post, we take a little break from pushing our compiler forward to make some improvements to the code we've written so far.| danilafe.com
In this post, we define the rules for a G-machine, the abstract machine that we will target with our compiler.| danilafe.com
In this post, we enable our compiler to convert programs written in our functional language to G-machine instructions.| danilafe.com
In this post, we implement the supporting code that will be shared between all executables our compiler will create.| danilafe.com
In this post, we tackle the first component of our compiler: tokenizing.| danilafe.com
In this post, we combine our compiler's tokenizer with a parser, allowing us to extract structure from input source code.| danilafe.com