Descripción
Minil y Minic son dos lenguajes minimalistas. El primero es un lenguaje de programación que solo tiene seis tipos de sentencias: leer, imprimir, asignar, sin dejar de ser simple y compuesto. Minic es una calculadora que solo tiene las cuatro operaciones basicas y trabaja con enteros. La razón de ser tan mínimos es que sirvan como ejemplo para la implementación de interpretadores de lenguajes de programación.
Objetivos
Crear una serie de ejemplos muy sencillo para explicar la implementación de un interpretador de lenguaje.
Estado del arte
Los ejemplos que se encuentran en los libros de compiladores, pero estos están siempre orientados a hacer compiladores y no interpretadores.
Antecedentes
Minil surgió una tarde en que el Profesor Luis Alejandro Bernal Romero le explicaba a Andrés Castelblanco y David Arenas como crear un interpretador de un lenguaje. Esta explicación duro tres horas y al final de ella se tenia el analizador sintáctico de un lenguaje mínimo de programación, esa fue la versión 0.0.1 de Minil.
En este momento se tiene un interpretador de Minil completamente funcional, está hecho como una analizador descendente recursivo, está documentado y con código muy sencillo de entender en C++.
Cosas por hacer
- Más pruebas al interpretador descendente recursivo de Minil.
- Hacer un interpretador de Minil con Bison.
- Definir la gramática de Minic (esto es fácil por que es un subconjunto de Minic).
- Hacer el interpretador descendente recursivo de Minic (también es fácil por la razón anterior).
- Hacer otras versiones de Minic para explicar otros conceptos:
- Con tipos diferentes al entero.
- Con definición de funciones.
- Con orientado a objetos.
- Definir la gramática de Minif, que es un lenguaje mínimo funcional. El objetivo de este es tener un ejemplo sencillo para explicar la implementación de interpretadores de lenguajes funcionales.
- Implementar Minif.
--Luis Alejandro Bernal Romero 19:59 6 jun, 2005 (MDT)
