Редактирование: Сравнение Языков Программирования
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 167 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1205: | Строка 1205: | ||
=== ADA === | === ADA === | ||
- | Ада, наверное - единственный язык со вложенностью модулей, их раздельной компиляцией и двойной связью одновременно. | ||
- | Опишем вложенную спецификацию, тут ничего сложного: | ||
- | |||
- | '''package''' Outer '''is''' | ||
- | '''...''' | ||
- | '''procedure''' some_proc (X: Some_type) '''is private;''' | ||
- | '''package''' Inner '''is''' | ||
- | '''...''' ''-- Тут, в общем то видно все, что есть в пакете Outer. | ||
- | '''end''' Inner; | ||
- | '''...''' | ||
- | '''end''' Outer; | ||
- | |||
- | Тела этих пакетов, как и тело функции, можно разнести по разным файлам (единицам компиляции), используя "заглушку" '''separate''': | ||
- | |||
- | '''package''' '''body''' Outer '''is''' | ||
- | '''...''' | ||
- | '''package''' Inner '''is''' '''separate'''; | ||
- | '''...''' | ||
- | '''procedure''' some_proc (X: some_type) '''is''' '''separate'''; | ||
- | '''end''' Outer; | ||
- | |||
- | Теперь опишем тела модуля Inner и процедуры. | ||
- | |||
- | '''separate''' (Outer) ''--Тут нет `;' '' | ||
- | '''package''' '''body''' Inner '''is''' | ||
- | '''...''' | ||
- | '''end''' Inner; | ||
- | |||
- | '''separate''' (Outer) | ||
- | '''procedure''' some_proc (X: some_type) '''is''' | ||
- | '''...''' | ||
- | '''end''' some_proc; | ||
- | |||
- | Вот здесь заглушка '''separate''' и является двойной модульной связью. | ||
== Исключительные ситуации и обработка ошибок == | == Исключительные ситуации и обработка ошибок == |