Абагульненае праграмаваннеАбагульненае праграмаванне (англ.: generic programming) — у найпрасцейшым сваім вызначэнні — гэта такі стыль праграмавання, пры якім алгарытмы пішуць у тэрмінах тыпаў, канкрэтнае значэнне якіх будзе вызначана пазней. Затым, па меры неабходнасці, алгарытмы інстанцыююцца (англ.: instantiate) для канкрэтных тыпаў, якія падстаўляюцца ў якасці параметраў. Гэты падыход, упершыню рэалізаваны ў мове ML у 1973[1][2] годзе, дазваляе пісаць шырокаўжывальныя функцыі, абстрагуючыся ад набору тыпаў, на якіх яны працуюць. Гэты ж падыход ужываецца і для вытворных тыпаў дадзеных; такім чынам, скарачаецца дубляванне коду. Праграмныя сутнасці такога кшталту вядомыя як джэнерыкі (англ.: generics) у мовах Ада, Delphi, Eiffel, Java, C#, F#, Objective-C, Swift, і Visual Basic .NET; параметрычны палімарфізм (англ.: parametric polymorphism) у ML, Haskell і Scala (супольнасць Haskell таксама выкарыстоўвае тэрмін «generic» для блізкай, але некалькі адрознай канцэпцыі), шаблоны (англ.: templates) у C++ і D, і параметрызаваныя тыпы (англ.: parameterized types) ва ўплывовай кнізе «Шаблоны праектавання» (Design Patterns by Gamma, et al. 1994). Аўтары гэтай кнігі звяртаюць увагу, што такі падыход, асабліва ў спалучэнні з дэлегатамі, вельмі магутны, але «[дынамічныя], высока параметрызаваныя праграмы цяжэй зразумець, чым больш статычныя праграмы.»[3] Тэрмін «абагульненае праграмаванне» першапачаткова быў выкарыстаны Дэвідам Масерам і Аляксандрам Сцяпанавым[4] у вузейшым сэнсе, чым акрэслены вышэй, каб апісаць парадыгму праграмавання, у якой фундаментальныя патрабаванні да тыпаў дадзеных абстрагаваныя ад канкрэтных прыкладаў алгарытмаў і структур дадзеных, і фармалізаваныя ў выглядзе канцэпцый, з абагульненымі функцыямі, рэалізаванымі у тэрмінах гэтых канцэпцый, звычайна з выкарыстаннем механізмаў абагульнення на ўзроўні мовы, як апісана вышэй. Зноскі
|
Portal di Ensiklopedia Dunia