9544c83f5a | ||
---|---|---|
cancionero | ||
prgms_src | ||
toybox | ||
Readme.md | ||
progress |
Readme.md
Buenas!
Bienvenides a toyboxica!
Una vm interactiva parecida a una caja de juguetes :)
Componentes
VM
La vm es el componente "principal". Se encarga de leer una memoria y ejecutar el programa contenido. Esta casi que hecha.
Writer
Writer es el ensamblador. Todavia falta que traduzca labels... ESTO ES CRUCIAL. Si alguien quiere dar una mano estaria mas que apreciado esto me da fiaca.
Reader
Reader lee una memoria e intenta adivinar que era cada cosa.
Utils
Cosas que los programas van necesitando como la definicion de tokens y parecido
Cancionero
Cancionero es el compilador. Toma un archivo escrito en YupanquiLang y lo traduce a toybox-assembly para que despues writer lo pueda utilizar. Podriamos hacer algo medio C-like o medio BASIC like... La idea es usar SLY para facilitarlo.
Como usarlo:
La vm lee un programa desde la entrada estandar y despues lo ejecuta. Writer lee un programa escrito en assembly y lo pasa a bytecode. Imaginemos que tenemos un programa "call_tst", para correrlo hariamos: cat call_tst | ./writer | ./main
La idea es que todo funcione por pipes. Una vez tengamos "cancionero" hecho el modo de uso seria: cat programa | cancionero | writer | main
Cosas por hacer:
- Terminar el ensamblador
- Armar un repo para cancionero (compilador)
- Agregar manejo de punteros a la VM
- Dar feedback de que les parece lo existente!
- Armar funciones de test de verlo necesario
- Buscar una forma elegante o simple de meter el input
Me gustaria poder charlar estas cosas con cualquiera que vaya a colaborar, por favor sepan que me pueden hablar por telegram o mandar un mail a cualquiera de mis direcciones excepto mi gmail que es puro spam.
Aclaraciones
Si bien ya hay varias cosas hechas no tengo apego a ninguna. Cualquier modificacion drastica puede plantearse sin problema, sea un cambio de lenguaje o cosa rara que quieran hacer. Mi unico requisito es que la VM se mantenga simple.