A maior parte dos compiladores existentes para as linguagens de programação
mais populares são incríveis e funcionais caixas-preta que traduzem código fonte
armazenado em arquivos para programas executáveis por uma determinada arquitetura
de computador, seja ela real ou virtual. Alguns compiladores nem tão incríveis e
outros nem tão funcionais, mas uma coisa é certa, não é possível ensiná-los a fazer
muito mais. E é esse o estado da arte de uma das mais fundamentais ferramentas
ao ofício de programador. Irônico de se pensar pois dada a oportunidade e
correta dosagem de cafeína, qualquer programador experiente
terá muito a dizer sobre as idades de seus programas e projetos, entre elas,
a tal da extensibilidade.

Nesta série de artigos serão explorados os três mecanismos principais de extensibilidade
embutidos em boo, mais especificamente:

	* como estender e alterar o processo de compilação utilizando pipelines personalizadas;
	* como criar micro geradores de código pela definição de atributos ativos;
	* como adicionar novos tipos de blocos e construções à linguagem através da
	definição de macros;
