notes on custom compiler design