Inscrição para atividade no Github Classroom: https://classroom.github.com/a/l759oI8Y
Inscrição no Moodle: https://aprender3.unb.br/course/view.php?id=29181 Senha: loxlox
Substitutiva: https://github.com/fabiommendes/compiladores_2025-2_prova-substitutiva/
Este é o Git da disciplina Compiladores 1. Aqui ficará o material produzido em sala de aula assim como tarefas, wiki e discussões. Este arquivo contêm informações básicas sobre a disciplina e o plano de ensino do semestre.
- Curso:
- Engenharia de Software
- Professor:
- Fábio Macêdo Mendes
- Disciplina:
- Compiladores 1
- Semestre/ano:
- 02/2025
- Carga horária:
- 60 h
- Créditos:
- 04
- Introdução
- Organização e estrutura de compiladores e interpretadores.
- Análise léxica.
- Expressões Regulares.
- Autômatos.
- Análise sintática.
- Gramáticas Regulares e Livres de Contexto
- Estruturas de Dados e representação interna de código-fonte.
- Análise semântica.
- Geração de código.
- Máquinas abstratas e ambientes de tempo de execução.
- Compiladores, Interpretadores e Parsers na Engenharia de Software.
Aulas teóricas e de exercícios: quartas e sextas-feiras às 18h ou 20h. Atendimento: quartas-feiras e sextas-feiras às 14h no Lappis.
Este curso utiliza GitHub para gerenciar o curso. A comunicação com a turma é feita através de atualizações no Github ou no Microsoft Teams. Habilite a funcionalidade "Watch" no repositório para receber notificações sobre atualizações.
Cada aluno também deve preencher o formulário com nome, e-mail e usuário no Github.
- Github:
- https://github.com/fcte-compiladores/2025-2/
- Github Classroom:
- https://classroom.github.com/classrooms/205002555-fcte-compiladores-2025-2
- Formulário de inscrição:
- https://docs.google.com/forms/d/12gy67ybJXSMaWfJ5ltfoFI0X4o8V9xGWXyoY89MhM6c/
- Moodle:
- https://aprender3.unb.br/course/view.php?id=29181 Senha: loxlox
A avaliação será feita com base em 4 tipos de atividades:
- 3 provas valendo 30% da nota, cada.
- Prova substitutiva, valendo 30% da nota. A prova substitutiva substitui a menor nota entre as provas.
- Lista de exercícios valendo 10% da nota.
- Desafios e atividades competitivas, valendo 5% da nota, como pontos extra.
Algumas avaliações serão realizadas com auxílio do computador. Todas as submissões serão processadas por um programa de detecção de plágio. Qualquer atividade onde for detectada a presença de plágio será anulada sem a possibilidade de substituição. Não será feita qualquer distinção entre o aluno que forneceu a resposta para cópia e o aluno que obteve a mesma.
As mesmas considerações também se aplicam às provas teóricas e atividades entregues no papel.
O curso utiliza alguns pacotes e ferramentas para os quais cada estudante deverá providenciar a instalação o mais cedo o possível. O curso assume Python 3.12+ com alguns pacotes instalados:
- Uv (https://docs.astral.sh/uv/): Gerenciador de pacotes e ambientes para Python.
- VSCode + Extensão Python: Editor de código gratuita com suporte para Python.
Você pode usar outras ferramentas caso tenha familiaridade com o desenvolvimento Python e estiver confortável em resolver problemas de configuração que possam aparecer durante o curso.
- Crafting Interpreters, Robert Nystrom, 2015-2021. (https://craftinginterpreters.com/)
- Crafting Interpreters, Versão em Python (https://github.com/fabiommendes/craftinginterpreters)
- (SICP) Structure and Interpretation of Computer Programs, Gerald Jay Sussman and Hal Abelson, MIT Press. (https://web.mit.edu/alexmv/6.037/sicp.pdf)
- Curso de Python: https://scrimba.com/learn/python
- Curso de Python no Youtube (pt-BR): https://www.youtube.com/watch?v=S9uPNppGsGo&list=PLvE-ZAFRgX8hnECDn1v9HNTI71veL3oW0
Consultar cronograma.
Obs.: O cronograma está sujeito a alterações. As datas das avaliações podem ser adiadas para um dia com disponibilidade de laboratório.