
High Performance and Efficient Systems
Grupo de Pesquisa em Arquitetura de Computadores, Segurança & Criptografia.
Informações gerais da disciplina, bem como links para materiais e etc., estão na página do GitHub.
Sala de aula: PC-18; ensalamento; Terças e quintas às 17:30
Analisador léxico: Flex
Analisador sintático: Bison
Nota = Prova 1 * 30% + Prova 2 * 30% + Trabalho * 40%
Os capítulos de interesse do livro do dragão (primeira edição) são os seguintes:
Caso esteja com a segunda edição do livro, aparentemente a única mudança é que o Cap 4.7 foi dividido em dois capítulos: 4.6 e 4.7. No caso, seria o capítulo sobre parsers LR. O que precisa ser estudado é o SLR e LR canônico ( ou LR(1) ), e analisadores de precedência podem ser ignorados.
As principais fórmulas/procedimentos/operações/algoritmos estão disponíveis nesta cheat sheet.
Uma lista de exercícios pode ser encontrada aqui.
Geradores LL(1), SLR e LR(1) podem ser encontrados aqui: jsmachines, github (mesma máquina, porém salvos no github).
O trabalho será gerenciado pelo GitHub Classroom. Portanto, todos devem ter conta no GitHub.
Ao aceitar um trabalho, você deve primeiro escolher teu nome na lista de alunos e fazer o link com o teu usuário do GitHub. Uma espécie de pré trabalho foi criado para que você se familiarize com a plataforma. Para aceitar esse pré trabalho, entre neste link:https://classroom.github.com/a/7V3RulxC. Esse pré trabalho não vale qualquer nota, e já pode ser feito em grupos de dois alunos.
Cada trabalho aceito gera um repositório privado onde o grupo tem acesso para fazer push. Quando o prazo encerra, os alunos perdem a permissão para fazer push, e o último commit será avaliado.
O link para aceitar o trabalho final é o seguinte: https://classroom.github.com/a/WFWPC1wi.
É possível ver a especificação do trabalho, sem ainda aceitá-lo no GitHub Classroom, pelo link: https://github.com/UFPR-Daniel-Oliveira/ci1211-compiladores-2025-2-trabalho-subset-pascal-CI1211-trabalho-subset-Pascal.
Data | Aula | Descrição | Links ou referência (livro dragão) |
---|---|---|---|
05/08 | Aula 1 | Introdução | Breve história e fases de um compilador |
07/08 | Aula 2 | Analisador léxico (Flex) | código de exemplo |
12/08 | Aula 3 | Análise sintática - Ambiguidade, recursão e fatoração | cap. 4.2 e 4.3 |
14/08 | Aula 4 | Análise sintática Top-down (LL) - Implementação manual | cap. 2.4, 2.5 e 4.4 |
19/08 | Aula 5 | Análise sintática Top-down (LL) - Implementação manual (Lab) | exercício |
21/08 | Aula 6 | Análise sintática Top-down (LL) - Implementação via pilha | cap 4.4 |
26/08 | Aula 7 | Análise sintática Top-down (LL) - Implementação via pilha | cap 4.4 |
28/08 | Aula 8 | Análise sintática Bottom-up - SLR | |
02/09 | Aula 9 | Análise sintática Bottom-up - SLR | |
04/09 | Aula 10 | Exercícios | |
09/09 | Aula 11 | Prova 1 | |
11/09 | Aula 12 | Analisador sintático (Bison) | |
16/09 | Aula 13 | LLVM-IR | |
18/09 | Aula 14 | LLVM-IR | |
23/09 | SACI | ||
25/09 | SACI | ||
30/09 | Aula 15 | Análise sintática Bottom-up - LR canônico | |
02/10 | Aula 16 | Análise sintática Bottom-up - LR canônico | |
07/10 | Aula 17 | Exercícios | |
09/10 | Aula 18 | Análise sintática Bottom-up - LALR | |
14/10 | Aula 19 | Análise sintática Bottom-up - LALR | |
16/10 | Aula 20 | Exercícios | |
21/10 | SIEPE | ||
23/10 | SIEPE | ||
28/10 | Aula 21 | Exercícios | |
30/10 | Aula 22 | Prova 2 | |
04/11 | Aula 23 | Tira-dúvidas Trabalho | |
06/11 | Aula 24 | Tira-dúvidas Trabalho | |
11/11 | Aula 25 | Tira-dúvidas Trabalho | |
13/11 | Aula 26 | Tira-dúvidas Trabalho | |
18/11 | Aula 27 | Apresentação Trabalho | |
20/11 | Feriado: Dia Nacional de Zumbi e da Consciência Negra | ||
25/11 | Aula 28 | Apresentação Trabalho | |
27/11 | Aula 29 | Apresentação Trabalho | |
02/12 | Aula 30 | Apresentação Trabalho | |
04/12 | |||
09/12 | |||
11/12 | Reservado para Segunda Chamada | ||
16/12 | Exame Final |