MAPL es una máquina abstracta creada para la asignatura de Diseño de Lenguajes de Programación de la Universidad de Oviedo realizada por Raúl Izquierdo Castanedo (raul@uniovi.es).
Para ver un uso básico de MAPL, se recomienda ir al tutorial de MLang, en donde se muestra la construcción de un compilador sencillo y se usa MAPL como código objeto.
El código fuente de MAPL está hecho con C# 2.0, por lo que es antiguo y puede que use alguna API ya deprecated. Sin embargo, lo dejo aquí por si puede ser de utilidad a alguien.
MAPL incluye:
- Implementación de una máquina virtual de un lenguaje de pila sencillo diseñado para ser el código objeto de un curso de compiladores.
- Permite la ejecución en línea de comando y la depuración en un interfaz gráfico.
- Validación de los programas utilizando ejecución simbólica.
- El depurador que permite:
- Ejecución paso a paso de los programas, así como deshacer la ejecución de instrucciones.
- Visualización de la pila y el heap.
- Fusión de alto y bajo nivel, para mostrar así las instrucciones generadas para cada estructura de alto nivel.
- Registro de errores y reproducción de la secuencia de ejecución.
MAPL se ejecuta sobre Windows y no requiere instalación. Simplemente hay que descomprimir el zip. Es posible que solicite instalar el .NET Framework 2.0, pero no debería ser necesario si se tiene una versión más moderna de Windows.
En la sección de releases hay un zip con la última versión ejecutable que, en principio, debería ser totalmente operativa. Incluye también unos tutoriales para aprender el juego de instrucciones.
MAPL is an abstract machine created for the subject of Programming Languages Design at the University of Oviedo by Raúl Izquierdo Castanedo (raul@uniovi.es)
To see a basic usage of MAPL, it is recommended to visit the MLang tutorial, where the construction of a simple compiler is shown and MAPL is used as object code.
The source code of MAPL is made with C# 2.0, so it is old and may use some deprecated API. However, I leave it here in case it can be useful to someone.
The release includes:
- Implementation of a virtual machine for a simple stack language designed to be the object code of a compiler course.
- Allows command line execution and debugging in a graphical interface.
- Program validation using symbolic execution.
- The debugger allows:
- Step-by-step execution of programs, as well as undoing instruction execution.
- Visualization of the stack and heap.
- High and low-level merging, to show the instructions generated for each high-level structure.
- Error logging and playback of the execution sequence.
MAPL runs on Windows and does not require installation. Just unzip the zip file. It may request to install .NET Framework 2.0, but it should not be necessary if you have a more modern version of Windows.
In the releases section, there is a zip with the latest executable version that should be fully operational. It also includes some tutorials to learn the instruction set.
Pull requests are welcome! If you’d like to contribute:
- Fork the repository
- Create a feature branch
- Submit a pull request with clear explanation
This software is released under a custom non-commercial license. You must credit the original creator when using this code, even in modified form. Commercial use is prohibited unless authorised by the original creator.
See the LICENSE file for full details.