Программистам не потребовалось много времени, чтобы осознать следующее: возможности вычислительной машины при обработке символов можно использовать и для трансляции языков еще более "высоких уровней". Обратимся, например, к следующему отрывку текста на языке ассемблера:
GET a
ADD b
STO с
Располагая даже теми минимальными сведениями, которые были изложены ранее, можно понять, что этот отрывок представляет собой закодированное алгебраическое выражение с=а+b.
Очевидно, что чрезвычайно простая процедура обеспечит трансляцию алгебраического выражения в приведенный выше отрывок текста на языке ассемблера. Теперь, не обращая особого внимания на детали, можно сказать, что следующий ниже фрагмент представляет закодированную процедуру извлечения квадратного корня, которой мы уже посвятили так много времени.
Процедура SQRT (n):
Возьмите допустимое отклонение = 0,001;
Возьмите предыдущее приближение = 0;
Возьмите новое приближение = 1;
До тех пор пока |предыдущее приближение - новое приближение| > допустимого отклонения,
делайте:
предыдущее приближение=новое приближение;
новое приближение = (предыдущее приближение ** 2 + n ) / 2 * предыдущее приближение;
Конец;
Результат = новое приближение;
Конец процедуры SQRT.
[Прим. перев.: Название процедуры извлечения корня SQRT - аббревиатура, образованная на основе соответствующего английского термина]
Трансляция этой процедуры на язык ассемблера осуществляется сравнительно просто. В сущности на нескольких предыдущих страницах мы именно этим и занимались.