Ответ 1
Существует хороший учебник по codeproject в разделе "Шаблоны компилятора". В последнее время вы можете даже просто "шаблоны компилятора Google".
http://www.codeproject.com/Articles/286121/Compiler-Patterns
В статье рассматриваются большинство аспектов создания простого компилятора (back-end, BNF и шаблонов, используемых для реализации различных правил BNF), но он не слишком тяжел в теории или даже о том, почему рекурсивный спуск-компилятор работает для преобразования языкового ввода в код.