For learning compiler design