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




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


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

В строке 5 - объявление типа, но на этот раз не скалярного (как в строках 2-4), а СОСТАВНОГО, точнее РЕГУЛЯРНОГО. Указано, как значения нового типа перечень_связей образуются из значений типов имя_узла и индекс_узла. Именно, значения типа перечень_связей - это одномерные (так как указан лишь один диапазон индексов) МАССИВЫ, компонентами которых служат значения типа имя_узла, а доступ к этим компонентам - по индексам типа индекс_узла.

В строках 6-10 - также объявление составного типа, но на этот раз - КОМБИНИРОВАННОГО. Указано, что значениями нового типа "связи" могут быть любые ЗАПИСИ с двумя полями. Первое поле с именем "число" и допустимыми значениями типа "число_связей" (при создании записи этому полю присваивается начальное значение 0). Второе поле с именем "узлы" типа перечень_связей.

Если в модуле, использующем наш пакет, объявлена переменная, скажем, X типа "связи" и I типа индекс_узла, то через

                   X.узлы(I)

обозначается значение типа имя_узла, которое служит I-ой компонентой поля "узлы" переменной X.

Строки 11 и 15 - это примечания, не влияющие на смысл модуля. Примечанием считается остаток любой строки, начинающийся с двух минусов.

В строках 12-14 - ОБЪЯВЛЕНИЯ ПРОЦЕДУР. В скобках указаны имена (названия) формальных параметров, их типы и РЕЖИМ использования (in - только для чтения - ВХОДНЫЕ параметры; out - только для записи - ВЫХОДНЫЕ; in out - и для чтения, и для записи - ОБНОВЛЯЕМЫЕ). Режим in напоминает вызов параметров значением в Алголе, in out - вызов ссылкой в Фортране, out - точного аналога в этих ЯП не имеет.

В строках 16-17 - ОБЪЯВЛЕНИЯ ФУНКЦИЙ. Отличаются от процедур ключевым словом function (а не procedure) и указанием типа результата (после return).


Содержание  Назад  Вперед