-
Notifications
You must be signed in to change notification settings - Fork 0
The "Good for the Soul" Vault
JMYoung edited this page Jul 16, 2018
·
7 revisions
Eric and Martin continually drop statements like ""x" is a great exercise", or "you should do "x" at least once in your life!", or "Wow "x" would make a great paper". This page serves as a running list and one-stop shop for any student looking for good practice projects.
- Implement Lambda Calculus
- Implement your own simply typed lambda calculus, and play with the representation
- Convert a big step semantics to a small step semantics and then evaluate different evaluation strategies: applicative order evaluation vs. normal order evaluation.
- Parse inference rules and add parenthesis. Stretch your muscles by figuring out the scoping and precedence of the operations.
- Go look at haskell types, and write the actual proper type e.g. [a] is really forall a.... which translates to a function that goes from a type to a type i.e. a type constructor.
- Read through "Multiple Facets for Dynamic Information Flow" (we read on Feb 14, 2018) and show its equivalence to choice calculus, and then show how the system in that paper can be extended to ternary choices easily with the choice calculus.
- Survey of SMT solver applications in Programming Languages