Операторный язык – это такой способ кодирования алгоритма, в результате которого получается понятная для компьютера запись алгоритма - программа. Этот способ требует, как минимум, знания правил записи выражений средствами того или иного языка программирования.
Эволюция языков программирования показательна с точки зрения того, как менялась технология кодирования алгоритмов, упрощая труд программистов:
1. первые языки программирования – это машинные коды – аналог машинных команд. Структура команды включает код операции (как правило, числовой) и список операндов. Программирование требовало от программиста распределение переменных и команд по доступным адресам памяти, для чего необходимо было знать требуемые объемы команд и переменных. Для вычислений также использовался специальный регистр процессора - сумматор. В качестве операндов выступали не переменные, а их адреса. Например, пусть память компьютера, которой располагает программист, содержит адреса от 1 до 100, по каждому из которых доступен байт памяти. Нужно запрограммировать вычисление переменной z по формуле: z = a + b, причем a = 8, b = 10. Пусть имеется набор двухадресных машинных команд, включающий, в частности, команды:
|
|
Код операции | Объем операции | Действие |
3б | сложить операнды, результат – в сумматоре | |
2б | поместить содержимое сумматора по адресу | |
3б | поместить константу по адресу |
Программист распределяет переменные (с учетом размера их значений) по адресам:
Переменная | Требуемый объем памяти | Адрес |
a | 1б | |
b | 1б | |
z | 1б |
Тогда вся программа будет выглядеть следующим образом:
адрес памяти | содержимое памяти | комментарий |
- | для переменной a | |
- | для переменной b | |
- | для переменной z | |
126 8,1 | константа 8 помещается по адресу 1, т.е. вычисляется a = 8. После этого действия содержимое памяти по адресу 1 становится равным 8 | |
126 10,2 | константа 10 помещается по адресу 2, т.е. вычисляется b = 10. После этого действия содержимое памяти по адресу 2 становится равным 10 | |
124 1,2 | содержимое адресов 1 и 2 складывается, т.е. вычисляется a+b. Результат – в сумматоре | |
125 3 | содержимое сумматора размещается по адресу 3, т.е. выполняется присваивание z=a+b. После этого действия содержимое памяти по адресу 3 становится равным 18 |
В настоящее время машинные коды как средство кодирования алгоритма программистом используются для узко специализированных ЭВМ. В то же время машинные коды являются результатом трансляции программы, написанной на более развитом языке программирования, на внутренний язык компьютера.
|
|
2. автокоды явились развитием машинных кодов, когда числовые коды операций заменились мнемоническими обозначениями, по которым можно восстановить смысл операции, а в адресной части можно было использовать имена переменных, а не их адреса. Например, числовые коды операций 124 и 125 из предыдущего примера заменились мнемоническими кодами, соответственно, ADD (сложить, англ.) и MOVE (поместить, англ.). Тогда предыдущая задача для двухадресного кода запишется так: