Mówisz o urządzeniach do symulacji tutaj używa się C i assembler'a ewentualnie zamiast C można użyć C++ ale na tak niskim poziomie pewne właściwości tego języka mogą utrudniać to nie znaczy, że nie można go tu użyć, sprawdzi się lepiej w aplikacji krytycznej. Wszystko zależy od architektury, trzeba znać assemblera dla niej i umieć używać kompilatora wyższego poziomu (C i C++). Ciekawym pomysłem jest użycie maszyny wirtualnej dowolnego języka, jeżeli taka istnieje pod dany sprzęt. Swoją drogą można też użyć Javy (oprócz aplikacji na Javie jest wiele urządzeń np. telewizory) ale tutaj odradzam ponieważ nie ma kontroli takiej jak w C/C++ i assemblerze, oraz nie .