Выбрать главу

Строгий грамматический контроль имеет большое положительное значение, так как с его помощью вылавливаются многие ошибки программиста. Увы! Программист продолжает ошибаться, даже пользуясь самым совершенным алгоритмическим языком. Столь щепетильная придирчивость ЭВМ к грамматическим ошибкам заставляет тратить слишком много времени на возвраты программ и исправление ошибок. ЭВМ вполне заслуживает того, чтобы ей доверили самостоятельно исправлять большую часть грамматических ошибок типа забытых запятых.

Нельзя обойти молчанием и то, что появление алгоритмических языков, да еще различных, добавило в изрядно заполненную всевозможными терминами мусорную корзину нашего человеческого языка еще немалую толику. Никогда не забудем, какое количество сил пришлось затратить, чтобы усвоить наконец, что за премудрость кроется под магическим словом «идентификатор»! И какая взяла злость, когда стало ясно, что идентификатор всего лишь адрес ячейки памяти.

Заканчивая рассуждения о языках, мы лишь повторим то, что уже сказано на страницах этой книги по поводу изучения языков вообще. Сейчас много говорят о всеобщей компьютерной грамотности и в первую очередь связывают ее с изучением алгоритмических языков. При этом процесс обучения даже простейшему языку, скажем Бейсику, возводится в рамки самостоятельной сложной проблемы. Мы продолжаем придерживаться собственной точки зрения. Конечно, можно поступать и так: сначала вызубрить наизусть все руководство к языку, а это книжка объемом не менее полусотни страниц, и только потом начинать им пользоваться. При подобной методике процесс обучения займет не меньше чем полгода. Мы настойчиво советуем использовать неоднократно проверенный и на самих себе, и на нескольких сотнях учащихся метод. Выучить только то, что сказано на предыдущих страницах, и ничтоже сумняшеся садиться за клавиатуру ЭВМ. Все остальное придет само, и вы даже не заметите как.

Гувернеры

Помните бессмертные строчки Пушкина?

Судьба Евгения хранила, Сперва мадам за ним ходила, Потом месье ее сменил.

И с ЭВМ так же было. Прежде всего ЭВМ научилась говорить. При этом ей предложили сразу несколько языков на выбор, а подчас предлагалось пользоваться несколькими языками одновременно. Каждому языку соответствовала своя программа-транслятор, которая, кроме основной функции собственно перевода с одного языка на другой, выполняла много других. В их числе уже упоминавшееся выявление ошибок, воспринятие текста, вводимого в машину (это делалось разными способами), а также подготовка и вывод текстов, предназначенных для пользования.

Постепенно стало ясно, что совмещать все функции в одной программе-трансляторе нецелесообразно. Почему? Хотя бы по той простой причине, что если машина оперирует сразу с несколькими языками, то и трансляторов в ее памяти хранится несколько, а в определенной части своих функций они дублируют друг друга. Было решено сохранить за трансляторами основную функцию перевода и частично контроля. Кроме того, появилось много разнообразных программ — редакторов, компоновщиков, организаторов, с помощью которых несколько фрагментов, написанных на разных языках, объединялись в единый последовательный текст (одну программу).

Сейчас имеет смысл отметить такую очень важную особенность. Большинство алгоритмических языков являются открытыми в том смысле, что их словарный состав непрерывно пополняется, как, собственно, это и происходит с естественными языками. Что это означает применительно к алгоритмическим языкам? Если вы написали некую программу, например программу для игры в «кошки-мышки», и она оказалась удачной, а главное, есть основания полагать, что она понадобится еще много раз, то эту программу можно разместить в памяти машины на постоянное жительство. Вызов ее из памяти и приведение в действие осуществляются по специальному слову, которое вводится в состав языка, такое слово получило название макрорасширения.

По мере работы ЭВМ количество макрорасширений увеличивается, растет объем библиотеки программ. Возникает потребность организовать эту библиотеку точно так же, как это делается с обычными книжными библиотеками. В памяти машины размещают каталог, в котором описания программы располагаются в определенном порядке. Каждое описание содержит назначение программы, язык, на котором она написана, указание по приведению ее в действие и другие данные. При достаточно большом количестве программ подобное каталожное хозяйство оказывается сложным и представляет собой самостоятельную, весьма важную систему ЭВМ.