Стили и методы программирования


Работа программной системы над текстом программ - часть 3


Пояснение к программе 1.7.

$ENTRY GO{=<Prout 'Прювет Волку!'>};

Программа на Рефале представляет из себя функцию Go. Эта функция работает с полем зрения, которое уже не может быть прямо представлено как совокупность ячеек вычислителя. Она проверяет, что поле зрения пусто, и подставляет вместо пустого выражения то, что идет справа от знака равенства: вызов стандартной функции, печатающей строку и опять очищающей поле зрения. В поле зрения функций больше не осталось, программа заканчивает работу, а поскольку поле зрения пусто, больше ничего не печатается.

Пояснение к программе 1.8.

:-Print('Прювет Волку!');

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

На этом примере можно заметить общие черты языков Prolog и Рефал. Оба они имеют дело сразу со сложными данными и не связаны напрямую с физическим строением машинной памяти.

Мы видим, что действия, предписываемые языком, совершенно по-разному достигают одних и тех же целей. С чем это связано? Каждый язык определяет свою модель вычислений. Иногда эти модели довольно близки, несмотря на существенные различия в изобразительных средствах языков. Для таких языков программист, по существу, пишет одно и то же, и функции систем программирования близки. Различия в оформлении связаны, в частности, с тем, как соотносится программа с ее окружением и как задаются общие для всех программ действия. Именно поэтому мы внесли наиболее распространенные языки, имеющих близкие модели вычислений, в список традиционных языков.

Существенные различия моделей вычислений возникают в случае разного устройства данных, с которыми работают программы (сравните, например, C и Рефал). Но стоит помнить, что одна и та же модель вычислений на разных вычислительных машинах и в разных операционных средах реализуется по-разному.


Начало  Назад  Вперед



Книжный магазин