A maioria dos livros sobre compiladores aborda o assunto sob um ponto de vista genérico, com evidente embasamento teórico, fornecendo uma visão geral das técnicas e ferramentas utilizadas para a construção de um compilador.
Este livro tem um enfoque diferenciado, mostrando em detalhes cada uma das etapas do desenvolvimento de um compilador, utilizando ferramentas Java e técnicas específicas. Pode ser utilizado como texto de apoio em cursos de construção de compiladores, conferindo-lhes um caráter mais prático.
Também atende aos profissionais de desenvolvimento de software que necessitam aperfeiçoar ou atualizar seus conhecimentos, uma vez que as informações aqui contidas podem ser utilizadas no desenvolvimento de diversos tipos de aplicações, não se limitando apenas à área acadêmica nem à construção de compiladores propriamente dita.
Cada capítulo do livro apresenta uma etapa do processo de compilação, discutindo as técnicas e ferramentas para a implementação de um compilador para uma linguagem orientada a objetos denominada X++, utilizada como estudo de caso. Não somente o compilador é criado com ferramental baseado na linguagem Java, mas também tem como plataforma-alvo a Máquina Virtual Java (JVM).
Tópicos abordados no livro:
- Introdução à compilação.
- Descrição da linguagem X++, utilizada como estudo de caso. Apresenta conceitos básicos sobre linguagens e como defini-las.
- Análise léxica. Mostra como se utiliza a ferramenta JavaCC para criar um analisador léxico para a linguagem X++.
- Análise sintática. Mostra como construir um analisador sintático para X++ utilizando JavaCC.
- Árvore sintática. Mostra como construir a árvore sintática usando o JavaCC e como utilizá-la nas etapas seguintes.
- Tabela de símbolos e análise semântica. Mostra como implementar uma tabela de símbolos utilizada na checagem de tipos e validação semântica.
- Geração de código. Mostra como utilizar a ferramenta Jasmin para gerar o código-objeto (bytecode) Java.
Informática e Tecnologia