Языки программирования. Практический сравнительный анализ


Языки программирования. Практический сравнительный анализ - стр. 228


 Коротко говоря, дело в том, что концепция "подпрограммного" типа не соответствует общей концепции типа в Аде, а концепция "задачного" типа при определенных ограничениях - соответствует вполне.

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

Итак, концепция задачного типа без динамических параметров запуска вполне согласуется с концепцией уникальности типа объектов.

По аналогии, объектами "подпрограммного" типа в Аде следовало бы считать различные запуски одной и той же подпрограммы. Рассмотрим сначала, почему это не слишком привлекательно, а потом поговорим, почему нехорошо относить к одному типу запуски различных подпрограмм.

Совершенно понятно, зачем нужно много асинхронных процессов с поведением одного типа (т.е. объектов одного задачного типа). Они могут, скажем, моделировать звено самолетов-истребителей или участок однотипных станков. Такие процессы могут естественно взаимодействовать между собой. А запуски одной и той же подпрограммы при последовательном исполнении могут "взаимодействовать" только в случае рекурсии (иначе они не могут сосуществовать) и для этого есть известный механизм локальных переменных. При параллельном исполнении запуски "одной и той же" подпрограммы становятся частями различных асинхронных процессов (и тогда для организации их взаимодействия естественно воспользоваться аппаратом взаимодействия задач).


- Начало -  - Назад -  - Вперед -