Below is just a "table of contents" for the lecture.
This lecture we will focus on the following subset of the full AFP course learning outcomes:
- DSL: design embedded domain specific languages
- DSL.Concepts: (abstract) syntax, semantics, ...
- DSL.Implement: implement EDSLs in Haskell (as combinator libraries)
- Types: read, understand and extend Haskell programs which use advanced type system features
- Types.Class: type classes, newtypes, deriving, ...
- Expl: explain and discuss the above topics
- Different kinds of operations
- constructor functions, combinators, run functions
- Implementation styles
- Shallow: representation given by the semantics
- Deep: representation given by the syntax
- Remember
- Compositionality
- Abstraction