Skip to content

Commit

Permalink
material das aulas de 16 e 21 de Novembro
Browse files Browse the repository at this point in the history
  • Loading branch information
leopoldomt committed Nov 21, 2023
1 parent e9f537b commit 60bbb60
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 18 deletions.
30 changes: 30 additions & 0 deletions 2023-11-16.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# IF688 - Teoria e Implementação de Linguagens Computacionais

## Análise Sintática --- Introdução a Bottom-Up Parsing

### Objetivo

O objetivo desta aula é introduzir conceitos fundamentais relacionados à _bottom-up parsing_, como _handles_, prefixos viáveis, e análise _shift-reduce_, bem como apresentar como criar *parsers bottom-up* por meio da construção de autômatos de itens LR(0), representando prefixos viáveis.

### Questões para Discussão

- Quais as desvantagens de usar gramáticas LL(1)?
- Como funciona um _parser bottom-up_, intuitivamente?
- O que significa reduzir um item a partir de um _handle_?
- Como identificar _handles_, e saber quando reduzir?
- Como construir uma tabela de _parsing_ automaticamente a partir do autômato de itens LR(0)?

### Vídeos

- [Análise Sintática - Introdução a Bottom-Up parsing](https://www.youtube.com/watch?v=ZgJXvOUWDXg&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ)
- [Análise Sintática - Reduções Problemáticas e Handles](https://www.youtube.com/watch?v=oUC3dBsdhfg&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=2)
- [Análise Sintática - Análise Shift-Reduce](https://www.youtube.com/watch?v=xlYFJzAjl-8&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=3)
- [Análise Sintática - Prefixos Viáveis](https://www.youtube.com/watch?v=O34N2YQw3ho&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=4)
- [Análise Sintática - LR(0) parsers](https://www.youtube.com/watch?v=d9QvTiDl9eI&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=5)
- [Análise Sintática - Construindo tabelas de parsing LR](https://www.youtube.com/watch?v=BBFsBJjkjHo&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=6)
- [Análise Sintática - Algoritmo de parsing usando tabelas LR](https://www.youtube.com/watch?v=WRLQWO7xg4Y&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=7)

### Links Relacionados

- [Bottom-up Parsing](https://en.wikipedia.org/wiki/Bottom-up_parsing)
- [LR parser](https://en.wikipedia.org/wiki/LR_parser)
24 changes: 24 additions & 0 deletions 2023-11-21.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# IF688 - Teoria e Implementação de Linguagens Computacionais

## Bottom-up Parsing e gramáticas LR(k)

### Objetivo

O objetivo desta aula é apresentar os conceitos fundamentais relacionados à parsers LR(1), introduzir o conceito de itens LR(1) na construção de autômatos de prefixos viáveis.

### Questões para Discussão

- Que tipos de conflito podem surgir a partir da estratégia LR(0)?
- Como construir autômatos que reconhecem prefixos viáveis, a partir de itens LR(1)?
- Como construir uma tabela de _parsing_ automaticamente a partir do autômato de itens LR(1)?

### Vídeos

- [Análise Sintática - Conflitos Shift-Reduce](https://www.youtube.com/watch?v=4pYcDYqrPj8&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=8)
- [Análise Sintática - LR(1) parsing](https://www.youtube.com/watch?v=07gZ5TxNjD4&list=PLHoVp5NAbKJacS1u8HDoQR6lp8mk6iHwJ&index=9)

### Links Relacionados

- [LR(1) Parsing](https://en.wikipedia.org/wiki/Canonical_LR_parser)
- [Practical LR(k) Parser Construction](http://david.tribble.com/text/lrk_parsing.html)
- [DeRemer, Franklin L. (1969). Practical Translators for LR(k) languages (Ph.D.). MIT.](http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-065.pdf)
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Na disciplina, utilizaremos uma mistura de aulas tradicionais com exercícios e

### Recursos

- [Discord](https://discord.gg/w28mu7H9)
- [Discord](https://discord.gg/cw7CbxfK)
- [Google Classroom](https://classroom.google.com/c/NjM0MDYxNTk1NTI3?cjc=fa6nvzx)
- Github Classroom - Ver instruções no Google Classroom

Expand Down Expand Up @@ -83,17 +83,17 @@ Na disciplina, utilizaremos uma mistura de aulas tradicionais com exercícios e
| 07.11.23 | Terça | [Análise Sintática Top-Down - Intro](2023-11-07.md) | |
| 09.11.23 | Quinta | [Análise Sintática Top-Down - LL(1) Parsing](2023-11-09.md) | |
| 14.11.23 | Terça | [Análise Sintática Top-Down - Recursive Descent Parsing](2023-11-14.md) | |
| 16.11.23 | Quinta | Análise Sintática Bottom-Up - Intro | |
| 21.11.23 | Terça | Análise Sintática Bottom-Up - LR(1) Parsing | |
| 16.11.23 | Quinta | [Análise Sintática Bottom-Up - Intro e LR(0)](2023-11-16.md) | |
| 21.11.23 | Terça | [Análise Sintática Bottom-Up - LR(1) Parsing](2023-11-21.md) | |
| 23.11.23 | Quinta | Análise Semântica | |
| 28.11.23 | Terça | Análise Semântica | |
| 30.11.23 | Quinta | APS | |
| 05.12.23 | Terça | Revisão | |
| 07.12.23 | Quinta | Revisão | |
| 12.12.23 | Terça | **1 Exercício Escolar** | |
| 14.12.23 | Quinta | Representações Intermediárias de Código | |
| 19.12.23 | Terça | Representações Intermediárias de Código | |
| 21.12.23 | Quinta | Análise e Otimização de Código | |
| 30.11.23 | Quinta | APS - Exercícios | |
| 05.12.23 | Terça | APS - Exercícios | |
| 07.12.23 | Quinta | APS - Exercícios | |
| 12.12.23 | Terça | Análise Semântica | |
| 14.12.23 | Quinta | Análise Semântica | |
| 19.12.23 | Terça | **1 Exercício Escolar** | |
| 21.12.23 | Quinta | APS - Exercícios | |
| 26.12.23 | Terça | **Recesso Escolar** | --- |
| 28.12.23 | Quinta | **Recesso Escolar** | --- |
| 02.01.24 | Terça | **Recesso Escolar** | --- |
Expand All @@ -104,16 +104,16 @@ Na disciplina, utilizaremos uma mistura de aulas tradicionais com exercícios e
| 18.01.24 | Quinta | **Recesso Escolar** | --- |
| 23.01.24 | Terça | **Recesso Escolar** | --- |
| 25.01.24 | Quinta | **Recesso Escolar** | --- |
| 30.01.24 | Terça | Análise e Otimização de Código | |
| 01.02.24 | Quinta | Análise e Otimização de Código | |
| 06.02.24 | Terça | Análise e Otimização de Código | |
| 30.01.24 | Terça | Representação Intermediária de Código | |
| 01.02.24 | Quinta | Representação Intermediária de Código | |
| 06.02.24 | Terça | APS | |
| 08.02.24 | Quinta | APS | |
| 13.02.24 | Terça | **CARNAVAL** | |
| 15.02.24 | Quinta | Ambientes de Execução | |
| 20.02.24 | Terça | Ambientes de Execução | |
| 22.02.24 | Quinta | Ambientes de Execução | |
| 27.02.24 | Terça | Geração de Código | |
| 29.02.24 | Quinta | Geração de Código | |
| 15.02.24 | Quinta | Análise e Otimização de Código | |
| 20.02.24 | Terça | Análise e Otimização de Código | |
| 22.02.24 | Quinta | Análise e Otimização de Código | |
| 27.02.24 | Terça | Ambientes de Execução | |
| 29.02.24 | Quinta | Ambientes de Execução | |
| 05.03.24 | Terça | Geração de Código | |
| 07.03.24 | Quinta | Geração de Código | |
| 12.03.24 | Terça | Revisão | |
Expand Down

0 comments on commit 60bbb60

Please sign in to comment.