ВУЗ:
Составители:
Рубрика:
3.7. Обобщённое программирование
Обобщённое программирование – парадигма программирования, за-
ключающаяся в таком описании данных и алгоритмов, которое можно
применять к различным типам данных, не меняя само это описание.
В том или ином виде поддерживается разными языками программирова-
ния. Возможности обобщённого программирования впервые появились
в 70-х годах в языках CLU и Ada, а затем во многих объектно-ориенти-
рованных языках, таких как C++, Java, Object Pascal и языках для плат-
формы .NET [12].
3.7.1. Общий механизм
Средства обобщённого программирования реализуются в языках
программирования в виде тех или иных синтаксических средств, даю-
щих возможность описывать данные (типы данных) и алгоритмы (про-
цедуры, функции, методы), параметризуемые типами данных. У функ-
ции или типа данных явно описываются формальные параметры-типы.
Это описание является обобщённым и в исходном виде непосредствен-
но использовано быть не может.
В тех местах программы, где обобщённый тип или функция исполь-
зуется, программист должен явно указать фактический параметр-тип,
конкретизирующий описание. Например, обобщённая процедура пере-
становки местами двух значений может иметь параметр-тип, определя-
ющий тип значений, которые она меняет местами. Когда программисту
нужно поменять местами два целых значения, он вызывает процедуру с
параметром-типом «целое число» и двумя параметрами – целыми чис-
лами, когда две строки – с параметром-типом «строка» и двумя пара-
метрами – строками. В случае с данными программист может, напри-
мер, описать обобщённый тип «список» с параметром-типом, определя-
ющим тип хранимых в списке значений. Тогда при описании реальных
списков программист должен указать обобщённый тип и параметр-тип,
получая, таким образом, любой желаемый список с помощью одного и
того же описания.
Компилятор, встречая обращение к обобщённому типу или функ-
ции, выполняет необходимые процедуры статического контроля типов,
оценивает возможность заданной конкретизации и при положительной
оценке генерирует код, подставляя фактический параметр-тип на место
формального параметра-типа в обобщённом описании. Естественно, что
для успешного использования обобщённых описаний фактические ти-
пы-параметры должны удовлетворять определённым условиям. Если
97
Страницы
- « первая
- ‹ предыдущая
- …
- 95
- 96
- 97
- 98
- 99
- …
- следующая ›
- последняя »
