diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1,13 +1,13 @@ # chrysanthemum -chrysanthemum is a simple language with a type system, initially written as a term project for CPSC 539. +chrysanthemum is a simple language with a complex type system, initially written as a term project for CPSC 539. It implements a number of features from the excellent *Types and Programming Languages*, including: - The simply typed lambda calculus - Bidirectional type checking and subtyping support - A somewhat complex type system: including support for: - `unit`, `bool`, `int`, `nat`, `float`, `str`, - `struct`, `tuple`, `union`, `list`, `array`, `slice`, - - `empty`, `error` + - `interface`, `empty`, `error` ## todo @@ -17,6 +17,7 @@ It implements a number of features from the excellent *Types and Programming Lan - [x] bidirectional typechecking: implement `infer` and `check` - [x] extend to additional basic types: refactor `Term` - [x] extend to complex types: improve `subtype` +- [x] meet my original standards: implement `interface` - [ ] make complex types useful: implement `access` - [ ] type classes: implement `monomorphize` - [ ] simple effects: extend `ast` @@ -39,9 +40,10 @@ test/ # various tests ## bibliography -- [TAPL](https://www.cis.upenn.edu/~bcpierce/tapl/) +- [Types and Programming Languages](https://www.cis.upenn.edu/~bcpierce/tapl/) +- [Advanced Topics in Types and Programming Languages](https://www.cis.upenn.edu/~bcpierce/attapl/) - [Bidirectional Typing Rules: A Tutorial](https://www.davidchristiansen.dk/tutorials/bidirectional.pdf) - [Bidirectional Typechecking](https://research.cs.queensu.ca/home/jana/bitype.pdf) -- [Typechecking for Higher-Rank Polymorphism](https://arxiv.org/pdf/1306.6032.pdf) - [Bidirectional Type Class Instances](https://arxiv.org/pdf/1906.12242.pdf) +- [Typechecking for Higher-Rank Polymorphism](https://arxiv.org/pdf/1306.6032.pdf) - [How to make ad-hoc polymorphism less ad-hoc](https://dl.acm.org/doi/pdf/10.1145/75277.75283) |