Mastering Compiler Design: Basics to Advanced Techniques