Compiladores/Aula Prática 02: Difference between revisions
From Wiki**3
| (5 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
* Com base nos nós da CDK (ver '''ast'''), construir os nós para as declarações e para a instrução '''write''' (nós '''declaration_node''' e '''write_node'''). Os resultados devem ser parecidos com os presentes no compilador da linguagem Og para as situações análogas. | * Com base nos nós da CDK (ver '''ast'''), construir os nós para as declarações e para a instrução '''write''' (nós '''declaration_node''' e '''write_node'''). Os resultados devem ser parecidos com os presentes no compilador da linguagem Og para as situações análogas. | ||
* [[Nodes from CDK and Simple|Lista de nós da CDK e do Simple]]. | * [[Nodes from CDK and Simple|Lista de nós da CDK e do Simple]]. | ||
* Vídeos sobre estes tópicos: | * Vídeos sobre estes tópicos e sobre o repositório [[Compiladores/Projecto_de_Compiladores/Repositório_GIT|GIT]]: | ||
** Linguagem UDF (2024/2025 | ** Linguagem P6 (2025/2026): https://youtu.be/KvnG6CQjN-E (parte 1) https://youtu.be/iP8TIWFIztc (parte 2) | ||
** Linguagem TIL (2023/2024) | ** Linguagem UDF (2024/2025): https://youtu.be/dywEh5mfQTo | ||
** Linguagem MML (2022/2023) | ** Linguagem TIL (2023/2024): (ver MML) | ||
** Linguagem L22 (2021/2022) e CVS ( | ** Linguagem MML (2022/2023): https://youtu.be/xkDKt4sU32k | ||
** Linguagem FIR e CVS ( | ** Linguagem L22 (2021/2022) e [[Compiladores/Projecto de Compiladores/Repositório CVS|CVS]] (obsoleto): https://youtu.be/NN1_MIKgxGw | ||
** Linguagem FIR e [[Compiladores/Projecto de Compiladores/Repositório CVS|CVS]] (obsoleto): https://youtu.be/h95WRzwiAME | |||
== Exercícios == | |||
* [[Compiladores/Aula Prática 02/Exemplos|Exemplos]] (soluções dos exercícios de avaliação) | * [[Compiladores/Aula Prática 02/Exemplos|Exemplos]] (soluções dos exercícios de avaliação) | ||
Latest revision as of 10:13, 29 April 2026
Tópicos
Revisões de conceitos de padrões de desenho aplicados no contexto da linguagem C++, especialmente, mas sem limitação, Composite, Visitor (Abstract Factory, Strategy são deixados como trabalho para casa).
Aplicação ao padrão Composite no contexto do projecto: AST ("abstract syntax tree"), nomeadamente na especificação dos nós da árvore.
Compiler AST Nodes
- Considerar a descrição do analisador sintáctico (tiny.y) para a linguagem Tiny, descrita em: Semantic Analysis/The Tiny language: semantic analysis example and C generation.
- Com base nos nós da CDK (ver ast), construir os nós para as declarações e para a instrução write (nós declaration_node e write_node). Os resultados devem ser parecidos com os presentes no compilador da linguagem Og para as situações análogas.
- Lista de nós da CDK e do Simple.
- Vídeos sobre estes tópicos e sobre o repositório GIT:
- Linguagem P6 (2025/2026): https://youtu.be/KvnG6CQjN-E (parte 1) https://youtu.be/iP8TIWFIztc (parte 2)
- Linguagem UDF (2024/2025): https://youtu.be/dywEh5mfQTo
- Linguagem TIL (2023/2024): (ver MML)
- Linguagem MML (2022/2023): https://youtu.be/xkDKt4sU32k
- Linguagem L22 (2021/2022) e CVS (obsoleto): https://youtu.be/NN1_MIKgxGw
- Linguagem FIR e CVS (obsoleto): https://youtu.be/h95WRzwiAME
Exercícios
- Exemplos (soluções dos exercícios de avaliação)
Sheep and Herds
- Problem and solution: Sheep and Herds in C++.