Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Go to file
Matthew Pickering 3b0358ebec Rewrite Makefile
* New trigger `pdf`: Builds all chapters into a single pdf.
2015-01-08 02:48:20 +00:00
chapter1 initial commit 2015-01-05 02:54:15 -05:00
chapter2 initial commit 2015-01-05 02:54:15 -05:00
chapter3 Remove unused var from calculator grammar. 2015-01-07 23:38:08 +06:00
chapter4 source code block for locally named lambdas 2015-01-06 18:27:45 -05:00
chapter5 added forgotten phoas.hs code 2015-01-06 18:16:01 -05:00
chapter6 added forgotten phoas.hs code 2015-01-06 18:16:01 -05:00
chapter7 PolyML -> Poly 2015-01-07 14:26:12 -05:00
chapter8 initial commit 2015-01-05 02:54:15 -05:00
chapter9 added forgotten phoas.hs code 2015-01-06 18:16:01 -05:00
css added markdown source 2015-01-06 10:09:41 -05:00
img recommit cover.png 2015-01-07 08:41:21 -05:00
js restore nav.js, make js directory 2015-01-06 18:12:50 -05:00
misc remove redundent images 2015-01-07 08:40:38 -05:00
.gitignore initial commit 2015-01-05 02:54:15 -05:00
000_introduction.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
001_basics.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
002_parsers.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
003_lambda_calculus.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
004_type_systems.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
005_evaluation.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
006_hindley_milner.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
007_path.md Rename chapter files so that *.md lists them in the correct order. 2015-01-08 02:48:19 +00:00
atom.xml added markdown source 2015-01-06 10:09:41 -05:00
contributing.md Use aligned environment instead of align* 2015-01-08 02:46:18 +00:00
includes.hs Rewrite includes.hs 2015-01-08 02:48:19 +00:00
index.md tutorial.md -> index.md 2015-01-06 11:18:14 -05:00
latex_macros Rewrite includes.hs 2015-01-08 02:48:19 +00:00
LICENSE initial commit 2015-01-05 02:54:15 -05:00
Makefile Rewrite Makefile 2015-01-08 02:48:20 +00:00
page.tmpl restore nav.js, make js directory 2015-01-06 18:12:50 -05:00
README.md remove redundent images 2015-01-07 08:40:38 -05:00


Building a modern functional compiler from first principles.

Stephen Diehl

Releases

December

January

February

  • Chapter 9: Extended Parser
  • Chapter 10: Custom Datatypes
  • Chapter 11: Renamer
  • Chapter 12: Pattern Matching & Desugaring

March

  • Chapter 13: System-F
  • Chapter 14: Type Classes
  • Chapter 15: Core Language

April

  • Chapter 16: Kinds
  • Chapter 17: Haskell Type Checker
  • Chapter 18: Core Interpreter
  • Chapter 19: Prelude

May

  • Chapter 20: Design of Lazy Evaluation
  • Chapter 21: STG

June

  • Chapter 22: Compilation
  • Chapter 23: Design of the Runtime

July

  • Chapter 24: Imp
  • Chapter 25: Code Generation ( C )
  • Chapter 26: Code Generation ( LLVM )

August

  • Chapter 27: Row Polymorphism & Effect Typing
  • Chapter 28: Future Work

Contributing

Any and all contributions are always welcome. As always, I rely on the perpetual kindness and goodwill of Haskellers (like you!) to help correct grammar, clarify, and fix errors.

License

This written work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You may reproduce and edit this work with attribution for all non-commercial purposes.

The included source is released under the terms of the MIT License.