Tietokonesimulaattori on tietokoneella suoritettava ohjelma jonkin järjestelmän simuloimiseksi saadakseen paremman käsityksen järjestelmän toiminnasta. Tietokonesimulaattoria voidaan käyttää myös toisen tietokoneen simulointiin. On olemassa kaksi päätyyppiä: koko järjestelmän simulaattori ja Instruction Set Simulator (ISS). Tämän tyyppistä tietokonesimulaattoria käytetään usein uusien ohjelmistojen testaamiseen monenlaisilla laitteistokokoonpanoilla ilman fyysisten tietokoneiden käyttöä.
Perustason tasolla tietokonesimulaattoria käytetään luomaan tosielämän tilanne, jossa monien eri tilojen testaaminen ei olisi helppoa tai turvallista. Tässä tapauksessa tietokonesimulaattorin käyttäminen säästää paljon aikaa ja resursseja ja voi jopa mahdollistaa perusteellisen testauksen, joka olisi fyysisesti mahdotonta todellisessa maailmassa. Tietokonesimulaatioita on käytetty tekniikassa ja tieteessä jo jonkin aikaa, ja viime vuosina, kun laitteisto on tullut vankkaa ja ohjelmisto on kehittynyt, nämä simulaatiot pystyvät saavuttamaan yhä enemmän.
Esimerkki tietokonesimulaattorin käytöstä voi olla insinööritoimisto, joka pyrkii suunnittelemaan paremman siiven lentokoneille. Sen sijaan, että kuluttaisi resursseja jokaisen uuden mallin prototyyppien rakentamiseen ja testaamiseen tuulitunnelissa tai oikeilla lentokoneilla, voidaan suorittaa simulaatio. Jos tuulen juokseva dynamiikka mallinnetaan tarkasti, mitä tahansa muuttujien määrää voidaan muuttaa virtuaalisen siiven testaamiseksi miljoonassa eri skenaariossa, joista osa saattaa olla mahdotonta luoda uudelleen todellisessa maailmassa. Lisäksi jos malli ei ole ihanteellinen, sitä voidaan helposti muokata ja testata uudelleen ilman uuden fyysisen objektin rakentamista. Tällä tavoin satoja tai tuhansia malleja voidaan kokeilla suhteellisen lyhyessä ajassa, mikä mahdollistaa paljon suuremman hienosäädön kuin muutoin olisi mahdollista.
Laitteiston leviämisen myötä ohjelmistovalmistajat tarvitsevat myös simuloida eri ympäristöjä ohjelmilleen. Koska olisi mahdotonta ajaa ohjelmistoa jokaisella tietokoneella maan päällä, vielä vähemmän sitä kaikilla muunnetuilla järjestelmillä, joissa on enemmän tai vähemmän videomuistia, kolmannen osapuolen äänikortteja ja kymmeniä muita mukautettavia komponentteja, sen sijaan käytetään tietokonesimulaattoria. Tällä tavalla ohjelmistoa voidaan käyttää kymmenillä tuhansilla hypoteettisilla laitteistokokoonpanoilla, ja vikoja voidaan havaita ja korjata kauan ennen kuin tuote lähetetään asiakkaille.
Ohjejoukkosimulaattoreita käytetään yleisesti tähän tehtävään. He voivat muokata muuttujia, jotka edustavat eri koneiden erilaisia laitteistorajoituksia. Näitä muuttujia voidaan muuttaa, ohjelma voidaan ajaa ja sitten muuttujia voidaan muuttaa uudelleen, jolloin ohjelmoija voi testata monia järjestelmiä lyhyessä ajassa.
Toinen simulaattorityyppi on koko järjestelmän simulaattori. Vaikka koko järjestelmän simulaattori on samanlainen kuin ISS, se mahdollistaa paljon kattavamman ympäristön sallimalla simuloida kokonaisia käyttöjärjestelmiä ja ohjelmisto-ohjaimia. Tämä mahdollistaa entistä suuremman tarkkuuden simuloinnissa, mikä tarjoaa paremman mahdollisuuden havaita ja korjata vikoja.