1. Introducción
1.1. Contexto
1.2. Problema
1.3. Objetivo
1.4. Sumario
2. Antecedentes
2.1. El lenguaje de programación GOBSTONES
2.2. Implementación en HASKELL de GOBSTONES 2.0
2.3. La herramienta PYGOBSTONES 0.97
2.3.1. Estructura del compilador y máquina virtual
2.3.2. El bytecode de GOBSTONES
2.3.3. La máquina virtual de PYGOBSTONES 0.97
2.4. La herramienta PYGOBSTONES 1.0
3. El lenguaje de programación GOBSTONES 3.0
3.1. Cambios necesarios en la secuencia didáctica
3.2. Otros cambios para compatibilidad
3.3. Modo interactivo
4. El lenguaje de programación XGOBSTONES
4.1. Estructuras de datos básicas
4.1.1. Listas
4.1.2. Registros
4.1.3. Variantes
4.2. Pasaje por referencia y memoria
4.2.1. Operador punto
4.2.2. Parámetro de pasaje por referecia en procedimientos
4.2.3. Arreglos
4.2.4. Tablero como valor
5. El ambiente de desarrollo PYGOBSTONES 1.0
5.1. Herramientas auxiliares
5.1.1. Herramienta para los casos de prueba
5.1.2. Notación específica
5.2. Implementaci ́n de GOBSTONES 3.0
5.2.1. Cambios en el bytecode de GOBSTONES
5.2.2. Cambios de sintaxis
5.2.3. El punto de entrada program
5.2.4. Repetici ́n simple
5.2.5. Repetición indexada
5.3. Implementación de XGOBSTONES
5.3.1. El bytecode y la m ́quina virtual de XGOBSTONES
5.3.2. Listas
5.3.3. Registros
5.3.4. Variantes
5.3.5. Pasaje por referencia
5.3.6. Arreglos
5.3.7. Chequeo de tipos dinámico
5.3.8. Tablero como valor
5.4. Implementación del modo interactivo
5.4.1. Implementación del ciclo read-eval-print
5.4.2. La interfaz abstracta InteractiveAPI
5.5. Módulo de interacción entre las implementaciones de los lenguajes y la interfaz gráfica
5.5.1. Arquitectura del módulo
5.5.2. Implementación de la interfaz del módulo
5.5.3. Implementación del gestor de implementaciones
5.5.4. Comunicación entre la interfaz gráfica y las implementaciones de los lenguajes
5.5.5. Resumen
6. Conclusiones
A. Notación para la gramática BNF
B. Sintaxis de GOBSTONES 3.0
B.1. Programas GOBSTONES 3.0
B.2. Comandos
B.3. Expresiones
B.4. Programas interactivos
B.5. Definiciones auxiliares
B.6. Definiciones lexicográficas
C. Sintaxis de XGOBSTONES
C.1. Programas XGOBSTONES
C.2. Declaraciones de tipos
C.3. Comandos
C.4. Procedimientos predefinidos
C.5. Expresiones
C.6. Definiciones auxiliares
C.7. Definiciones lexicográficas
D. El bytecode de GOBSTONES 2.0 71
E. El bytecode de GOBSTONES 3.0 y XGOBSTONES 73
F. Gramática BNF utilizada por PYGOBSTONES 0.97 74
G. Implementación de GOBSTONES 3.0
G.1. Cambios de sintaxis
G.1.1. Punto de entrada program
G.1.2. Estructura if-then-else
G.1.3. Estructura switch-to
G.1.4. Comentarios de líınea y multi-línea
G.1.5. Repetición simple
G.1.6. Repetición indexada, rangos y secuencias explícitas
H. Programas GOBSTONES
H.1. Ejemplo de un programa en GOBSTONES 2.0
H.2. Pequeño juego en GOBSTONES 3.0
I. El formato GBB