Conquer Compiler Complexity: Component-Based Language Implementation with Object-Oriented Syntax and Aspect-Oriented Semantics