r-info y el problema de Java

Cómo terminé escribiendo un compilador para que mis compañeros de facultad no tuvieran que instalar Java.

01 de mar de 20262 min#proyectos#compiladores#unlp#open source

En Informática de la UNLP hay una materia que se llama CADP — Conceptos de Algoritmos, Datos y Programas. Es la primera materia donde programás de verdad. Y el entorno que se usa para programar se llama R-Info.

El problema es que R-Info original corre en Java, está pensado para Windows, y tiene una interfaz de 2010. Para un pibe que llega con una Mac o con Linux, la primera hora de la cursada ya es un dolor de cabeza de setup. Antes de escribir una sola línea de código, ya hay que instalar cosas, buscar foros, rezar.

Eso me molestaba.


La idea era simple: el mismo lenguaje, el mismo robot, pero en el navegador. Sin instalar nada. Entrás al link y ya está.

Lo que no sabía era que hacer eso requería escribir un compilador del lenguaje R-Info desde cero. El lenguaje tiene su propia sintaxis, sus propias reglas, su propio sistema de tipos básico. Nada de eso existe en el navegador por defecto.

Así que lo armé. Scanner, parser, intérprete. Todo en TypeScript, todo corriendo en el cliente.

No es perfecto. Hay casos edge que todavía no maneja. Pero funciona para el 95% de los programas que se escriben en CADP, y eso alcanza.


Lo que más me gustó del proceso fue que en ningún momento sentí que estaba construyendo algo para un portfolio. Lo estaba construyendo porque lo iba a usar yo, y lo iban a usar compañeros. Esa diferencia se nota en cómo encarás las decisiones.

Cuando algo falla, lo arreglás porque importa. No porque quieras que se vea bien en una demo.

El proyecto está en github.com/joaquin-gerez/r-info-web y desplegado en r-info-web.vercel.app. Open source, MIT.