Puesto que no todos los alumnos que se incorporan en este capítulo han leído los anteriores y no necesariamente conocen Perl, en la sección 33.1 comenzamos haciendo un breve repaso a como construir un módulo en Perl. Si quieres tener un conocimiento mas profundo lee el capítulo sobre módulos en [10].
La sección 33.2 describe las fases en las que -al menos conceptualmente- se divide un compilador. A continuación la sección 33.3 presenta la primera de dichas fases, el análisis léxico. En la sección 34.1 repasamos conceptos de análisis sintáctico que deberían ser familiares a cualquiera que haya seguido un curso en teoría de autómatas y lenguajes formales. Antes de comenzar a traducir es conveniente tener un esquema o estrategia de traducción para cada constructo sintáctico. La sección 33.7 introduce el concepto de esquema de traducción. La fase de análisis sintáctico consiste en la construcción del árbol de análisis a partir de la secuencia de unidades léxicas. Existen diversas estrategias para resolver esta fase. En la sección 33.6 introducimos la que posiblemente sea la mas sencilla de todas: el análisis descendente predictivo recursivo. En la sección 33.8 abordamos una estrategia para transformar ciertas gramáticas para las que dicho método no funciona.
Un analizador sintáctico implícitamente construye el árbol de análisis concreto. En muchas ocasiones resulta mas rentable trabajar con una forma simplificada (abstracta) del árbol que contiene la misma información que aquél. La sección 33.9 trata de la construcción de los árboles de análisis abstractos.