Materials
There are various materials that may be useful to know about for this class.
1 Development Environment
The practical compononents of this class, at least to start, will be completed using OCaml.
1.1 OCaml
It is recommend to follow the official OCaml installation instructions to get up and running with OCaml. (Be sure to follow all the instructions on that page, including installing Dune and configuring your favorite editor to support OCaml.)
This class requires an OCaml version of at least 4.12. If you only just installed OCaml, you should be good to go. However, if you already had an installation of OCaml then you’ll want to check ocaml –version to see what your version is. If it’s lower than 4.12, you should create a new switch and install the necessary packages:
$ opam switch create 4.12.1 |
$ opam install dune utop ocaml-lsp-server merlin ounit ounit2 |
1.2 Camlrack
We will be using a custom library for writing our parsers, called Camlrack. You will need to install the ppxlib dependency, then clone the Camlrack repository and install it locally with dune:
$ opam install ppxlib |
$ cd /path/to/where/you/put/repositories |
$ git clone https://github.com/pdarragh/camlrack.git |
$ cd camlrack |
$ dune build @install |
$ dune install |
2 Textbooks
This course has no required textbook, but there are some books that can be used for reference or inspiration:
Programming Languages: Application and Interpretation by Shriram Krishnamurthi.
Types and Programming Languages by Benjamin C. Pierce.
Semantics Engineering with PLT Redex by Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt.