Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CIÊNCIA DA COMPUTAÇÃO 
BACHARELADO 
Kelberson Abreu 
RA 3639635402 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
 
 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
COMPILADORES 
 
 
 
 
 
Trabalho apresentado à Universidade Anhanguera, como 
requisito parcial para a obtenção de média semestral nas 
disciplinas norteadoras do semestre letivo. 
 
Tutor (a): Fausto Rodrigo Toloi. 
 
 
 
 
 
 
 
CAMPESTRE - MG 
2026 
 
3 
 
Sumário 
1 Introdução. ................................................................................................. 4 
2 Objetivos. ................................................................................................... 4 
2.1 Objetivo Geral ............................................................................................................. 4 
2.2 Objetivos Específicos ................................................................................................. 4 
3 REFERENCIAL TEÓRICO ......................................................................... 4 
3.1 Compiladores ............................................................................................................. 4 
3.2 Análise Léxica ............................................................................................................. 5 
3.3 Expressões Regulares e Gramáticas ......................................................................... 5 
3.4 Ferramentas Utilizadas ............................................................................................... 5 
4 METODOLOGIA ......................................................................................... 5 
4.1 Infraestrutura Utilizada ............................................................................................... 6 
4.2 Procedimento 1 — Conhecimento e Instalação dos Softwares .................................. 6 
4.3 Procedimento 2 — Criação da Especificação Léxica ................................................. 6 
5 RESULTADOS E DISCUSSÃO .................................................................. 7 
6 CONCLUSÃO ............................................................................................. 7 
REFERÊNCIAS.............................................................................................. 8 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
 
1 Introdução. 
O presente portfólio tem como finalidade registrar e documentar as atividades realizadas 
durante as aulas práticas da disciplina de Compiladores, Unidade 1, Seção 1.3. A construção de 
compiladores é uma área fundamental da Ciência da Computação, pois envolve o processo de 
tradução de código escrito em linguagens de alto nível para linguagens executáveis por máquinas. 
Nesta etapa inicial, o objetivo central foi a familiarização com os ambientes e ferramentas de 
desenvolvimento que serão utilizados ao longo do curso, com ênfase no IDE NetBeans 8.1, no Java 
JDK 1.8.0 e na ferramenta JFlex 1.6.1, voltada à geração de analisadores léxicos. Além disso, foram 
dados os primeiros passos para a construção de uma especificação léxica no formato .flex, 
introduzindo conceitos práticos sobre análise léxica e gramáticas. 
A documentação aqui apresentada segue as normas da Associação Brasileira de Normas 
Técnicas (ABNT), conforme diretrizes estabelecidas pelas normas NBR 6022, NBR 6023 e NBR 
14724. 
 
2 Objetivos. 
 2.1 Objetivo Geral 
Compreender os conceitos iniciais relacionados ao desenvolvimento de compiladores, por 
meio da instalação, configuração e utilização das ferramentas necessárias para a construção 
de um analisador léxico. 
2.2 Objetivos Específicos 
• Conhecer e instalar os softwares utilizados no decorrer da disciplina; 
• Familiarizar-se com a interface do IDE NetBeans 8.1; 
• Compreender a função e os recursos da ferramenta JFlex 1.6.1; 
• Criar um projeto Java no NetBeans e configurar o plug-in JFlex; 
• Desenvolver a especificação léxica no arquivo especificacao.flex. 
 
3 REFERENCIAL TEÓRICO 
3.1 Compiladores 
Um compilador é um programa que traduz o código-fonte escrito em uma linguagem de 
programação de alto nível para uma linguagem de baixo nível, geralmente código de máquina 
 
5 
 
ou código intermediário. O processo de compilação é dividido em fases, sendo as principais: 
análise léxica, análise sintática, análise semântica, geração de código intermediário, 
otimização e geração de código final (AHO et al., 2008). 
3.2 Análise Léxica 
A análise léxica é a primeira fase de um compilador. Ela consiste em ler a sequência de 
caracteres do código-fonte e agrupá-los em unidades significativas denominadas tokens. Um 
token é a menor unidade sintática de um programa, como palavras reservadas, 
identificadores, operadores e delimitadores. O programa responsável por essa etapa é 
chamado de analisador léxico ou scanner (DELAMARO, 2004). 
3.3 Expressões Regulares e Gramáticas 
As expressões regulares são utilizadas para descrever os padrões que definem os tokens 
de uma linguagem. Elas constituem a base teórica sobre a qual os analisadores léxicos são 
construídos. Uma gramática formal especifica as regras de formação das sentenças válidas 
em uma linguagem, sendo um elemento central na teoria dos compiladores (AHO et al., 
2008). 
3.4 Ferramentas Utilizadas 
NetBeans IDE 8.1 é um ambiente de desenvolvimento integrado (IDE) de código aberto, 
suportado pela Oracle, amplamente utilizado para desenvolvimento em Java. Oferece 
recursos como edição de código com destaque de sintaxe, depuração, gerenciamento de 
projetos e suporte a plug-ins. 
Java JDK 1.8.0 (Java Development Kit) é um conjunto de ferramentas necessárias para o 
desenvolvimento de aplicações em Java SE, incluindo o compilador javac, a máquina virtual 
Java (JVM) e bibliotecas padrão. 
JFlex 1.6.1 é um gerador de analisadores léxicos escrito em Java. A partir de uma 
especificação formal definida pelo desenvolvedor em um arquivo .flex, a ferramenta gera 
automaticamente o código-fonte Java do analisador léxico correspondente. Sua utilização é 
gratuita, sob licença de software livre. 
 
4 METODOLOGIA 
As atividades práticas foram realizadas em laboratório de informática, com um computador 
por aluno (ou por dupla), utilizando os softwares descritos anteriormente. Os procedimentos foram 
conduzidos em duas etapas principais, conforme detalhado a seguir. 
 
6 
 
4.1 Infraestrutura Utilizada 
Item Descrição 
Local Laboratório de Informática 
Hardware 1 computador por aluno/dupla 
Sistema Operacional Windows 
IDE NetBeans 8.1 
Linguagem Java (JDK 1.8.0) 
Gerador Léxico JFlex 1.6.1 
Licença Software Livre 
 
4.2 Procedimento 1 — Conhecimento e Instalação dos Softwares 
Na primeira etapa, foram apresentados os softwares que seriam utilizados durante o curso, 
com demonstração das respectivas interfaces e recursos. O objetivo foi garantir que os alunos 
tivessem plena familiaridade com os programas antes de iniciar o desenvolvimento prático. 
As etapas realizadas foram: 
a) Apresentação do IDE NetBeans 8.1 e sua interface principal; 
b) Apresentação do Java JDK 1.8.0 e sua configuração no sistema operacional; 
c) Apresentação do JFlex 1.6.1 e sua função como gerador de analisadores léxicos; 
d) Instalação e configuração de cada ferramenta nos computadores do laboratório. 
4.3 Procedimento 2 — Criação da Especificação Léxica 
Na segunda etapa, foi dado início à construção do projeto que será desenvolvido ao longo 
da Unidade 2 do livro didático. Os passos realizados foram os seguintes: 
a) Abertura do NetBeans 8.1; 
b) Criação de um novo projeto Java Application com o nome Unidade2, organizado na pasta 
C:\COMPILADORES para facilitar a localização futura; 
c) Instalação da biblioteca JFlex 1.6.1 como plug-in do NetBeans, com auxílio de vídeo 
tutorial disponibilizado pelo professor; 
 
7 
 
d) Criação de um Pacote Java denominadoCompilador dentro do projeto; 
e) Criação do arquivo de especificação léxica. Ressalta-se que este arquivo deve ser criado 
como arquivo vazio, e não como uma classe Java. A extensão utilizada é .flex, resultando 
no arquivo especificacao.flex. 
Observação importante: Um erro comum entre iniciantes é criar uma classe Java vazia em vez de 
um arquivo vazio com extensão .flex. Os dois tipos de arquivo possuem natureza e comportamento 
distintos dentro do NetBeans. 
 
5 RESULTADOS E DISCUSSÃO 
Ao final das atividades práticas, foi possível verificar os seguintes resultados: 
Quanto ao Procedimento 1, Tive compreensão satisfatória acerca das ferramentas 
apresentadas, identificando a função de cada software dentro do processo de desenvolvimento de 
um compilador. A instalação foi realizada com sucesso em todos os computadores do laboratório. 
Quanto ao Procedimento 2, o projeto Unidade2 foi criado corretamente no ambiente 
NetBeans, com a estrutura de pacotes adequada. O plug-in JFlex foi instalado e integrado ao 
projeto. O arquivo especificacao.flex foi gerado como arquivo vazio com a extensão correta, 
preparando o ambiente para as próximas etapas da disciplina. 
As atividades desta aula prática serviram como base introdutória para o entendimento do 
processo de análise léxica e para a construção incremental de um compilador simples, que será 
desenvolvido ao longo das próximas unidades. 
 
6 CONCLUSÃO 
A aula prática da Unidade 1, Seção 1.3 da disciplina de Compiladores cumpriu seus objetivos 
ao proporcionar uma apresentação estruturada dos softwares e ao iniciar o desenvolvimento de um 
projeto léxico em Java com o suporte do JFlex. O contato inicial com as ferramentas reduziu 
possíveis dificuldades futuras relacionadas à configuração do ambiente de desenvolvimento. 
A experiência reforçou a importância da análise léxica como etapa fundamental no processo 
de compilação, além de evidenciar a relevância do uso de ferramentas automatizadas — como o 
JFlex — para a geração de analisadores léxicos eficientes e baseados em especificações formais. 
 
 
8 
 
REFERÊNCIAS 
AHO, Alfred V. et al. Compiladores: princípios, técnicas e ferramentas. 2. ed. São Paulo: Pearson 
Addison-Wesley, 2008. 
DELAMARO, Márcio Eduardo. Como construir um compilador utilizando ferramentas Java. São 
Paulo: Novatec, 2004. 
JFLEX. JFlex — The Fast Scanner Generator for Java. Versão 1.6.1. Disponível em: 
http://www.jflex.de/download.html. 
ORACLE. Java SE Development Kit 8 Downloads. Disponível em: 
http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html. 
NETBEANS. NetBeans IDE. Versão 8.1. Disponível em: https://netbeans.apache.org.

Mais conteúdos dessa disciplina