Записать алгоритм можно на любом языке (на русском, на китайском, на языке условных знаков). Однако, для записи алгоритма для такого строгого исполнителя, как вычислительная машина, не все языки годятся. Вычислительная машина «умеет» выполнять лишь определенный набор машинных команд. Именно в терминах машинных команд должен быть сформулирован для нее алгоритм.
Записывать алгоритмы для вычислительной машины в кодах очень непроизводительно. Поэтому для записи алгоритмов для ЭВМ разработаны специальные строгие математические языки, называемые алгоритмическими языками. В настоящее время существует много алгоритмических языков. Они отличаются друг от друга различными выразительными средствами записи алгоритмов и различными возможностями. Но всех их объединяет одно – для каждого из них разработаны специальные программы, называемые трансляторами, с помощью которых текст, написанный на алгоритмическом языке, превращается в алгоритм, записанный на языке машинных кодов.
Разработчики алгоритмических языков вынуждены искать компромисс между простотой транслятора и простотой использования алгоритмического языка. Чем ближе выразительные средства алгоритмического языка к машинным кодам, тем проще сам транслятор, тем более эффективен алгоритм, записанный в машинных кодах. Чем ближе выразительные средства алгоритмического языка к бытовому разговорному языку, тем легче программисту записать на нем алгоритм. Однако за простоту нужно платить. В результате, алгоритм, записанный в кодах машины, полученный транслятором с такого языка, менее эффективен, а сам транслятор более сложен. Языки, близкие к разговорному по своим выразительным средствам, принято называть языками высокого уровня, тогда как языки, близкие к кодам машины по своим выразительным средствам, называют языками низкого уровня, или машинно-ориентированными языками.
Алгоритмические языки служат для записи алгоритмов. При разработке алгоритма не следует ограничиваться средствами, предоставляемыми конкретным алгоритмическим языком. Более естественно для уже разработанного алгоритма выбрать алгоритмический язык, выразительные средства которого наиболее подходят для его записи. В связи с этим, разработку алгоритмов целесообразно вести не зависимо от имеющихся в арсенале алгоритмических языков, а на специальном строгом математическом (не допускающем двусмысленности) языке максимально высокого уровня. Таким языком может служить язык схем алгоритма.
Мышление у человека устроено так, что решение задачи может быть получено на абстрактном понятийном уровне, вообще без привлечения языков. Такое решение может быть сформулировано и обсуждаться с коллегами на бытовом языке, однако, для реализации на компьютере необходимо полученное решение формализовать. Если формализацию провести с использованием языка схем алгоритма по определенным правилам, то можно перевод решения задачи на реальный алгоритмический язык свести к некоей формальной процедуре. Такой подход позволяет программисту максимальным образом сконцентрироваться на получении решения поставленной задачи на абстрактном понятийном уровне и на записи этого решения на языке очень близком к разговорному. Этапы создания программы решения задачи можно изобразить с помощью следующей диаграммы:
Здесь этап 1 – творческие усилия составителя алгоритма, этап 2 – формализованный перевод алгоритма в текст на алгоритмическом языке, этап 3 – трансляция текста с алгоритмического языка в коды машины.