Laboratorio 6: Compilador a JsonAsm
Compilador y VM de JsonLang
Para m谩s detalles, visitar compiladores.github.io.
#
Quickstart, editor, dependenciasmake setup
Instala deno
1.26.0 en la carpeta ra铆z del repositorio, y crea una carpeta
.vscode
con la configuraci贸n recomendada de vscode.
#
C贸mo hacer el laboratorioCompletar la implementaci贸n de main.ts
de manera que pasen todos los tests
incluidos.
#
Arquitectura general del proyecto.Se utiliz贸 una arquitectura m谩s bien funcional, donde el programa se traduce 5 veces. En cada traducci贸n se resuelve un problema.
- CompIR0Translator: Elimina ("desdobla"/"despliega"/"unfolds") estructuras de control
- CompIR1Translator: Elimina variables
- CompIR2Translator: Elimina expresiones
- CompIR3Translator: Elimina funciones
- CompIR4Translator: Elimina labels
Los algoritmos que debe seguir cada etapa de la traducci贸n se detallan en clase. Los algoritmos aplicados por CompIR0Translator
y CompIR1Translator
son similares a los que aplica el int茅rprete.
#
Criterios de evaluaci贸nLa evaluaci贸n es objetiva. Al presentar el laboratorio se dar谩 una fecha recomendada de entrega. Al entregar el laboratorio se puntuar谩 de la siguiente forma.
Par谩metro | comandos relacionados | puntaje |
---|---|---|
se entreg贸 el TP | make test , make test_checksum | 6 |
El 煤ltimo commit del PR tiene fecha previa a la recomendada | make test_date | +1 |
El 煤ltimo commit del PR tiene fecha previa a la recomendada tard铆a | make test_late_date | +2 |
Se agregaron 5 tests que contienen "extra" en su descripci贸n | make test_extra_quantity | +2 |