Máquina abstrata

Uma máquina abstrata (ou computador abstrato) é um modelo teórico de um sistema computacional de hardware ou software usado para detalhar o funcionamento do sistema,[1] usado na teoria dos autômatos. A abstração de processos computacionais é usada tanto na ciência da computação quanto na engenharia de software, e geralmente assume um tempo discreto, dividido em amostras.

Na teoria da computação, as máquinas abstratas são geralmente usadas em experimentos mentais relacionados à computabilidade ou para analisar a complexidade de algoritmos. Uma máquina abstrata típica consiste em uma entrada, uma saída, e um conjunto de operações que transformar uma em outra. Um exemplo clássico é a máquina de Turing,[1] mas também podem ser citados as gramáticas livres de contexto e os autômatos finitos.

Definições mais complexas criam máquinas abstratas com um conjunto completo de instruções, registradores e modelos de memória. Também podem se referir a um microprocessador que ainda não foi implementado em hardware. Uma máquina abstrata implementada como uma simulação de software, ou interpretada de alguma forma, é chamada de máquina virtual.[1]

Através das máquinas abstratas é possível estipular a quantidade de recursos (como em tempo e espaço de armazenamento) necessária para realizar uma tarefa sem construir o sistema de fato.

Notas

  1. a b c Macura

Referências

Macura, Wiktor K. «Abstract Machine». Wolfram MathWorld (em inglês). Wolfram Research, Inc. Consultado em 15 de agosto de 2009 

Ver também

  • Abstração (programação)
  • Interpretação abstrata
  • Tempo discreto