Ruby y su relación con los compiladores
En el escrito Language Design and Implementation using Ruby and the Interpreter Pattern creado por Ortiz, A., se menciona cómo es que éste último desarrolló un framework de intérprete de expresiones S (SIF) para presentarlo como una herramienta de aprendizaje en el curso de Lenguajes de Programación en el Tecnológico de Monterrey. Este proyecto resulta interesante puesto que, además de estar basado en tecnologías poco convencionales para la creación de software de posible "bajo nivel" como lo es Ruby, presentó resultados interesantes que, de haber sido aplicados en el curso que el autor de este escrito, se notó una ventaja en el entendimiento en la estructura de la materia en cuestión.
De manera concreta, el paper presenta la creación de un interprete hecho en Ruby implementando el patrón del interprete para expresiones S. A modo simple, pareciera muchos términos poco relacionados, sin embargo, dada la estructura del plan de estudios actual que cuenta el ITESM, fácilmente estos toman sentido gracias a la combinación de la materia de Arquitectura de Software y Compiladores. Aunando en lo anterior, el patrón de diseño presentado es uno de los clásicos dentro de los patrones de comportamiento definidos por la Banda de los Cuatro -en inglés: Gang of Four o GoF- que, además de ser usados para la definición de representaciones gramaticales, justamente da interpretación a dicha gramática gracias a que el programa computacional en cuestión se representa como un árbol cuyos nodos son los elementos clave del programa de origen. [1], [2] Es a partir de lo anterior, que se logra intuir y describir en el escrito que el framework presentado tiene como propósito evaluar y definir tanto tipos como particularidades propias de ruby tales como: enteros (integers), símbolos (variables), listas y procedimientos. Esta funcionalidad permitió a los estudiantes que emplearon SIF ampliar sus conocimientos en expresiones S, las cuales son básicas para el manejo de lenguajes como Lisp, en programación funcional con Ruby, así como el incremento en la curiosidad para ampliar SIF con procedimientos primitivos nuevos o formas especiales.
En conclusión, SIF se presenta como una alternativa interesante que, de comprender totalmente la estructura o noción de la importancia de un interprete, permite entender las bases de un lenguaje de programación. Aunque, en el caso de que sí se tenga ya ese conocimiento, como es el del autor, resulta interesante y hasta un aprendizaje iterativo sobre cómo y por qué es que funciona un lenguaje.
Referencias:
1. https://arielortiz.info/publicaciones/sif.pdf
2. https://www.geeksforgeeks.org/interpreter-design-pattern/
Comentarios
Publicar un comentario