Send us Fan Mail In this episode of The Agile Software Engineering Deep Dive, Alessandro Guida continues the two-part journey into compiler theory. Part 1 focused on BNF, syntax, and grammar. Part 2 moves into compiler thinking itself: LEX, YACC, compilers, interpreters, syntax trees, the Dragon Book, and the evolution from classic compiler pipelines to modern development ecosystems. For many software engineers who studied computer science in earlier decades, compiler theory was part of the foundation. It taught us how programming languages are defined, parsed, checked, transformed, optimized, and executed. Today, most developers are not writing compilers by hand. But the ideas behind compilers are still everywhere: in build systems, query engines, static analyzers, IDEs, code generators, rule engines, security scanners, infrastructure-as-code tools, and AI coding assistants. This episode explores why compiler thinking still matters when we design APIs, configuration formats, workflow definitions, domain-specific languages, rule systems, and AI-assisted development tools. It also revisits the classic distinction between compilers and interpreters, explains how modern compilers have evolved, and reflects on the connection between programming languages and AI prompts. This is not a nostalgic look back at old tools. It is a reminder that when human intent must become reliable machine action, the old lessons of compiler theory are still surprisingly modern. Support the show This Podcast is an audio version of the written Agile Software Engineering newsletter. If you want to go deeper, don't forget to subscribe the newsletter too.