Aulas interativas, simuladores e simulado
Conteúdo completo das 14 aulas — teoria didática, simulações para testar os conceitos direto no navegador, atividades em grupo e um simulado estilo ENADE com gabarito comentado.
Dados da disciplina
O que você vai desenvolver
Compreender a aplicação de argumentações lógicas com identificação clara de hipóteses e conclusões, para a construção e o desenvolvimento de projetos e de softwares, utilizando a linguagem da área computacional; explorar os fundamentos da computação para estudos e avanços na área.
Ementa
Estudos introdutórios sobre a compilação e o analisador léxico, envolvendo o analisador sintático descendente, a análise semântica e o sistema básico de execução de uma linguagem de programação, em articulação com a organização do computador.
Objetivos
Adquirir conhecimento sobre as fases de um compilador e desenvolver a capacidade de implementar um simulador para computadores digitais.
Cronograma de 14 semanas
Uma aula por semana. Clique em cada semana para ver os tópicos.
1Introdução à compilaçãoSemana 1▾
- O que é um compilador; compilador × interpretador
- Panorama das fases da compilação
- Ambiente e ferramentas da disciplina
2Linguagens, gramáticas e estrutura do compiladorSemana 2▾
- Níveis de abstração e linguagens de programação
- Front-end × back-end
- Hierarquia de Chomsky (visão geral)
3Análise léxica I — tokens e expressões regularesSemana 3▾
- Tokens, lexemas e padrões
- Expressões regulares
- Especificação léxica de uma linguagem
4Análise léxica II — autômatos finitos (prática)Semana 4▾
- AFD e AFN; conversão ER → autômato
- Construção de um scanner
- Laboratório: implementação do analisador léxico
5Gramáticas livres de contextoSemana 5▾
- GLC, derivações e árvores sintáticas
- Ambiguidade e precedência
- Notação BNF/EBNF
6Análise sintática descendenteSemana 6▾
- Parsing recursivo-descendente
- Eliminação de recursão à esquerda e fatoração
7LL(1), FIRST/FOLLOW · Revisão + Prova 1Semana 7▾
- Conjuntos FIRST e FOLLOW
- Tabela preditiva LL(1)
- Avaliação 1 (semanas 1–6)
8Análise semântica I — gramáticas de atributosSemana 8▾
- Atributos sintetizados e herdados
- Ações semânticas dirigidas pela sintaxe
9Tabela de símbolos e verificação de tipos (prática)Semana 9▾
- Tabela de símbolos e escopos
- Sistema de tipos e checagem
- Laboratório: análise semântica
10Representação intermediáriaSemana 10▾
- Código de três endereços
- Tradução dirigida pela sintaxe
11Ambiente de execuçãoSemana 11▾
- Registros de ativação e pilha de execução
- Gerência de memória em tempo de execução
12Geração de código e organização do computadorSemana 12▾
- Geração de código para a máquina-alvo
- Relação com a organização do computador
13Projeto integrador — simulador / mini-compilador (prática)Semana 13▾
- Integração das fases em um projeto
- Laboratório de implementação
14Apresentações · Revisão geral · Prova 2 / ExameSemana 14▾
- Apresentação dos projetos
- Revisão geral
- Avaliação 2 e exame, quando aplicável
Como as aulas acontecem
As aulas são ministradas em laboratório de informática, com auxílio de programas específicos.
- Aulas expositivas, dialogadas e interativas
- Questionários escritos (Quiz)
- Resolução de exercícios
- Textos e artigos digitais
- Recursos multimídia: imagens, vídeos, mapas conceituais e mentais, Kahoot
- Estudos de caso
- Plataforma Moodle
Composição da nota
Avaliação processual, diagnóstica, formativa e contínua ao longo de toda a disciplina.
| Instrumento | Atividade | Natureza | Peso |
|---|---|---|---|
| Avaliação | Prova teórica/prática individual | Conceitual | 6,0 |
| Trabalho | Projeto / atividades em grupo | Procedimental | 2,0 |
| Quiz | Exercícios / questionamentos individuais | Atitudinal e conceitual | 2,0 |
Referências
Básica
- AHO, A. V.; SETHI, R.; ULLMAN, J. D. Compiladores: princípios, técnicas e ferramentas. Rio de Janeiro: LTC, 1995. ISBN 8521610572.
- PRICE, A. M. A.; TOSCANI, S. S. Implementação de linguagens de programação: compiladores. 3. ed. Porto Alegre: Bookman, 2008. ISBN 9788577803484.
- GRUNE, D. Projeto moderno de compiladores: implementação e aplicações. Rio de Janeiro: Campus, 2001. ISBN 8535208763.
Complementar
- LEWIS, H. R.; PAPADIMITRIOU, C. H. Elementos de teoria da computação. 2. ed. Porto Alegre: Bookman, 2008.
- FOROUZAN, B. A.; MOSHARRAF, F. Fundamentos da ciência da computação. São Paulo: Cengage, 2011.
- SIPSER, M. Introdução à teoria da computação. São Paulo: Thomson, 2007.
- HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introdução à teoria de autômatos, linguagens e computação. Rio de Janeiro: Elsevier, 2003.
- MENEZES, P. B. Linguagens formais e autômatos. 5. ed. Porto Alegre: Bookman, 2008.