UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE INFORMÁTICA

DEPARTAMENTO DE INFORMÁTICA APLICADA

 

INF01147 - COMPILADORES - TURMA A

PROFESSOR: Marcelo Johann

SEMESTRE: 2024-1

 

Súmula da Disciplina UFRGS

Programa das Aulas 2024-1


Para quaisquer  dúvidas, consultem atualizações nessa página ou enviem e-mail para: < j o h a n n @ inf dot ufrgs dot br >

Material de semestres anteriores:

Aula 01 - Motivação - arquivos e exercícios
Aula 02 - Estrutura, Introdução ao gerador lex - Slides em pdf
Aula 02 - Exemplo de Analisador Léxico em C com Tabela - automato.c
A compact Guide to Lex & Yacc by Tom Niemann
Trabalho - Etapa 1: Definição em pdf
Trabalho - Etapa 1: arquivo tokens.h
Trabalho - Etapa 1: arquivo de teste main.c - somente para verificarem compatibilidade de compilação
Trabalho - Etapa 1: Formato de Entrega em pdf
Trabalho - Etapa 1: Como fazer sftp
Trabalho - Etapa 1: examplos para make: Makefile1, Makefile2, Makefile3
OBS: Você deve renomear aquele que for usar para somente Makefile. Se você nunca fez isso ou tem dúvidas, use o Makefile1, que é mais simples, e depois procure entender os restantes para as próximas etapas. O Makefile1 é necessário pois precisa comandar a construção com duas ferramentas, lex e gcc. Use ´make clean´ antes de ´make´ se fizer alterações nos arquivos incluídos com #include, que não são verificados automaticamente pelo make, ou para ter certeza de que recompilará tudo.
Aula 04 - Gramáticas Livres do Contexto - aula04.glc.pdf
Trabalho - Etapa 2: Definição em pdf
Trabalho - Etapa 2: sample.txt
Aula07 - Análise Sintática - Analisadores descendentes: aula07.des.pdf
Aula07 - Análise Sintática - Código de analisador recursivo preditivo: preditivo.c
Aula08 - Análise Sintática - Descendente preditivo tabular, cjs First e Follow: aula08.algo.tab.pdf
Aula08 - Análise Sintática - Código para cálculo de cjs First e Follow: ffollow.cpp
Aula08 - Análise Sintática - Código de analisador preditivo tabular: tabular.cpp
Aula11 - Análise Sintática - Algoritmos bottom-up: aula11.bottomup.pdf
Trabalho - Etapa 3: spect3.pdf
Aula12 - Análise Sintática - Algoritmo SLR1: aula12.slr1.pdf
Aula12 - Análise Sintática - Código SLR1: slr1.c
Aula12 - Análise Sintática - SLR1 implementado no Ramses: slr1.txt
Trabalho - Etapa 4: spect4.pdf
Trabalho - Etapa 5: spect5.pdf
Trabalho - Etapa 6: spect6.pdf
Aula17 - Tradução Dirigida por Sintaxe: aula17.translation.pdf
Aula21 - Recuperação de Erros: aula21.recovery.pdf
Aula22 - Análise sintática - algoritmos LR(0), SLR(1), LR(1), LALR(1): aula22.lr1.pdf
Aula25 - Runtime e registros de ativação: aula25.runtime.pdf
Aula26 - Otimização: aula26.optimization.pdf
Trabalho - Etapa 7: spect7.pdf

Videos de aulas em ensino Remoto:

Aula 02 - Análise léxica - CompiladoresERE20202.Aula02.lexica.mp4
Aula 02 - Introdução ao lex - CompiladoresERE20202.Aula02.lexintro1.mp4
Aula 03 - Definição etapa1 de 2020-2 e Formato de Entrega - CompiladoresERE20202.Aula03.formato.parte1.mp4 --- DEFINIÇÃO NÃO É DESTE SEMESTRE!
Aula 03 - Recursos lex e Tabela Hash - CompiladoresERE20202.Aula03.lexintro.parte2.mp4
Aula 05 - Gramáticas Livre de Contexto, parte 1 - https://youtu.be/gj1W1o2Bl6w
Aula 05 - Gramáticas Livre de Contexto, parte 2 - https://youtu.be/IZ_LMtmJ1W8
Aula 06 - Introdução ao yacc - CompiladoresERE20202.Aula06.introyacc.mp4
Aula 07 - Algoritmos Top-Down - parte 1 - https://youtu.be/hz52lPy6MqQ
Aula 07 - Algoritmos Top-Down - parte 2 - https://youtu.be/nS1SQ63DNOc
Aula 08 - Algoritmo Descendente Tabular - https://youtu.be/SY_4ZYoNYZU
Aula 08 - Etapa2 - especificação yacc, parte a - https://youtu.be/i7_74mnO8PY
Aula 08 - Etapa2 - especificação yacc, parte b - https://youtu.be/UCctih-G4cM
Aula 10 - Ações no yacc e AST - CompiladoresERE20201.Aula09.ast.parte1.mp4
Aula 10 - Ações no yacc e AST - CompiladoresERE20201.Aula09.ast.parte2.mp4
Aula 10 - Ações no yacc e AST - CompiladoresERE20201.Aula12.ast.parte3.mp4
Aula 12 - Algoritmo SLR1 - Montagem da Tabela - teoria https://youtu.be/TE0PWE_H-Aw
Aula 12 - Algoritmo SLR1 - Montagem da Tabela - exercício https://youtu.be/ibT14v4CE-E
Aula 13 - Verificações semânticas, implementação - https://youtu.be/T0zLwtp1WzA
Aula 17 - Tradução Dirigida por Sintaxe - https://youtu.be/RF1pyKO_Re0
Aula 20 - Geração de código intermediário - parte 1 - https://youtu.be/DbS8M4dnhrc
Aula 20 - Geração de código intermediário - parte 2 - https://youtu.be/mR2hgWV5_ow
Aula 21 - Recuperação de Erros - parte 1 - https://youtu.be/6xq_XsmE69U
Aula 21 - Recuperação de Erros - parte 2 - yacc - https://youtu.be/T3efoqqv2pU
Aula 25 - Geração de ASM - parte 1 - https://youtu.be/l_C92ZlSYjQ
Aula 25 - Geração de ASM - parte 2 - runtime - https://youtu.be/5U1jAS19kZg
Aula 26 - Otimização - https://youtu.be/cxRp2vVUBPk

// END OF PAGE