Meskipun jauh lebih mudah daripada dalam bahasa mesin, menulis program - program panjang dalam bahasa perakitan sering kali sulit dan juga cenderung salah. Oleh karena itu, program yang paling praktis ditulis dalam bahasa pemrograman tingkat tinggi yang lebih abstrak yang dapat mengekspresikan kebutuhan programmer lebih mudah (dan dengan demikian membantu mengurangi kesalahan programmer). Bahasa - bahasa tingkat tinggi biasanya "dikompilasi" ke bahasa mesin (atau kadang - kadang ke dalam bahasa perakitan dan kemudian ke bahasa mesin) menggunakan program komputer lain yang disebut kompiler. Bahasa - bahasa tingkat tinggi lebih sedikit berkaitan dengan cara kerja komputer sasaran ketimbang bahasa perakitan, dan lebih berkaitan dengan bahasa dan struktur problem mereka yang akan dipecahkan oleh program terakhir. Oleh karena itu, sering kali kita dapat menggunakan berbagai kompiler untuk menerjemahkan program bahasa tingkat tinggi yang sama ke dalam bahasa mesin dari banyak jenis komputer. Ini adalah bagian dari perangkat lunak seperti video game yang tersedia untuk arsitektur komputer yang berbeda seperti komputer pribadi dan berbagai konsol video game.
Bahasa kebaktian yang diterjemahkan ke dalam bahasa mesin dilakukan oleh komputer jenis apa?
disebut kompiler