Como vamos¶
-
Representación recursiva de datos
-
Representación inductiva
\[ '() \in S, n \in \mathbb{N} \wedge l \in S \therefore n :: s \in S \] -
Representación en gramáticas BNF
<lst-num> ::= '() ::= <int> <lst-num>
-
-
Representación de datos TAD
- Estos poseen una implementación e interfaz
- El programador usa la interfaz
- Para el diseño de los TADs
- Diseño de procedimientos constructores: Define un elemento que pertenece al tipo de dato
- Diseño de observadores
- Predicados: Permiten saber si pertenece al tipo de dato
- Extractores: Permiten extraer las partes dentro de un TAD
- ¿Como diseñamos TADs?
- Incluya un constructor para cada variante en la gramática
- Incluya un predicado para variante de la gramática
- Incluya un extractor para cada parte en cada variante de la gramática.
- Alcance y ligadura: let, let*, letrec. Shadowing.
Temas¶
Vamos a dos temas
- AST Arboles de sintaxis abstracta
- Parser - Unparser