oberon:generics
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| oberon:generics [2024/07/06 22:48] – comdiv | oberon:generics [2024/07/15 12:48] (текущий) – comdiv | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Обобщённые модули в стандартном Oberon ====== | ====== Обобщённые модули в стандартном Oberon ====== | ||
| - | Обобщённые модули (дженерики) | + | Обобщённые модули (дженерики) |
| - | Сам по себе язык не предусматривает специальной поддержки | + | Существуют диалекты Oberon с явной поддержкой параметризуемых модулей, |
| Здесь представлен схематичный пример. Дополнительные детали воплощения для достижения нужных качеств представить несложно. | Здесь представлен схематичный пример. Дополнительные детали воплощения для достижения нужных качеств представить несложно. | ||
| + | ==== Параметризация модуля ==== | ||
| «Параметризированный» модуль может ничем не отличаться от обычного модуля, | «Параметризированный» модуль может ничем не отличаться от обычного модуля, | ||
| Строка 36: | Строка 37: | ||
| END List. | END List. | ||
| - | Следующий исходный(формальный) параметр-модуль не только служит | + | ==== Формальный и фактический параметры-модули ==== |
| + | |||
| + | Следующий исходный(формальный) параметр-модуль не только служит | ||
| MODULE Param; IMPORT V; | MODULE Param; IMPORT V; | ||
| Строка 50: | Строка 53: | ||
| При должном обобщённом подходе модули-параметры могут использоваться вместе с разными параметризированными модулями. | При должном обобщённом подходе модули-параметры могут использоваться вместе с разными параметризированными модулями. | ||
| + | |||
| + | ==== Специализация параметризированного модуля ==== | ||
| Псевдо-код для специализации модуля где-то в сборочной системе: | Псевдо-код для специализации модуля где-то в сборочной системе: | ||
| Строка 64: | Строка 69: | ||
| Modules.Spec(" | Modules.Spec(" | ||
| - | Использование специализированного модуля: | + | ==== Использование специализированного модуля |
| MODULE UseList; | MODULE UseList; | ||
| Строка 87: | Строка 92: | ||
| END UseList. | END UseList. | ||
| + | ==== Ссылки ==== | ||
| Весь код в [[https:// | Весь код в [[https:// | ||
| [[https:// | [[https:// | ||
oberon/generics.1720306123.txt.gz · Последнее изменение: (внешнее изменение)
