SimCT es un simulador web del Computador Teórico (CT) usado en la Uniersidad de Oviedo (UniOvi). El computador fue creado por profesores del Área de Arquitectura de Computadores (ATC) de la universidad. La versión inicial del simulador web ha sido desarrollada como Trabajo Fin de Máster por Jesús Andrés Lorenzana y está disponible en este repositorio.
El simulador ofrece la posibilidad de configurar la memoria y los dispositivos periféricos del CT, así como cargar y ejecutar programas. Además, permite visualizar el funcionamiento interno del computador mientras se ejecutan las instrucciones, ya sea de forma continua o instrucción por instrucción. También se brinda la opción de realizar una ejecución paso a paso de cada ciclo de una instrucción.
El simulador tiene también un modo manual en el que se puede seleccionar un conjunto de señales que se desea ejecutar.
La siguiente imagen muestra un ejemplo de funcionamiento del simulador:
Para saber más sobre el Computador Teórico, se puede consultar el libro Computadores y Redes.
El simulador está desarrollado íntegramente en JavaScript como una aplicación cliente, sin necesidad de un servidor. Se puede acceder a una versión ejecutable alojada en GitHub en esta dirección.
Además, se puede descargar este archivo y ejecutarlo localmente.
El simulador está publicado como software libre con licencia MIT. Para desarrollar, se puede clonar este repositorio y utilizar cualquier editor.
El código incluye tests para validar su funcionamiento. Para ejecutarlos, instalar node.js y ejecutar en el directorio raíz de este repositorio estas órdenes:
npm install
npm test
Estas extensiones facilitan el desarrollo en Visual Studio Code:
- StandardJS para aplicar el estilo Standard JS al formatear y validar el código JavaScript.
- Jest para ejecutar los tests directamente desde el editor.
- Jest Runner para ejecutar tests individuales desde un menú contextual en la ventana de edición.
- Live Server (5 server) para ejecutar el simulador en un servidor web local que se actualiza al editar el código.
Si se desean compartir los cambios que se hagan al código, se recomienda clonar este repositorio y hacer un pull request.
La versión del proyecto se define en el archivo app/config/version.js.
Para actualizarla, simplemente hay que modificar la constante version en este archivo.
Tras actualizar el número de versión y hacer el commit correspondiente, es conveniente crear una etiqueta de git para la nueva versión:
git tag <nuevo_numero_de_version>
git push origin <nuevo_numero_de_version>Se debe sustituir <nuevo_numero_de_version> por el número de versión real (p. ej.,
v1.0.2).
- Arreglar error en la resta y la instrucción de comparación para número enteros.
- Evitar que el usuario pueda mover ventanas fuera de la pantalla.
- Primera versión con sistema de versionado.
