Notes of compiler design