a simple compiler with only three components,