Ada_Ru форум

Обсуждение языка Ада

DSA - основы

Оставить новое сообщение

Сообщения

Vadim Godunko
DSA - основы
2005-08-02 05:43:42

Добрый день!

 

Средства распределенных вычислений языка Ada

 

Согласно стандарту языка Ada программа состоит из одного или нескольких разделов. Под разделом достаточно абстрактно понимается совокупность вычислительных ресурсов и/или ресурсов хранения. Абстрактно поскольку конкретная реализация определяет что и как понимается под этим терминами. Если кому интересны всяки тонкости - пишите - расскажу.

 

На этом месте немного отклонимся от рассмотрения формальностей в пользу реализации - GLADE. Сейчас нас будет интересовать только аналог gnatmake, входящий в состав GLADE, и именуемый gnatdist. Основние отличие его от gnatmake заключается в том, что он принимает в качестве входного параметра не имя файла главной подпрограммы, а имя файла конфигурации программы.

 

Этот файл описывает составляющие программу разделы и определяет какие из категорированных пакетов включаются в тот или иной раздел, а так же указывает, при необходимости, главные подпрограммы для каждого раздела.

 

А теперь опять вернёмся к формальностям - категориям пакетов.

 

Категория пакета это, с одной строны, набор некторых ограничений на содержание пакетов, и, с другой стороны, описание роли пакета в распределённой системе.

 

Стандарт определяет следующие категории пакетов:

 

"пустые" (pragma Pure) - в них не допускается объявлять ссылочные типы, использовать при объявлении не статические (вычисляемые при компиляции) выражения и многое другое. И хотя они не имеют особого отношения к распределенным вычислениям, важным их свойством является возможность их подключения в контекст спецификации пакетов любых категорий. Также эти пакеты влючаются во все разделы программы (конечно если они требуются).

 

"пассивные совместно используемые" (pragma Shared_Passive) - в них так же нельзя объявлять ссылочных типов, но такой пакет может быть в программе только один, т.е. но должен быть включён в один из разделов (и притом только в один). В GLADE они обладают важным свойством - переменные, объявленные в них, сохраняют своё состояние между перезапусками программы.

 

"удалённые типы" (pragma Remote_Types) - в их спецификации нельзя объявить переменную, но ограничений на тело нет. Эти пакеты играют важную роль - они описываю типы данных, используемые при передачи информации между разделами. При сборке по одной копии пакета попадает в каждый из разделов.

 

"интерфейс удалённых вызовов" (pragma Remote_Call_Interface) - в их спецификациях невозможно объявить некторые виды типов данных, переменные, но ограничений на тело нет. В рамках программы такой пакет существует только в единственном экземпляре, и назначается в один из разделов. Вызов объявленных в пакете подпрограмм производится удалённо.

 

"неклассифицированный" (нет вышеуказанных pragma) - самый обычный пакет, в нём допускается всё, он включается в каждый из разделов программы.

 

 

PS. Пора работать... Продолжение следует...

 

-- Vadim Godunko

 

Technoserv A/S

Rostov-on-Don, Russia

Vadim Godunko пишет:

 

Добрый день!

 

Средства распределенных вычислений языка Ada

 

Согласно стандарту языка Ada программа состоит из одного или нескольких разделов. Под разделом достаточно абстрактно понимается совокупность

...

 

"интерфейс удалённых вызовов" (pragma Remote_Call_Interface) - в их спецификациях невозможно объявить некторые виды типов данных, переменные, но ограничений на тело нет. В рамках программы такой пакет существует только в единственном экземпляре, и назначается в один из разделов. Вызов объявленных в пакете подпрограмм производится удалённо.

 

"неклассифицированный" (нет вышеуказанных pragma) - самый обычный пакет, в нём допускается всё, он включается в каждый из разделов программы.

 

 

PS. Пора работать... Продолжение следует...

 

Супер! Я сразу понимать начал ) Все это идеально будет смотреться на ada-ru.ru рядом с перводом манула GLADE.

 

-- С уважением,

Алексей Ю. Уласевич

(A.STAKANOV)

http://www.livejournal.com/users/a_stakanov/

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти