- Problem - Abstract syntax - Concrete syntax - Generate tree module - Write transfer code - Derive Compos and Eq