Antes de empezar...

Si estás leyendo esto, es probable que en tu carrera universitaria tengas una (o varias) asignaturas destinadas al estudio de los compiladores, esos programas tan sorprendentes que permiten traducir una entrada en un lenguaje predeterminado en una salida definida por un lenguaje y un conjunto de acciones; Pues esos programas, al menos en mi universidad, son los culpables de que la mayoría de estudiantes abandonen la carrera de Ingeniería en Ciencias y Sistemas ¿por qué?, la misma pregunta me hago todos los días...

Antecedentes

En la universidad de San Carlos de Guatemala existe la Escuela de Ciencias y Sistemas, encargada de llevar el rumbo de la Ingeniería hominima a la escuela, en su red de estudios (a.k.a pénsum) existe toda una rama de cursos dedicada al estudio de los lenguajes de programación.

  • Lenguajes Formales y de Programación (4to. Semestre)
  • Organización de Lenguajes y Compiladores 1 (5to. Semestre)
  • Organización de Lenguajes y Compiladores 2 (6to. Semestre)

Al llegar a estos cursos, se supone, que el estudiante debería de dominar la programación orientada a objetos, conocer al menos 3 lenguajes de programación (Java, C#, C++ o C, hasta donde recuerdo), tener habilidades en el análisis de soluciones de software y practicar los buenos hábitos de programación, como la aplicación de patrones de diseño o el control de versiones. Por qué hago énfasis en el 'se supone', porque en la mayoría de los casos no es así, desde este punto empieza el descenso hasta el avismo que representa para muchos NO poder ganar Compi2. El objetivo de este proyecto no es enseñar a programar en Java, porque se supone que como estudiante, ya tenés esos conocimientos, el objetivo de este proyecto es profundizar en el uso de la herramienta para generar analizadores por descenso recursivo JavaCC y ser una guía en el proceso de creación de un intérprete básico (ver sección de Intérprete).

Requerimientos mínimos

Para seguir esta guía es necesario que descargués el proyecto desde el repositorio de github en línea; Pero antes de descargarlo asegurate de tener en tu computadora, como mínimo, los siguientes requerimientos.

  • Java Development Kit 8
  • JavaCC 5.0
  • RSyntaxTextArea 2.5.3
  • NetBeans 8.1 (es posible utilizar otro IDE)
  • Git 2.7.4 (no es necesario, pero sí muy útil)

Si no tenés experiencia con git como sistema de control de versiones, ingresa a esta página y descargá el proyecto. Si ya tenés un poco de experiencia, abrís una terminal e ingresás los siguientes comandos para clonar el proyecto.

#Clonando el proyecto
~$ cd carpeta/de/tus/proyectos
~$ git clone 'https://github.com/Esvux/SBScript.git'

Si solamente querés ver la aplicación funcionando podés ejecutar el archivo jar contenido en la carpeta dist del proyecto, en Windows doble click sobre el jar; en linux desde la terminal java -jar SBScript.jar se abrirá el editor y listo, el programa estará funcionando.