Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 316

На самом деле во всех традиционных языках программирования имеет­ся полиморфизм, неявно присутствующий в определении выражений языка. Дело в том, что одна и та же операция с аргументами разных типов реа­лизуется разными командами (процедурами). Это —полиморфизм операций, часто (в особенности в литературе по языкам Алгол 68 и Ada) называе­мый их перегрузкой. Поскольку, в частности, языки С++ и Javaразрешают описание существующих операций для новых типов аргументов (например, программист сам может определить операции вводавывода « и »для но­вого типа данных), это также является актуальным не только для системных программистов.

Полиморфизм в широком смысле —возможность выбора конкретной ре­ализации некоторого имени в зависимости от контекста, в котором данное имя появилось. Выбор конкретной реализации полиморфного имени назы­вается разрешением полиморфизма. Полиморфизм соответствует омонимии в естественных языках, когда, скажем, 'стекло' понимается совершенно по разному в синтаксических позициях существительного и глагола. Но даже синтаксическая позиция может не помогать разрешению омонимии, напри­мер, для случая слова 'коса'. Поэтому в языках с широко встречающейся омонимией (китайский, японский, английский) переходят к иероглифиче­скому письму, когда омонимы различаются по написанию. Уже это пока­зывает, насколько обоюдоострым оружием является неограниченный поли­морфизм.

В связи с этим в языках программирования различается два вида поли­морфизма: тот, который разрешается синтаксически (т. н. раннее связывание реализации с именем), и тот, который разрешается уже в момент исполнения программы (т. н. позднее связывание).

Разработанные методы синтаксического разрешения полиморфизма сво­дятся, в основном, к тому, что конкретный вариант процедуры или операции выбирается, исходя из типов ее параметров. Для процедур, кроме того, есть еще и количество аргументов.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама