Laboratorio 6: Compilador a JsonAsm
Compilador y VM de JsonLang
Para m谩s detalles, visitar compiladores.github.io.
Quickstart, editor, dependencias#
make setupInstala 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 laboratorio#
Completar 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贸n#
La 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 |