Статус документа
Статус документа

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы

     

ПРИЛОЖЕНИЕ 5
Справочное

     
ИНТЕРФЕЙСЫ

     

1. Введение


Для реализации ЯГС на различных языках высокого уровня при его описании применяются абстрактные термины.

Для использования ЯГС в некоторой прикладной программе, написанной на определенном языке, необходимы следующие преобразования:

абстрактные функции и типы данных ЯГС следует выразить в терминах конструкций языка высокого уровня;

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

2. Связь с языками программирования


Описание функций и типов данных ЯГС на языке высокого уровня содержится в документе "Связь ЯГС с языками программирования", в котором определяется, каким образом функции ЯГС доступны программам, написанным на определенном языке.

Этот документ является продолжением настоящего стандарта.

При разработке таких документов необходимо соблюдать следующие правила:

1. Все функции ЯГС, отличные от справочных функций, должны представлять собой для прикладной программы отдельные программные модули. Это правило запрещает создавать такие интерфейсы, которые преобразуют единственную функцию ЯГС в последовательность функций языка, вызываемых прикладной программой, за исключением справочных функций, которые, например, в некоторых интерфейсах могут требовать вызова функции для каждого элемента таблицы.

2. При описании связи ЯГС с языком следует определить для каждого имени абстрактной функции ЯГС только один идентификатор, допустимый в этом языке. Имена функций ЯГС являются средством для описания семантики языка; их следует заменить на реальные идентификаторы, которые подчиняются правилам и ограничениям языка высокого уровня. Предпочтительней преобразовывать каждую абстрактную функцию ЯГС в функцию языка.

3. При описании связи ЯГС с языком следует определить для каждого типа данных ЯГС соответствующий тип данных, допустимый в этом языке; дополнительные типы данных могут быть заданы в терминах типов данных ЯГС. Типы данных, используемые в этом стандарте, являются только средством для описания семантики языка; их следует заменить на реальные типы данных, которые подчиняются правилам и ограничениям языка высокого уровня.

4. При описании связи ЯГС с языком следует определить для каждой абстрактной функции ЯГС способ вызова соответствующей функции языка и средства, с помощью которых каждый абстрактный параметр ввода передается в эти функции языка и каждый абстрактный параметр вывода поступает из этих функций языка. Если позволяет язык высокого уровня, абстрактные функции преобразуются в функции языка или процедуры. Параметры передаются через список параметров. Записи в таком списке могут быть или записями типов данных, которые соответствуют типам данных ЯГС, или ссылками на такие записи, или совокупностями этих типов.

5. При описании связи ЯГС с языком следует определить набор идентификаторов, допустимых в этом языке, которые могут быть использованы в реализации для внутренних связей. При реализации обычно не накладывается ограничений на использование внешних идентификаторов, которые определяются в соответствии с правилами 1-4. Поэтому в прикладных программах следует избегать использования идентификаторов из набора, определяемого правилом 5. Этот набор может состоять, например, из идентификаторов, начинающихся с литеры G.

3. Реализация ЯГС


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

1. Описание реализации ЯГС должно включать список всех идентификаторов процедур, функций, совокупностей глобальных данных и файлов, которые доступны для прикладной программы, или должны быть описаны в языке операционной системы. Так как этот набор идентификаторов является, в общем, супервизором имен, определенных при связи с языком, то программы, переносимые с одной реализации на другую реализацию с одинаковым связанным языком, могут использовать совпадающие имена. Документация должна отражать потенциальные расхождения.

2. Реализация ЯГС не должна ограничивать использование в прикладных программах каких-либо средств ввода-вывода, предоставляемых языками высокого уровня или операционной системой. Тем не менее, реализации должны препятствовать прикладным программам, обходить ЯГС и получать графические ресурсы непосредственно. Предполагается, что реализация нужна такая, чтобы исключить управление графическими ресурсами без ведома ЯГС, хотя как можно меньше ограничений должно быть принято по использованию других ресурсов.

3. В описании реализации ЯГС следует определить для каждой характеристики, зависящей от реализации и станций, значение этой характеристики в данной реализации. Некоторые детальные характеристики настоящего стандарта специально не заданы, чтобы предоставить специалистам достаточную свободу для адаптации к определенным ЭВМ и определенным операционным системам. Эти характеристики указываются в тексте словами "зависит от реализации". Другие, не заданные характеристики, позволяют адаптироваться к графическим устройствам. Они указаны в тексте словами "зависит от станции". Список всех таких характеристик дан в приложении 6. Значение такой характеристики следует описывать в документации так, чтобы можно было предсказать поведение прикладной программы.

4. В описании каждой реализации станции следует задавать соответствие между физическими устройствами ввода, действиями оператора и логическими устройствами ввода для этой станции (если они есть). Соответствие между физическими устройствами ввода, действиями оператора и логическими устройствами ввода является постоянным и не может управляться прикладной программой. Это соответствие должно быть описано в документации. Также желательно, чтобы разработчик станции предоставлял средства изменения этих соответствий, например, во время определения конфигурации ЯГС.