Программа на машинном языке имеет вид таблицы из цифр, каждая ее строчка соответствует одному оператору - машинной команде, которая является приказом машине выполнить определенные действия. При этом в команде, например, первые несколько цифр являются кодом операции, т.е. указывают машине, что надо делать (складывать, умножать и т.п.), а остальные цифры указывают, где именно в памяти машины находятся нужные числа (слагаемые, сомножители и т.п.) и где следует запомнить результат операции (сумму, произведение и т. п.).
Например, команда сложения для ЭВМ БЭСМ-2 выглядит так: 01 0070 0071 0072.
Первые две цифры 01 - это код операции сложения. По такой команде машина складывала число, хранящееся в ячейке памяти с номером 0070, с числом из ячейки с номером 0071. Результат записывался в ячейку с номером 0072. Номера ячеек в команде могут совпадать. Если перед выполнением команды 01 0073 0074 0073 в ячейку 0074 записать число 1, то число в ячейке 0073 увеличится на единицу, а после выполнения команды 01 0075 0075 0075 число в ячейке 0075 увеличится вдвое.
Составление программ на машинном языке - очень тяжелая и кропотливая работа, требующая чрезвычайного внимания и высокой квалификации программиста. Чтобы облегчить и повысить производительность его труда, были разработаны языки программирования, похожие на привычный язык математических формул.
Язык программирования задается тремя компонентами: алфавитом, синтаксисом и семантикой.
Алфавит - это набор различимых символов: букв, цифр, специальных знаков и т.п.
Например, алфавит машинного языка состоит из двух символов: 0 и 1, а если программа записана в восьмеричной системе счисления, то из восьми символов: 0, 1, 2, 3, 4, 5, 6 и 7.
Алфавит одного из популярных языков программирования - ФОРТРАНа (ФОРТРАН - сокращение от ФОРмульный ТРАНслятор, т.е. формульный переводчик) содержит такие символы:
двадцать шесть прописных (заглавных) букв латинского алфавита: А, В, С, ..., Z;
десять арабских цифр: 0, 1, 2, …, 9 (цифра 0 обычно перечеркивается, чтобы отличить ее от буквы О);
специальные знаки: « » (пробел), «=» (для операции присваивания), «+» (для операции сложения), «-» (для операции вычитания), «*» (для операции умножения), «**» (для операции возведения в степень) «/» (для операции деления), «(» и «)» (для изменения порядка проведения вычислений, для записи функций и др.), «,» (используется как разделительный знак при перечислениях), «.» (для отделения целой части числа от дробной вместо более привычной десятичной запятой), «'» (апостроф используется при печати текстов), «» (служебный знак для обозначения денежной единицы, иногда заменяется на знак доллара «$» или на ромб «»).
Синтаксис в языке программирования - это совокупность правил образования конструкций языка из символов, определенных алфавитом. Например, правило образования одной из конструкций языка ФОРТРАН - идентификатора, или просто имени, заключается в следующем: идентификатор - это последовательность от одной до шести букв или цифр, обязательно начинающаяся с буквы.
Примеры идентификаторов:
А А 12345 ALFA
1 1067890 INDEX
Семантикой в языке программирования называют совокупность правил истолкования конструкций языка, образованных в соответствии с синтаксисом.
Например, правила истолкования идентификатора переменной в ФОРТРАНе состоят в следующем:
идентификатор определяет место в памяти машины, выделенное для хранения текущего значения переменной;
первая буква идентификатора указывает, какого вида информация хранится в определяемом месте: если идентификатор начинается с одной из букв I, J, К, L, М или N, то переменная может принимать только целочисленные значения.
Большинство из языков программирования, разработанных к настоящему времени, являются последовательными. Программы, написанные на них, представляют собой последовательность приказов (инструкций, операторов). Эти операторы последовательно один за другим обрабатываются на машине при помощи так называемых трансляторов. Как правило, транслятор - это довольно большая программа на машинном языке, которая заменяет каждый оператор языка программирования соответствующей ему группой машинных команд.
В результате выполнения оператора присваивания языка ФОРТРАН переменная, записанная в левой части оператора (до знака «=»), получит значение, вычисленное по правилу, записанному в правой части (после знака «=»). Например, оператор