В большинстве компьютеров, отдельные инструкции хранятся в виде машинного кода, каждой команде выделяется время и уникальный код (его код операции или код операции для краткости). Команда для сложения двух чисел будет иметь один код операции; команда умножить их будет иметь другой код операции, и так далее.
Простейшие компьютеры способны выполнить любую из нескольких различных инструкций; более сложные компьютеры имеют несколько сотен на выбор, каждый с уникальным цифровым кодом. Поскольку память компьютера может хранить номера, он также может хранить коды инструкций. Это приводит к важному факту, что целые программы (которые просто списки этих инструкций) можно представить в виде списков чисел и сами могут манипулировать внутри компьютера таким же образом, как числовые данные.
Фундаментальная концепция хранения программ в памяти компьютера наряду с данными они работают и в этом заключается суть фон Неймана, или хранится программа, архитектура. В некоторых случаях, компьютер может хранить все или некоторые из ее программы в памяти, которая хранится отдельно от данных она работает. Это называется архитектурой Гарварда после компьютера Гарварда Марка I. Современным компьютерам фон Неймана присущи некоторые черты архитектуры Гарвардского проекта таких, как тайники процессора .
Хотя вполне возможно, писать компьютерные программы, как длинные списки номеров ( машинного языка ) и в то же время эта техника была использована во многих первых компьютерах, это очень утомительно и код потенциально подвержены ошибкам делать это на практике, особенно для сложных программ .
Вместо этого, каждое базовое обучения может дать краткое имя, которое является показателем его функции и легко запомнить — на мнемоническом. Например ADD, SUB, MULT. Эти мнемоники все вместе известны как компьютер ассемблер . Преобразование программы, написанной на языке ассемблера, компьютер может фактически понять (машинный язык) обычно это делается с помощью компьютерной программы под названием ассемблера.
Языки машины и языки монтажные, которые их представляют (называемыми низкоуровневыми языками программирования), как правило, уникальны для конкретного типа компьютера. Например, ARM архитектура компьютера (например, можно найти в КПК) не может понимать язык машина с Intel Pentium или AMD Athlon 64 компьютера, который может быть в ПК .
Языки программирования обеспечивают различные способы задания программы для компьютеров для запуска. В отличие от естественных языков , языки программирования предназначены не разрешить никаких разночтений и быть кратким. Они чисто письменными языками и часто трудно читать вслух. Они, как правило либо переведены на машинный код с помощью компилятора или ассемблера Перед началом обкатки или переведена непосредственно во время выполнения с помощью переводчика . Иногда программы выполняются с помощью гибридного метода двух техник.
Языки машины и языки монтажные, которые их представляют (называемыми низкоуровневыми языками программирования), как правило, уникальны для конкретного типа компьютера.