Conceptos y Funcionamiento de Máquinas Abstractas
Clase 2 de 21 • Curso de Historia de la Programación: Lenguajes y Paradigmas
Resumen
Una máquina abstracta es una computadora digital que ejecuta algoritmos, los cuales están formalizados para que la máquina entienda. Se trata de una máquina abstracta porque estamos aislando las características de una computadora para llevarlas a este concepto.
Estructura de una máquina abstracta
La estructura general de una máquina abstracta consiste en:
- Una memoria donde almacena datos y sus programas.
- Un intérprete del lenguaje de programación que maneja las secuencias de control del programa, controla la transferencia de datos y además maneja su memoria.
- Unas operaciones que nos darán un resultado que será la instrucción que deseamos.
Operaciones de una máquina abstracta
Una máquina abstracta puede realizar operaciones para:
- Procesar datos primitivos: Un dato primitivo es aquel con el que un lenguaje de programación trabaja de forma nativa. Puede tener datos primitivos de tipo entero, flotante, booleanos, etc. Ojo, los datos primitivos de un lenguaje, no son necesariamente primitivos en otro.
- Controlar secuencia de ejecución de operaciones: La máquina abstracta no solo será capaz de llevar la secuencia de operaciones, también estructuras de control y condicionales como
If
,Else
. Podrá usar ciclos comoWhile
,For
, etc. - Controla transferencia de datos: Esto quiere decir que la información puede pasar de las instrucciones a una estructura de dato y viceversa. Con tal de que la información pueda ser utilizada para sus procesamientos.
- Manejo de memoria: La máquina abstracta usa este recurso para almacenar los datos que se derivan de las operaciones de los programas o incluso, almacenar información que le indiquemos.
Ciclo de ejecución
El ciclo de ejecución se refiere a los pasos que toma una máquina abstracta para ejecutar operaciones.
- Inicia el programa.
- Se traen las instrucciones a través del intérprete del lenguaje de programación, el cual decodifica las instrucciones.
- Trae sus operandos para realizar las operaciones.
- Elige que operación va a ejecutar según las instrucciones.
- Ejecuta las operaciones indicadas. Una o varias. Incluso la instrucción detener el programa.
- Si se ejecuta detener, el programa se termina. En caso contrario, se guardan los resultados y se regresa al segundo paso.

Máquina de Turing:
Es un ejemplo de máquina abstracta. La Máquina de Turing tiene 2 cintas en cada lado, y en el centro tiene un dispositivo lector-escritor, es capaz de leer o escribir sobre él mismo. En los rodillos hay instrucciones, indicadas con números 1 y 0. Puede indicar que escriba, lea, etc. En un sentido abstracto, podemos entender que la maquina de Turing realiza los procesos que vimos antes.
Conclusión
La máquina abstracta es un concepto que nos ayuda a entender como funcionan las computadoras y los lenguajes de programación en general. Una máquina abstracta es capaz de realizar operaciones complejas si la equipamos para ello.
Contribución creada por: Ciro Villafraz, con los aportes de Iris Valentina Barrios y Carlos José González Juan.