Итак, вычислительная машина работает только со словами из
двух знаков — нулей и единиц. В одном из романов 70-х годов (В. Морозов,
«Программист») есть такая история: начальство нагрянуло в вычислительный центр,
когда в машинном зале чинили компьютер (половина устройства была попросту
отключена), и потребовало немедленно продемонстрировать, как машина умеет
считать. Программист, к которому было обращено требование, не растерявшись,
задал машине задачу прямо в двоичных кодах, умудрившись нигде не ошибиться.
Довольное начальство удалилось, а программист этот прославился на весь
институт: мало кто может говорить с машиной на ее родном языке!
И в самом деле, трудно не ошибиться, ведь слова длинные и
не значат для нас ничего. С другой стороны, трудно научить машину обычному
человеческому языку: в каждом языке есть множество тонкостей, машине недоступных.
Но общаться необходимо! Что же делать? Пришлось придумать «промежуточный
язык», на котором нетрудно договориться обеим сторонам. Таких языков
существует довольно много, и все они разные.
Первые языки программирования, по сути, лишь немного
упрощали общение, заменяя буквенными обозначениями команды, понятные машине:
сложить, умножить, вычесть, разделить, присвоить переменной значение (т. е.
считать, что в данный момент переменная равна такому-то числу) и т. д. Программы,
написанные на таких языках, довольно длинны, поскольку каждое мало-мальски
сложное действие нужно «разжевать». И все же это куда удобнее, чем вручную
переводить свою программу в двоичные коды. Теперь специальная
программа-переводчик (транслятор) могла растолковать компьютеру, что к чему.
Такие языки и теперь верно служат людям, но используются
профессионалами — системными программистами — в тех случаях, когда программа
должна учитывать специфику данной машины, для составления экономных и
эффективных программ.
Немного позже появились алгоритмические языки, в которых
уже нет необходимости подробно расписывать каждое действие, а можно писать
целые формулы и фразы, иногда довольно громоздкие, — машина переведет их на
свой язык сама. И не только переведет — она найдет ошибки и сообщит о них: ведь
машина понимает только то, что сказано правильно. А поскольку человеку
свойственно ошибаться, крайне редко случается, чтобы программа стала понятна с
первого раза — ее приходится отлаживать, т. е. вылавливать ошибки одну за
другой. Как говорят программисты, «сегодня я нашел и исправил очередную последнюю
ошибку»...
|