Para proyecto final de esta materia crearemos un pequeño compilador, para un lenguaje con las siguientes funcionalidades:
- Suma +
- Resta -
- Multiplicación *
- División /
- Exponenciación ^
- ==
- !=
- >
- <
- >=
- <=
- and
- or
- ( )
- { }
- Int
- Float
- Boolean
int | float | boolean | |
---|---|---|---|
int | Aritmeticas, comparacion | Aritmeticas, comparacion | ---- |
float | Aritmeticas, comparacion | Aritmeticas, comparacion | ---- |
boolean | ---- | ---- | and, or, ==, != |
Flujos de control existentes, deberán seguir una estructura similar al lenguaje C, por simplicidad todo deberán llevar llaves
- If, else, elif
- while ( ) { }
- for ( ; ; ) { }
Para marcar el final de una sentencia se utilizara ";"
Es permitido el declarar y asignar una variable en la misma linea
La salida de este compilador debe de ser codigo de 3 direcciones.
Para la entrega de este proyecto es un repositorio de git (puede ser de github, gitlab o bitbucket).
Para la parte de análisis sintáctico ply
Ejemplos: Dabeaz examples
Luis Bodart A01635000