"പോളിമോർഫിസം (കമ്പ്യൂട്ടർ ശാസ്ത്രം)" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം
Content deleted Content added
"Polymorphism (computer science)" എന്ന താൾ പരിഭാഷപ്പെടുത്തിയത്. |
No edit summary |
||
വരി 1:
{{Prettyurl|Polymorphism (Computer Science)}}
[[പ്രോഗ്രാമിങ് ഭാഷ|പ്രോഗ്രാമിങ് ഭാഷകളിലും]] [[ടൈപ്പ് തിയറി|ടൈപ്പ് തിയറിയിലും]] പല [[ടൈപ്പ്|ടൈപ്പുകൾക്ക്]] ഒരേ [[ഇന്റർഫേസ്]] നൽകാനുള്ള കഴിവിനെയാണ് '''പോളിമോർഫിസം''' എന്നു പറയുന്നത്.<ref>{{Cite web|url=http://www.stroustrup.com/glossary.html#Gpolymorphism|title=Bjarne Stroustrup's C++ Glossary|last=Bjarne Stroustrup|date=February 19, 2007|quote=polymorphism – providing a single interface to entities of different types.}}</ref> ഒരു ടൈപ്പിന്റെ ഓപ്പറേഷൻസ് മറ്റൊരു ടൈപ്പിലും ഉപയോഗിയ്ക്കാൻ പറ്റുമെങ്കിൽ അതിനെ '''പോളിമോർഫിക് ടൈപ്പ്''' എന്നു വിളിയ്ക്കുന്നു.<ref name="Luca">{{Cite journal|url=http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf|title=On understanding types, data abstraction, and polymorphism|last=Cardelli|first=Luca|last2=Wegner|first2=Peter|authorlink2=Peter Wegner|date=December 1985|journal=[[ACM Computing Surveys]]|publisher=[[Association for Computing Machinery|ACM]]|issue=4|doi=10.1145/6041.6042|location=New York, NY, USA|volume=17|pages=471–523|issn=0360-0300|ref=harv}}: "Polymorphic types are types whose operations are applicable to values of more than one type."</ref> പല തരത്തിലുള്ള പോളിമോർഫിസങ്ങൾ ഉണ്ട്:
* ''ആഡ് ഹോക്ക് പോളിമോർഫിസം'': ഒരേ ഫങ്ക്ഷന്
* ''പാരാമെട്രിക് പോളിമോർഫിസം'': ഒരു പ്രത്യേക ടൈപ്പിനെ മാത്രം ഉന്നം വെയ്ക്കാതെ ഏതു ടൈപ്പിലുള്ള ഡാറ്റാ ടൈപ്പും ഉപയോഗിയ്ക്കാവുന്ന രീതിയിൽ കോഡ് എഴുതുമ്പോൾ അതിനെ പാരാമെട്രിക് പോളിമോർഫിസം എന്ന് വിശേഷിപ്പിയ്ക്കുന്നു. [[ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ|ഒബ്ജക്റ്റ് ഓറിയന്റഡ്]] പ്രോഗ്രാമിങ് സമൂഹത്തിൽ ഇത് ജനറിക് പ്രോഗ്രാമിങ് എന്നും [[ഫങ്ക്ഷണൽ പ്രോഗ്രാമിങ്]] സമൂഹത്തിൽ ഇത് വെറുതെ പോളിമോർഫിസം എന്നും അറിയപ്പെടുന്നു.
* ''സബ്ടൈപ്പിംഗ്'' ഒരു
Line 30 ⟶ 32:
Writeln(Add('Hello, ', 'World!')); (* Prints "Hello, World!" *)
end.
</source>
അതുപോലെ ചില ഭാഷകളിൽ പ്രോഗ്രാമർ പ്രത്യേകിച്ച് ഒന്നും സൂചിപ്പിച്ചില്ലെങ്കിലും കംപൈലർ ഒരു ഫങ്ക്ഷനിലേയ്ക്ക് ഇടുന്ന ഡാറ്റയുടെ ടൈപ്പ് സ്വന്തമായി ഊഹിച്ചു മാറ്റാറുണ്ട്. ഇതിനെ ഇംപ്ലിസിറ്റ് ടൈപ്പ് കോൺവെർഷൻ എന്നാണ് വിളിയ്ക്കുന്നത്. ഇതും ഒരു തരം ആഡ് ഹോക്ക് പോളിമോർഫിസം ആണ്..<ref name="Tucker2004">{{Cite book|url=https://books.google.com/books?id=9IFMCsQJyscC&pg=SA91-PA5|title=Computer Science Handbook, Second Edition|last=Allen B. Tucker|date=28 June 2004|publisher=Taylor & Francis|isbn=978-1-58488-360-9|pages=91–}}</ref>
Line 49 ⟶ 52:
map f Nil = Nil
map f (Cons x xs) = Cons (f x) (map f xs)
</source>
class List<T> {
class Node<T> {
Line 63 ⟶ 67:
}
</source>
ഈ ആശയം വ്യാപകമായി ഉപയോഗിച്ച് ഡിസൈൻ ചെയ്യപ്പെട്ടിട്ടുള്ള ഒരു ലൈബ്രറിയാണ് സി++'ലെ [[സ്റ്റാൻഡേർഡ് ടെമ്പ്ലേറ്റ് ലൈബ്രറി (സി++) | സ്റ്റാൻഡേർഡ് ടെമ്പ്ലേറ്റ് ലൈബ്രറി]].
=== സബ്ടൈപ്പിംഗ് ===
Line 99 ⟶ 104:
മുകളിലെ വിവരണങ്ങളിൽ ചില പോളിമോർഫിസം വിദ്യകൾ കംപൈൽ സമയത്തും ചിലവ റൺ ടൈമിലും ആണ് പ്രവർത്തിയ്ക്കുന്നത് എന്ന് കണ്ടല്ലോ. കംപൈൽ സമയത്തു പ്രവർത്തിയ്ക്കുന്ന പോളിമോർഫിസത്തെ സ്റ്റാറ്റിക് പോളിമോർഫിസം എന്നും റൺടൈമിൽ പ്രവർത്തിയ്ക്കുന്ന പോളിമോർഫിസത്തെ ഡൈനാമിക് പോളിമോർഫിസം എന്നും വിളിയ്ക്കുന്നു. കംപൈൽ സമയത്തു തന്നെ എല്ലാം തീർപ്പാക്കുന്നതിനാൽ സ്റ്റാറ്റിക് പോളിമോർഫിസം സാധാരണ വേഗത്തിൽ പ്രവർത്തിയ്ക്കുന്നു. അത് കൂടാതെ കോഡ് തന്നെ വായിച്ചു നോക്കി തെറ്റുകൾ കണ്ടെത്തുന്ന പ്രോഗ്രാമുകൾ (static code analysis) ഉപയോഗിച്ച് (കംപൈലർ സഹായം വേറെ) ഇതിലെ തെറ്റുകൾ തിരുത്താൻ താരതമ്യേന എളുപ്പമാണ്. അത് കൂടാതെ കംപൈലറുകൾക്കു ഉണ്ടാക്കുന്ന മെഷീൻ കോഡിൽ ആവശ്യത്തിന് വേഗക്കൂടുതൽ വിദ്യകളും (code optimization) കൊണ്ടുവരാൻ സഹായിയ്ക്കും. എന്നാൽ ഡൈനാമിക് പോളിമോർഫിസം ഉപയോഗിച്ച് കൂടുതൽ സങ്കീർണമായ ആവശ്യങ്ങൾ നേടിയെടുക്കാം.
== ഇവ കൂടി കാണുക ==
{{reflist|30em}}▼
* [[സ്റ്റാൻഡേർഡ് ടെമ്പ്ലേറ്റ് ലൈബ്രറി (സി++)]]
== അവലംബം ==
[[വർഗ്ഗം:പ്രോഗ്രാമിങ് ഭാഷകൾ]]
[[വർഗ്ഗം:കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ്ങ്]]
[[വർഗ്ഗം:സോഫ്റ്റ്വെയർ സാങ്കേതികവിദ്യ]]
|