Máquina abstracta


Una máquina abstracta , también llamada computadora abstracta [ cita requerida ] , es una computadora teórica utilizada para definir un modelo de computación . [1] [2] La abstracción de los procesos informáticos se utiliza tanto en las ciencias de la computación como en las disciplinas de ingeniería informática y, por lo general, asume un paradigma de tiempo discreto . [ cita requerida ]

Una máquina abstracta típica consta de una definición en términos de entrada, salida y el conjunto de operaciones permitidas utilizadas para convertir la primera en la segunda. El ejemplo más conocido es la máquina de Turing . [1] [2] [ verificación necesaria ]

Las definiciones más complejas crean máquinas abstractas con conjuntos completos de instrucciones , registros y modelos de memoria . [1] Un modelo popular más similar a las máquinas modernas reales es el modelo RAM , que permite el acceso aleatorio a ubicaciones de memoria indexadas. A medida que crece la diferencia de rendimiento entre los diferentes niveles de memoria caché, los modelos sensibles a la memoria caché, como el modelo de memoria externa y el modelo sin memoria caché, están creciendo en importancia. [ cita requerida ]

Una máquina abstracta también puede referirse a un diseño de microprocesador que aún no se ha implementado (o no se pretende) como hardware. Una máquina abstracta implementada como una simulación de software, o para la que existe un intérprete , se denomina máquina virtual . [1]

En la teoría de la computación , las máquinas abstractas se utilizan a menudo en experimentos mentales relacionados con la computabilidad o para analizar la complejidad de los algoritmos . Esta aplicación de máquinas abstractas está relacionada con el tema de la teoría de la complejidad computacional .

Las máquinas abstractas también se pueden usar para modelar tipos de datos abstractos , que se pueden especificar en términos de su semántica operativa en una máquina abstracta. Por ejemplo, una pila se puede especificar en términos de operaciones en una máquina abstracta con una matriz de memoria. Mediante el uso de máquinas abstractas, es posible calcular la cantidad de recursos (tiempo, memoria, etc.) necesarios para realizar una operación particular sin tener que construir un sistema físico. [ cita requerida ] [ aclaración requerida ]


Una carrera de una máquina de Turing .
Representación pictórica de una máquina Krivine .