Software Designer Topics 02: Compilation Principles