Обсуждение:Обобщённое программирование
Проект «Информационные технологии» (уровень III, важность для проекта высокая)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
![]() ![]() ![]() | Эта страница была ранее удалена. Итог подведён согласно обсуждению от 17 сентября 2006. |
Удаление страницы
[править код]Есть у меня сомнения на счёт удаления страницы. Мнения? --Obersachse 15:15, 18 сентября 2006 (UTC)
- Одна из основных парадигм программирования, важный аспект информационных технологий. Удалению не подлежит. Заношу ее в проект КТ Ivan the Knight 14:35, 16 февраля 2010 (UTC)
Конкретно по "Способам реализации" - возможная оригинальность потенциально м.б. снята, если основываться на "Концепциях и принципах ЯП" В.Ш. Кауфмана: ISBN 9785940746225. В частности, на п. 4.8, где обсуждается, видимо, как способ первого рода настройка родовых сегментов на Аде. Но нужно квалифицированно посмотреть - более, чем могу, думаю - поэтому править не стал.--VladZharinov 09:19, 20 мая 2012 (UTC)
Собственно, будет ли нечто являться ОРИСС, если просто перечислить способы реализации, найденные в различных источниках, но не заявлять, что их мол только два. Например, выявится какой-нибудь язык, скажем Haskell, в котором есть третий путь? В Haskell, например, весьма обобщенные функции и некоторые вещи могут подойти под определение ОП, но из-за присущего языку параметрического полиморфизма, а не из-за каких-то шаблонов. Этот самый параметрический полиморфизм реализуется и шаблонами C++. Поэтому в "Способах реализации" нужно писать не про шаблоны и плюсы-минусы, а в более общем виде - о параметрическом полиморфизме. И разумеется на основе авторитетного источника. Этот абзац - просто мои спекуляции, которые позволяют мне однако сомневаться в надежности данной в "Способам реализации" информации в нынешнем виде. РоманСузи 17:11, 22 июля 2012 (UTC)
- Конкретно предлагаю: 1. раздел "Способы реализации" убрать за неимением источников, либо cделать обозримым и понятным, если найдется хороший АИ. 2. на основании источников по конкретным языкам программирования описать способы реализации ОП в них, указывая каждый раз, что чему соответствует, и не утверждая, что только они и возможны. РоманСузи 17:56, 22 июля 2012 (UTC)
Предлагаю другое определение
[править код]В книге Джереми Сик, Лай-Кван Ли, Эндрю Ламсдэйн. C++ Boost Graph Library. — Питер, 2006. — 304 с. — ISBN 5-469-00352-3. выглядит так:
Обобщенное программирование - методология проектирования и реализации программ, которая разделяет структуры данных и алгоритмы через использование абстрактных спецификаций требований.
Там же говорится о расширении абстрактного типа данных, а набор требований называется концепцией (concept).
Мне такое определение кажется более конкретным, так как сущности названы и определены их взаимоотношения. Кстати, в указанном источнике, к которому Степанов сделал интересное предисловие, целая глава посвящена ОП в C++. (занимался переводом этой книги, поэтому когда сейчас наткнулся на обсуждаемую статью, то вспомнил, что было более точное определение) РоманСузи 16:48, 22 июля 2012 (UTC)
Кстати, в английской версии ОП не называется парадигмой (а стилем), а описание включает динамические языки. РоманСузи 17:20, 22 июля 2012 (UTC)
- Еще раз перечитал свои рассуждения. Я не имею в виду заменить определение, а раскрыть подводные течения понятия. Скажем, у того же Reis и Järvi говорится о двух школах: Dehnert and Stepanov против формализма Bird–Meertens. В английской вики говорится "In this article we distinguish the high-level programming paradigms of generic programming, above, from the lower-level programming language genericity mechanisms used to implement them". И дальше уже говорят только о low-level в разных ЯП. Если нет возражений, я могу подготовить описание ОП по указанному источнику, касающееся hi-level. РоманСузи 18:55, 22 июля 2012 (UTC)