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
Aleksey Ulasevich
Re: [ada_ru] DSA - основы
2005-08-02 06:21:17
Vadim Godunko пишет:

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

>"интерфейс удалённых вызовов" (pragma Remote_Call_Interface) - в их 
>спецификациях невозможно объявить некторые виды типов данных, 
>переменные, но ограничений на тело нет. В рамках программы такой пакет 
>существует только в единственном экземпляре, и назначается в один из 
>разделов. Вызов объявленных в пакете подпрограмм производится удалённо.
>
>"неклассифицированный" (нет вышеуказанных pragma) - самый обычный пакет, 
>в нём допускается всё, он включается в каждый из разделов программы.
>
>
>PS. Пора работать... Продолжение следует...
>
>  
>
Супер! Я сразу понимать начал ) Все это идеально будет смотреться на 
ada-ru.ru рядом с перводом манула GLADE.

-- 
С уважением,
Алексей Ю. Уласевич
(A.STAKANOV)
http://www.livejournal.com/users/a_stakanov/
Новое сообщение:
Страницы: 1

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