ДСТУ 4072:2002 Інформаційні технології. Мови програмування, їхні середовище і системний інтерфейс. Незалежний від мов виклик процедур (LIPC)
НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ
ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ
МОВИ ПРОГРАМУВАННЯ, ЇХНІ СЕРЕДОВИЩЕ
І СИСТЕМНИЙ ІНТЕРФЕЙС
НЕЗАЛЕЖНИЙ ВІД МОВ ВИКЛИК ПРОЦЕДУР
(LIPC)
ДСТУ 4072:2002
КИЇВ
ДЕРЖСПОЖИВСТАНДАРТ УКРАЇНИ
2002
ПЕРЕДМОВА
1 РОЗРОБЛЕНО: Технічний комітет зі стандартизації «Інформаційні технології» (ТК 20) при Держспоживстандарті України та Інститут кібернетики ім. В.Глушкова НАН України
РОЗРОБНИКИ: Г. Карпенко; О. Перевозчикова, проф., д-р фіз.-мат. наук (керівник розробки); В. Січкаренко
ВНЕСЕНО: Технічний комітет зі стандартизації «Інформаційні технології» (ТК 20)
2 ПРИЙНЯТО ТА НАДАНО ЧИННОСТІ: наказ Держспоживстандарту України від 12 березня 2002 р. № 145 з 2003-07-01 зі зміною терміну чинності згідно з наказом № 60 від 31 березня 2004 р.
3 Стандарт відповідає ISO/IEC 13886:1996 Information technology - Programming languages, their environments and system software interfaces - Language-Independent Procedure Calling (LIPC) (Інформаційні технології. Мови програмування, їхні середовище і системний інтерфейс. Незалежний від мов виклик процедур (LIPC))
Ступінь відповідності - модифікований (MOD)
Переклад з англійської (еn)
4 УВЕДЕНО ВПЕРШЕ
ЗМІСТ
Національний вступ
1 Сфера застосування
2 Нормативні посилання
3 Визначення і скорочення
3.1 Визначення
3.2 Скорочення
4 Відповідність стандарту
4.1 Режими відповідності
4.1.1 Відповідність режиму клієнта
4.1.2 Відповідність режиму сервера
5 Модель виклику процедур: Неформальний опис
5.1 Стислий опис моделі
5.2 Передавання параметрів
5.2.1 Методи передавання параметрів
5.2.2 Глобальні дані
5.2.3 Упорядкування (розупорядкування) параметрів
5.2.4 Параметри-покажчики
5.2.5 Тип Приватний
5.3 Керування часом виконання
5.3.1 Завершення
5.4 Керування виконанням
5.4.1 Синхронний і асинхронний виклик
5.4.2 Рекурсія
6 Модель виклику процедур: Формальний опис
6.1 Набір Value
6.2 Блоки і глобальний стан
6.3 Символи
6.4 Образ процедури
6.5 Асоціації
6.6 Замикання процедури
6.7 Блоки, покажчики, значення і типи даних
6.8 Закриття інтерфейсу
6.9 Тип Інтерфейс
6.10 Специфікації
6.11 Виклик базової процедури
6.12 Коректність типів
6.13 Асоціювання
6.13.1 Просте асоціювання
6.13.2 Узагальнене асоціювання
6.14 Контексти виконання і виклику
6.15 Трансляція параметрів
6.16 Процедури, що визначають трансляцію
7 Нотації визначення інтерфейсу
7.1 Угоди щодо визначення
7.1.1 Набір символів
7.1.2 Формальний синтаксис
7.1.3 Пробіли
7.2 Оголошення типу Інтерфейс
7.2.1 Посипання типу
7.2.2 Посилання значень
7.3 Оголошення імпорту
7.4 Оголошення значень
7.5 Оголошення типів даних
7.5.1 Примітивні типи даних
7.5.2 Згенеровані типи даних
7.5.3 Підтипи
7.6 Параметризовані типи
7.7 Ідентифікатори
7.7.1 Посилання значень на поля
7.7.2 Посилання значень на параметри, retum-args або поля їхнього вмісту
7.7.3 Посилання значення на formal-value-parms
7.7.4 Посилання значення на value-expressions
7.7.5 Посилання значення на enumeration-identifiers
7.7.6 Посилання завершення
Додаток А Параметри процедур
Додаток В Синтаксис нотацій визначення інтерфейсу
Додаток С Визначення LIPC-прив'язки до мови
С.1 Зв'язування клієнта і сервера
С.2 Прив’язка до режиму клієнта
С.З Прив’язка до режиму сервера
С.4 Параметри процедури
C. 5 Глобальні змінні
Додаток D Відповідність LIPC IDN-RPC IDL
D. 1 Оголошення інтерфейсу
D.1.1 Атрибути
D.1.2 Стаття імпорту
D.2 Інші оголошення
D.2.1 Оголошення типів
D.2.2 Оголошення значень
D.2.3 Оголошення процедур
D.2.4 Оголошення завершення
D.3 Примітивні типи даних
D.3.1 Логічний
D.3.2 Стан
D.3.3 Переліковний
D.3.4 Символьний
D.3.5 Порядковий
D.3.6 Час
D.3.7 Цілочисловий
D.3.8 Раціональний
D.3.9 Масштабований
D.3.10 Дійсний
D.3.11 Комплексний
D.3.12 Пустий
D.4 Тип специфікаторів
D.5 Згенеровані типи даних
D.5.1 Вибір
D.5.2 Покажчик
D.5.3 Процедура
D.6 Агрегатні типи даних
D.6.1 Запис
D.6.2 Набір
D.6.3 Портфель як множина з повторюваними елементами
D.6.4 Послідовність
D.6.5 Масив
D.6.6 Таблиця
D.7 Похідні типи даних і генератори
D.7.1 Натуральне число
D.7.2 Модуль
D.7.3 Біт
D.7.4 Бітовий рядок
D.7.5 Символьний рядок
D.7.6 Часовий інтервал
D.7.7 Октет
D.7.8 Рядок октетів
D.7.9 Приватний
D.8 Інші RPC-типи даних
D.9 «Залежні значення»
D.10 Перехресні посилання
НАЦІОНАЛЬНИЙ ВСТУП
Цей стандарт згармонізований з ISO/IEC 13886:1996 Information technology - Programming languages, their environments and system software interfaces - Language-Independent Procedure Calling (LIPC) (Інформаційні технології. Мови програмування, їхні середовище і системний інтерфейс. Незалежний від мов виклик процедур (LIPC)).
Стандарт залежить від ДСТУ 3901:1999 (ГОСТ 30664-99) (ISO/IEC 11404:1995) (ГОСТ 30664-99) у частині визначання незалежних від мов типів даних, які потрібно підтримувати в LIPC-моделі і які називаються Ll-типами даних. Крім того, цей стандарт пов’язаний з ДСТУ ISO/IEC TR 14369:2003 Інформаційні технології. Мови програмування, їхні середовище і системний інтерфейс. Настанова щодо підготовки незалежних від мов специфікацій сервісу (LISS), неодноразово в ньому згадується та цитується. Тому до цього стандарту внесено зміни та у аналогічно прийнятій у ДСТУ 3901:1999 схемі назв цих трьох стандартів щодо незалежних від мов конструктів для простоти ДСТУ 3901-99 називають LIDT-стандартом, а цей стандарт - LIPC-стандартом.
Продукційні правила, використані в нотаціях цього стандарту, наведено англійською мовою без перекладу. Також без перекладу в текстах пояснень використано параметри продукцій, виділені курсивом аналогічно ISO/IEC 13886:1996. У додатку В наведено синтаксис нотацій визначання інтерфейсу. Крім того, для дотримування принципу зворотності до цього стандарту внесено зміни, що стосуються доповнення додатка В переліком параметрів продукцій з перекладом їхніх назв українською та російською мовами та помічені в тексті знаком «|», розташованим зліва.
До стандарту внесено такі редакційні зміни:
- слова «цей міжнародний стандарт» замінено на «цей стандарт»;
- до розділу 2 «Нормативні посилання» долучено «Національне пояснення», яке у тексті виділено рамкою;
- структурні елементи: «Обкладинку», «Передмову», «Національний вступ», «Зміст» - оформлено згідно з вимогами національної стандартизації.
ДСТУ 4072:2002
НАЦІОНАЛЬНИЙ СТАНДАРТ УКРАЇНИ
ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ МОВИ ПРОГРАМУВАННЯ,
ЇХНІ
СЕРЕДОВИЩЕ І СИСТЕМНИЙ ІНТЕРФЕЙС
НЕЗАЛЕЖНИЙ ВІД МОВ ВИКЛИК ПРОЦЕДУР
(LIPC)
ИНФОРМАЦИОННЫЕ
ТЕХНОЛОГИИ ЯЗЫКИ ПРОГРАММИРОВАНИЯ,
ИХ СРЕДА И СИСТЕМНЫЙ ИНТЕРФЕЙС
НЕЗАВИСИМЫЙ ОТ
ЯЗЫКОВ ВЫЗОВ ПРОЦЕДУР
(LIPC)
INFORMATION
TECHNOLOGY PROGRAMMING LANGUAGES,
THEIR ENVIRONMENTS AND SYSTEM SOFTWARE
INTERFACES
LANGUAGE-INDEPENDENT PROCEDURE CALLING
(LIPC)
Чинний від 2004-07-01
1 СФЕРА ЗАСТОСУВАННЯ
Призначення цього стандарту - забезпечити загальну модель для стандартів мов щодо виклику процедур. Цей стандарт призначений допомогти в розвитку незалежного від мов інструментарію і сервісу, бібліотек загальних процедур і програмування одночасно кількома мовами (багатомовного програмування). У багатомовних застосуваннях серверні процедури зазвичай виконують на мовному процесорі, що оперує в режимі сервера, а процедури викликають із мовного процесора, який оперує в режимі клієнта. Зазначимо, що мови не обов'язково повинні бути різними; якщо процесори ті самі, модель перетворюється на звичайне одномовне програмування.
Більшість мов програмування охоплюють поняття процедур і їхнього збудження. Головна відмінність між використовуваними в різних мовах методами полягає в засобах передавання параметрів від клієнта серверним процедурам. Виклик процедур є простим поняттям на функціональному рівні, але взаємодія виклику процедур із визначенням типу даних (datatyping) і структурою програми, разом із багатьма варіантами виклику процедур і обмеженнями на виклики, що застосовуються у різних мовах програмування, перетворюють просте, як здається, поняття виклику процедури на складний засіб мов програмування.
Необхідність стандартної моделі виклику процедур очевидна через множину варіантів виклику процедур у стандартизованих мовах. Наявність стандарту з незалежного від мов виклику процедур (Language-Independent Procedure Calling - LIPC) не потребує прийняття всіма мовами програмування єдиної моделі виклику процедур. Номінальна вимога до мов програмування - забезпечити відображення властивого їм механізму виклику процедур у LIPC і забезпечити можливість прийняття викликів з інших мов програмування, що визначили прив’язку до цього стандарту.
Цей стандарт - специфікація загальної моделі виклику процедур. Не визначено, як потрібно забезпечувати реалізацію LIPC. Не розглянуто питання, як виклик процедури, ініційований процесором у режимі клієнта, передається процесору в режимі сервера або як повертаються результати.
Визначена у цьому стандарті модель призначена для використання мовами так, щоб вони могли забезпечувати стандартні відображення моделі властивих їм процедур. Цей стандарт залежить від стандарту з незалежних від мов типів даних ДСТУ 3901-99 (ISO/IEC 11404:1995) у частині визначення типів даних, які потрібно підтримувати в LIPC-моделі.
У цьому стандарті визначена модель виклику процедур і синтаксис посилання для відображення в модель і навпаки. На цей синтаксис посилаються як на Нотацію визначення інтерфейсу. Модель, визначена у цьому стандарті, включає такі засоби як збудження процедур, передавання параметрів, стан завершення і проблеми середовища, що відносяться до нелокальних посилань і стану.
Цей стандарт не визначає:
- метод, за яким виклик процедури, ініційований процесором у режимі клієнта, зв'язується з мовним процесором у режимі сервера;
- мінімальні вимоги системи обробляння даних, здатні підтримувати реалізацію мовного процесора для підтримки LIPC;
- механізм, за яким програми підтримки LIPC перетворюються для використання системою обробляння даних;
- подання параметрів.
Примітка. Спочатку був намір привести визначення і поняття цього стандарту до таких самих визначень і понять RPC-стандарту ISO/IEC 11578. На жаль, цей намір не реалізований, оскільки на наступній стадії розвитку RPC-стандарту було вирішено використовувати для нього зовсім інший підхід.
У додатку D наведено огляд відмінностей понять, визначених цим стандартом і RPC-стандартом.
2 НОРМАТИВНІ ПОСИЛАННЯ
У стандарті використано посилання на наступні стандарти (наведено останні публікації документів):
ДСТУ 3901-99 (ГОСТ 30664-99) (ISO/IEC 11404:1996) Інформаційні технології. Мови програмування, їхні середовище і системний інтерфейс. Незалежні від мов типи даних
ISO 2375:1985 Data processing - Procedure for registration of escape sequences
ISO 8824-1:1995 Information technology - Abstract Syntax Notation One (ASN.I): Specification of basic notation
ISO 8825-1:1995 Information technology - ASN.I encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
ISO/IEC 10646-1:2000 Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane
НАЦІОНАЛЬНЕ ПОЯСНЕННЯ
ISO 2375:1985 Оброблення даних. Процедури реєстрації escape-послідовностей
ISO 8824-1:1995 Інформаційні технології. Нотація абстрактного синтаксису. Специфікація базової нотації
ISO 8825-1:1995 Інформаційні технології. Правила ASN.I-кодування. Специфікація та базові правила кодування, канонічні правила кодування, виділені правила кодування
ISO/IEC 10646-1:2000 Інформаційні технології. Універсальний мультиоктетний кодовий набір символів. Частина 1. Архітектура та базова мультимовна плата.
Повна версія документа доступна БЕЗКОШТОВНО авторизованим користувачам.