1.1. ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
13
Программа на языке
Prolog
представляет собой цель, которая должна быть
достигнута. В типичной ситуации описываются еще и данные, необходимые
для достижения цели, в нашем простейшем случае таких данных не нуж-
но. Вызывается стандартная функция, которая печатает строку и исчезает.
Поскольку не недостигнутых целей более не остается, программа завершает
работу.
Prolog
так же, как
Рефал
, имеет дело сразу со сложными данными и
так же не имеет прямой связи с физическим строением машинной памяти.
Теперь мы видим, что действия, предписываемые языком, совершенно
по-разному достигают одних и тех же целей. С чем это связано? Ответ в том,
что каждый язык определяет свою модель вычислений. Иногда эти модели
довольно близки, несмотря на существенные различия в изобразительных
средствах языков. Для таких языков программист по существу пишет од-
но и то же, и функции систем программирования весьма близки. Различия в
оформлении связаны, например, с тем, как соотносится программа с ее окру-
жением и как задаются общие для всех программ действия. Именно поэтому
мы внесли наиболее распространенные из языков, имеющих близкие модели
вычислений, в список традиционных языков.
Существенные различия моделей вычислений возникают в случае разно-
го устройства данных, с которыми работают программы (сравните, напри-
мер,
C
и
Рефал
). Но стоит помнить, что одна и та же модель вычислений на
разных вычислительных машинах и в разных операционных средах реализу-
ется по-разному. Могут быть различны разрядные сетки, способы предста-
вления чисел, способы вызова процедур. Явно позаботились об учете опера-
ционной среды, чтобы обеспечить переносимость программного обеспече-
ния, пожалуй, лишь в языке
Ada
, являющемся стандартом для Министерства
Обороны США.
В свою очередь, операционная среда оказывает обратное влияние на язы-
ки, и сформировались следующие понятия, их связывающие.
Определение 1.1.3.
Эталонный (стандартный) язык программирования — язык, задавае-
мый безотносительно операционной среды и без привлечения знания об устрой-
стве конкретного вычислителя (компьютера).Именно эталонным языком фик-
сируется абстрактный вычислитель для данного языка.
Стандартные библиотеки, или стандартное библиотечное расширение
языка — комплект библиотечных средств, которые стандарт языка предпи-
сывает для всех его реализаций.
Прагматические расширения языка — конструкции, предписывающие