Nel corso di una lunga e complessa programmazione, viene simulata l'esistenza di un computer (con set di istruzioni, linguaggio macchina, compilatore ed interprete) del tutto virtuale, senza intenzione di costruirla veramente, ma al solo scopo di provare il software in elaborazione su una macchina "costruita appositamente". Ciò consente uno sviluppo più rapido del software ed una maggiore compattezza e facilità di adattamento ad altri sistemi operativi.