Modern Compiler Implementation in Java: Basic Techniques