Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, информацией, задаваемой в адресах, а также набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может использовать любую команду и каждую ячейку памяти компьютера, использовать все возможности имеющихся машинных операций для конкретного компьютера.
В случае, когда нужно иметь эффективную программу, учитывающую специфику конкретного компьютера, вместо машинных языков используют также близкие к ниммашинно-ориентированные языки (т.н. ассемблеры).
Язык ассемблера — это язык условных обозначений команд, используемый для программ, записанных в машинном коде.
Он позволяет программисту пользоваться текстовымимнемоническими кодами, присваивать символические имена регистрам компьютера и памяти, задавать удобные способы адресации
Перевод программы с языка ассемблера на машинный язык осуществляется транслятором, который также называется ассемблером .
Алгоритмические языки являются машинно-независимыми, что облегчает работу программиста и повышает надежность создаваемых программ.
Основные преимущества алгоритмических языков:
· текст программы на алгоритмическом языке более понятен, чем на машинном языке;
· набор операций в языке определяется классом решаемых задач;
· операторы алгоритмического языка позволяют с помощью одного оператора задавать целый набор машинных команд;
· операции задаются с помощью математических обозначений;
· данным присваиваются индивидуальные имена;
· в языке может быть применен более широкий набор типов данных по сравнению с набором машинных типов данных.
Алгоритмический язык образуют три составляющие: алфавит, синтаксис и семантика.
Алфавит — это фиксированный для данного языка набор символов из которых должен состоять текст на этом языке.
Синтаксис — это правила построения конструкций языка, позволяющие определить правильность написания программы.
Семантика определяет смысловое значение конструкций языка. Семантика устанавливает, какие последовательности действий описываются теми или иными конструкциями языка.