[39] Языки высокого уровня менее связаны с работой на целевом компьютере, чем на ассемблере и больше связана с языком и структурой задачи (ов), на решение которой окончательной программы. Поэтому часто можно использовать различные компиляторы, чтобы перевести ту же программу языке высокого уровня в машинный язык многих различных типов компьютера. Это часть средств, с помощью которых программное обеспечение, как видео-игр могут быть сделаны для различных компьютерных архитектур, таких как персональные компьютеры и различные игровые приставки.
Задача разработки больших программных систем представляет собой значительную интеллектуальный вызов. Производство программного обеспечения с приемлемо высокой надежностью в предсказуемой графика и бюджета исторически было трудно; академический и профессиональный дисциплина инженерии программного обеспечения концентрируется именно на этот вызов.