Você está na página 1de 2

Universidade Federal de Goiás

Instituto de Informática
Ciência da Computação

Professor: Kleber Vieira Cardoso


Atividade: desenvolvimento de um compilador para praticar conceitos da disciplina.
Regras:
• Todos os grupos devem submeter um arquivo .zip.
• Apenas um integrante por grupo deve fazer a submissão.
• É expressamente proibido copiar trechos de código de outros colegas ou de códigos-fontes disponíveis
na Internet. Caso uma fraude seja detectada, todos os estudantes envolvidos terão nota zero e poderão
sofrer outras penalidades previstas nos regulamentos do INF e da UFG.
• A utilização de ferramentas baseadas em Inteligência Artificial (e.g., Copilot, Codeium, CodeGeeX, etc.)
deve ser informada, com detalhes sobre como foi aplicada no trabalho.

Trabalho
1. Objetivo

Este trabalho tem como principal objetivo permitir que o(a)s estudantes apliquem os conhecimentos
adquiridos na disciplina compiladores de maneira prática.

2. Tema do trabalho

O trabalho consiste em desenvolver um compilador básico para uma linguagem de programação


bem simples. O trabalho está divido em três partes:
1. Analisador léxico e da tabela de símbolos;
2. Analisador sintático e tratamento de erros;
3. Analisador semântico e geração de código.

Posteriormente, será descrita a linguagem de programação irrisória que é muito simples, baseada
em Português e especificada apenas o desenvolvimento deste trabalho. A geração de código deverá ter
como saída a representação intermediária Bril (https://github.com/sampsyo/bril). É recomendado o uso de
ferramentas para auxiliar no desenvolvimento do compilador e será oferecido apoio com as seguintes
ferramentas: Flex (Fast Lexical Analyzer) e GNU Bison.

3. Considerações gerais

• Grupo: 1 ou 2 integrantes.
• Tempo máximo de apresentação por grupo: 20 minutos.
• Observar os prazos limites para entrega de cada parte do trabalho no plano de ensino, disponível
no SIGAA.
• Entregas devem ser realizadas apenas via SIGAA, utilizando a tarefa do sistema que estará
disponível para cada parte.
• As apresentações devem se focar na implementação, mas podem ser utilizados slides para
auxiliar na explicação.
• Apenas trabalhos que efetivamente demonstrarem seu funcionamento na prática serão avaliados.

4. Material a ser entregue

Deve ser entregue um arquivo .zip, cujo nome seja formado pelas matrículas dos integrantes
(exemplo: 910027_940014.zip) e que contenha:
• Código-fonte e outros arquivos relacionados (e.g., descrição fornecida para o gerador de
analisador léxico e arquivo de gramática para o gerador de analisador sintático) desenvolvidos ou
utilizados no trabalho;
• Slides (opcional);
• Texto (opcional).
5. Critérios de avaliação

Serão usados os seguintes critérios na avaliação de cada parte do trabalho:

Critério Descrição Percentual


Atendimento Atendimento à especificação do trabalho 50%
Apresentação Clareza, domínio do conteúdo, uso adequado do tempo e respostas às 50%
perguntas

Você também pode gostar