Машинный язык (machine language)

Состоит из нолей и единиц. Программа в машинном коде состоит из последовательности машинных инструкций в двоичном коде, которые содержат коды операций и ячейки памяти, участвующие в операции.

Программа на машинном языке читается компьютером напрямую, без промежуточных шагов.

Processor’s instruction set looks like:

Command code Command
00110 read (110010011010100010001001…)
10110 write (011000100101110100100010…)
11010 move (111001010110101001001011…)

Язык ассемблера (assembly language)

Суть: у нас появляется вот такая табличка:

mov 11010
add 11100
sub 00100

Это символьное представление машинного языка конкретного процессора. В машинный код преобразуется ассемблером. Обычно каждая строка кода сборки производит одну машинную инструкцию (однозначное соответствие).

Языки программирования высокого уровня (High-level programming languages)

Это языки программирования, в которых используются операторы, состоящие из ключевых слов, похожих на английские слова, таких как «FOR», «PRINT» или «IF».

Каждое утверждение языка высокого уровня соответствует нескольким инструкциям машинного языка.

На данные ссылаются, используя описательные имена, которые называются имена переменных. Т.е. вместо того, чтобы использовать каждый раз её огромный сложный адрес мы ей присваиваем понятное нам имя и обращаемся по этому имени.

Пример программ на этих типах ЯП:

BB 11 01 B9 0D 00 B4 0E 8A 08 5D 13
mov AH, 09h
mov DX, offset message
int 21h
int 20h
message DB 'Hello World', 13, 10, '$'
program HelloWorld; 
begin
	write('Hello, World!'); 
end.

<aside> 💡 Почему BB, а не 0110…101? Это hex-коды.

binary: 1101 0010 hex: D 2

$11010010_{2} = D2_{16}$

</aside>