Classic compiler structure