పాలీ మార్ఫిజం (బహురూపత)(కంప్యూటర్ సైన్సు)
|
ఈ వ్యాసాన్ని వికీకరించి ఈ మూసను తొలగించండి. |
కంప్యూటర్ సైన్సు లో ,పాలీ మార్ఫిజం అనేది ఒకే ప్రతిముఖాన్ని ఉపయోగించుకుని వివిధ సమాచార రకాలకు విలువలను ఆపాదించే పనిని చేయగలిగే ఒక ప్రోగ్రామింగ్ భాష.పారా మెట్రిక్ పాలీ మార్ఫిజం అనేది సమాచార రకాలకు మరియు కార్యకలాపాలకు రెండిటికీ వర్తిస్తుంది.వివిధ రూపాల విలువలను వెలకట్టగలిగే కార్యం(ఫంక్షన్)పాలిమార్ఫిక్ ఫంక్షన్ గా పిలవబడుతుంది.సాధారణ రకముగా కనపడే సమాచార రకం ( ఉదాహరణకు ,స్వతంత్ర రకాల వస్తువుల జాబితా) ను పాలీ మార్ఫిక్ డేటా రకముగా గుర్తించవచ్చు ,ఈ సాదారణ రకాల నుండే అలాంటి ప్రత్యేక రకాలు ఉద్బవిస్తాయి.
1967 లో క్రిస్టోఫర్ స్త్రాచే వివరించినట్లు ,పాలీ మార్ఫిజం లో ముఖ్యముగా రెండు భిన్న రకాలు ఉన్నాయి.వాస్తవ రకాలు ఉపయోగించుగో గలిగే పరిధి పరిమితముగా ఉంటే మరియు వినియోగానికి మునుపే ,ఆ సమ్మేళనాలను స్వతంత్రముగా వ్యక్తం చేయగలిగితే ,అది ఎడ్-హాక్ పాలీ మార్ఫిజం గా పిలవబడుతుంది. ఏ ప్రత్యేక రకాల ప్రస్తావన తేకుండా కోడ్ అంతా రాయగలిగితే మరియు ఎన్ని నూతన రకాలతో అయినా యధేచ్చగా వాడగలిగితే ,దానిని పారా మెట్రిక్ పాలీ మార్ఫిజం అంటారు.జాన్ సి.రేనాల్డ్స్( మరియు తరువాత జెన్-వైవ్స్ జిరార్డ్)ఈ పాలీ మార్ఫిజం అనే ఆలోచనను లాంబ్డా కాల్క్యులస్( పాలీ మార్ఫిక్ లాంబ్డా కాల్క్యులస్,లేదా సిస్టం F గా పిలవబడింది) కు కొనసాగింపుగా అభివృద్ధి చేసాడు.
ఆబ్జెక్ట్ -ఓరిఎన్టెడ్ ప్రోగ్రామింగ్ లో ఎడ్-హాక్ పాలీ మార్ఫిజం అనేది టైపు సిద్ధాంతం లో ఒక భావం,అందులో పేరు కొన్ని ఉమ్మ్మడి పెద్ద తరగతులకు(సూపర్ క్లాసు)చెందిన వివిధ రకాల చాలా తరగతుల ఉదాహరణలను సూచిస్తుంది . [1][1]ఎడ్-హాక్ పాలీ మార్ఫిజం సాధారణంగా సబ్ టైపింగ్ ద్వారా సమర్దిన్చబడుతోంది ,అదెలాగంటే వివిధరకాల వస్తువులు వేరే రకమైన వస్తువులతో (వాటి మూల రకాలు) తో పూర్తిగా ప్రతిక్షేపించబడతాయి మరియు అందువలన అవి ఉమ్మడి ప్రతిముఖము(ఇంటర్ ఫేస్) ద్వారా చేపట్టబడతాయి.ఎడ్-హాక్ పాలీ మార్ఫిజం ,ఫంక్షన్ మరియు మెథడ్ ఓవర్ లోడింగ్ లను ఉపయోగించుకొని చాలా భాషలలో సమర్దించబడింది.[ఆధారం కోరబడినది]
పారా మెట్రిక్ పాలిమార్ఫిజం స్థిరంగా కూర్చబడిన ఫంక్షన్అల్ ప్రోగ్రామింగ్ భాషలలో విస్తృతంగా సమర్దించ బడింది.ఆబ్జెక్ట్-ఓరిఎన్టెడ్ ప్రోగ్రామింగ్ వర్గము లో ,పారా మెట్రిక్ పాలీ మార్ఫిజం ను ఉపయోగించుకొనే ప్రోగ్రామింగ్ జెనెరిక్ ప్రోగ్రామింగ్ గా తరుచుగా పిలవబడుతుంది.
[మార్చు] దృడంగా - టైప్ చెయ్యబడ్డ భాషలలో (ఎర్లీ - బౌండ్)పాలిమార్ఫిజం
[మార్చు] పారా మెట్రిక్ పాలిమార్ఫిజం
పారా మెట్రిక్ పాలీ మార్ఫిజం ,పూర్తి స్థిరమైన టైపు-సేఫ్టీ ని కాపాడుతూనే భాషను ఎక్కువ వ్యక్తీకరించే మార్గం.పార మెట్రిక్ పాలీ మార్హిజం ను ఉపయోగించి ,ఒక ఫంక్షన్ లేదా సమాచార రకంను సాధారణం గా రాయవచ్చు,దాని వలన వాటి టైపు పైన ఆధార పడకుండానే అది విలువలను సమానంగా నిర్వహిస్తుంది.[3] [3]
ఉదాహరణకు, రెండు జాబితాలను కలిపే ఒక ఫంక్షన్ కూర్పు(అప్పెండ్) ను ,అది ఎలిమెంట్స్(వస్తువులు)రకాలను ఖాతరు చేయని విధంగా నిర్మించవచ్చు: అది పూర్ణ సంఖ్యల జాబితాలను,సహజ సంఖ్యల జాబితాలను,స్ట్రింగ్స్(వర్ణ సమూహము)యొక్క జాబితాను మొదలైన వాటిని కూర్చుతుంది .టైపు వేరియబుల్ a జాబితా లోని ఎలిమెంట్స్ రకాన్ని సూచిస్తుంది అనుకుందాము.అప్పుడు కూర్పు ఈ విధంగా టైపు చేయవచ్చు [a ] × [a ] → [a ], ఇక్కడ [a ] టైపు a యొక్క ఎలిమెంట్స్ జాబితాను సూచిస్తుంది.కూర్పు రకము a యొక్క అన్ని విలువలకు ,a చేత పరిమితించబడింది (అక్కడ ఒకేఒక్క టైపు వేరియబుల్ ఉండటం వల్ల,ఆ ఫంక్షన్ ను ఈ జాబితాల జోడీ కి ఆపాదిన్చలేము: జోడీ లానే ఫలితాల జాబితా కూడా ,ఒకే రకమైన ఎలిమెంట్స్ ను కలిగివుండాలి.) కూర్పు ఆపాదించబడ్డ ప్రతి స్థలములో , a కొరకు ఒక విలువ నిర్ణయించబడింది.
పారా మెట్రిక్ పాలీ మార్ఫిజం మొదటిసారిగా 1976 లో ML లో ప్రోగ్రామింగ్ భాష లకు పరిచయం చేయబడింది.ఇవాళ ఇది స్టాండర్డ్ ML, OCaml, Ada, Haskell, C++, విసుఅల్ ప్రోలాగ్ మరియు ఇతర వాటిలో ఉంది.Java, C#, Visual Basic .NET and Delphi (CodeGear) లు తాజాగా ఒక్కొక్కటే పార మెట్రిక్ పాలీ మార్ఫిజం కొరకు "జేనేరిక్స్" ను ప్రవేశ పెట్టాయి.
పాలీ మార్ఫిజం యొక్క సాధారణ రూపు "ఉన్నత-స్థాయి ఇమ్ప్రేడికేటివ్ పాలీ మార్ఫిజం ". నిర్బంధ స్థాయి పాలీ మార్ఫిజం (ఉదాహరణకు ,రాంక్-1 లేదా ప్రేనేక్స్ పాలీ మార్ఫిజం )మరియు ప్రేడికేటివ్ పాలీ మార్ఫిజం అనేవి ఈ రూపు యొక్క రెండు ప్రసిద్ధ ఆంక్షలు . ఈ రెండు ఆంక్షలు కలసి "ప్రేడికేటివ్ ప్రేనేక్స్ పాలిమార్ఫిజం" ను ఇచ్చాయి,అది ML మరియు హాస్కేల్ పూర్వ వెర్షన్ లలో ఖచ్చితముగా కనపడే పాలిమార్ఫిజం యొక్క రూపు.
[మార్చు] రాంక్ నిర్బంధాలు (రెస్ట్రిక్షన్స్)
[మార్చు] రాంక్ -1 (ప్రేనేక్స్ )బహురూపత(పాలీమార్ఫిజం)
ప్రేనేక్స్ పాలిమార్ఫిక్ వ్యవస్థలో ,టైపు వేరియబుల్స్ ,పాలిమార్ఫిక్ టైప్స్ తో ఇన్స్టాన్షిఎట్ (కొత్త ఆబ్జెక్ట్ లను తయారుచేయటం)అవలేవు.ఇది "ML-స్టైల్ " లేదా "Let-పాలిమార్ఫిజం" కు సారూప్యముగా ఉంటుంది(సాంకేతికంగా ML యొక్క Let-పాలిమార్ఫిజం కొన్ని వాక్య నిర్మాణ నిర్బంధాలను కలిగివుంది).
ఈ నిర్బంధము పాలిమార్ఫిక్ మరియు పాలిమార్ఫిక్ కాని టైపు లకు మధ్య బేధాలను చాల ముఖ్యం చేస్తుంది; అందువలన ప్రేడికేటివ్(అఖ్యాత) వ్యవస్థ లలో పాలిమార్ఫిక్ రకాలు ,కొన్ని సార్లు మోనో టైప్స్ గా పిలవబడే సాధారణ(ఏకరూపక)రకాల నుండి వేరు అని చూపించటానికి వాటిని కొన్ని సార్లు వ్యూహ రకాలు (టైపు స్కీమాస్) అని పిలవబడతాయి.ఒక పర్యవసానము ఏమిటంటే అన్ని రకాలు(టైప్స్) ,లెక్కించే వాటిని ( క్వాన్టి ఫైఎర్ )అన్నింటిని బయటి (ప్రేనేక్స్)స్థానము లో ఉంచే ఒక రూపము లో వ్రాయబడతాయి.
ఉదాహరణకు,పైన వివరించిన అప్పెండ్ ఫంక్షన్(కూర్పు క్రియ)ను తీసుకుంటే, అది type [a ] × [a ] → [a ] ను కలిగి వుంది;ఈ ఫంక్షన్ ను ఒక జాబితాల జోడీ కి అన్వయించటానికి గాను ,తర్కాల (ఆర్గ్యుమెంట్స్ )రకం ,ఫలితంగా వచ్చే ఫంక్షన్ రకంతో పొంతనగా ఉండేటట్లు , ఫంక్షన్ యొక్క రకంలో ఒక రకమును (టైపు) వేరియబుల్ a కొరకు బదలాయించబడాలి ఒక ఇమ్ప్రేడికేటివ్ (ఊహించ శక్యము కాని )వ్యవస్థ లో ,ప్రతిక్షేపించ బడే రకం ,ఎదిఎమైనా పాలిమార్ఫిక్ రకము తో కలుపుకొని , ఏ రకమైన కావచ్చు;ఆ విధంగా అప్పెండ్(కూర్పు)ను ఎ రకమైన ఎలిమెంట్స్ తో కూడిన జాబితాల జోడీకి అయినా ఆఖరికి అప్పెండ్ లాంటి పాలిమార్ఫిక్ ఫంక్షన్(బహురూప క్రియలు)లకు కూడా అన్వయించవచ్చు .
ML భాష లో మరియు దాని దగ్గరి సంబందీకులలో బహురూపత నిరూపించదగినది(ప్రేడికేటివ్).ఇది ఎందుకంటే ప్రేదికేటివిటి ,ఇతర నిర్బంధాలతో (రెస్ట్రిక్క్షన్స్ ) తో కలిసి టైపు ఇంఫరెంస్ సాధ్యమయేటట్లు టైపు సిస్టం ను సులభం చేస్తుంది.స్పష్టమైన వ్యాఖ్యానాలు అవసరమైన భాషలలో బహురూప క్రియను అన్వయించే టప్పుడు, నిరూపణ నిర్బందనలు అంత ముఖ్యం కాదు;అందువలన ఈ భాషలు సాధారణం గా ఇమ్ప్రేడికేటివ్ (నిరూపణ అవసరము లేనివి )హాస్కేల్ ప్రేడికేటివిటి లేకుండానే కొన్ని చిక్కులతో టైపు ఇంఫరెంస్ ను సాధించ గలిగింది.
[మార్చు] రాంక్ -k పాలిమార్ఫిజం
కొంత స్థిర విలువ కల k కు ,రాంక్- k పాలిమార్ఫిజం అనేది ఒక వ్యవస్థ,అందులో ఒక క్వాంటి ఫైఎర్ (లెక్కించ బడేది)k కన్నా ఎక్కువ బాణాల కు ఎడమ వైపు కనిపించక పోవచ్చు(టైపు ఒక వృక్షముగా గీయబడినపుడు). [4][1]
రాంక్ - 2 పాలిమార్ఫిజం కొరకు టైపు పునర్నిర్మాణము నిర్ణయించ తగినదే కాని,రాంక్ -3 మరియు అంతకు పైన వాటి పునర్నిర్మాణము నిర్ణయించలేము.
[మార్చు] రాంక్ -n ("ఉన్నత-స్థాయి ") పాలిమార్ఫిజం
రాంక్ -n పాలిమార్ఫిజం లో క్వాంటి ఫైఎర్స్ చాల బాణాలకు(ఆరోస్ )కు ఎడమ విఅపు యధేచ్చగా అగుపిస్తాయి.
[మార్చు] ప్రేడికేటివిటి(నిరూపణ) నిర్బంధనలు
[మార్చు] ప్రేడికేటివ్ పాలిమార్ఫిజం
ప్రేడికేటివ్ పారా మెట్రిక్ పాలిమార్ఫిక్ వ్యవస్థలో , ఒక టైపు వేరియబుల్
ను కలిగి వున్నఒక టైపు
,
పోలిమార్ఫిక్ టైపు గా రూపాంతరము చెందే విధంగా ఉపయోగించ బడదు.
[మార్చు] ఇంప్రేడికేటివ్ పాలిమార్ఫిజం ("మొదటి తరగతి" పాలిమార్ఫిజం )
మొదటి-తరగతి పాలిమార్ఫిజం గా కూడా పిలవబడుతుంది.ఇం ప్రేడికేటివ్ పాలిమార్ఫిజం ,పాలిమార్ఫిక్ టైపు అయిన
తో కలుపుకొని ఏ టైపు తో అయినా ,టైపు
లోని వేరియబుల్ ను రూపాంతరము చేయటానికి దోహదం చేస్తుంది.
టైపు సిద్ధాంతము లో చాల తరచుగా చదవబడిన typed λ-కాల్క్యులి లాంబ్డా క్యూబ్ ,ముఖ్యంగా సిస్టం F పైన ఆధారపడి ఉన్నాయి . ప్రేడికేటివ్ టైపు సిద్ధాంతాలు మార్టిన్ -Löf టైపు సిద్ధాంతము మరియు NuPRL లను కలిగివున్నాయి .
[మార్చు] పరిమిత పారా మెట్రిక్ పాలిమార్ఫిజం
1985 లో కార్డెల్లి మరియు వేగ్నేర్, టైపు పారామీటర్లు పైన పరిమితులను అనుమతించడము వల్ల ఉపయోగాలను గుర్తించారు. చాల క్రియలు సమాచార రకాలు యొక్క జ్ఞానాన్ని కలిగి ఉండటాన్ని కోరుకుంటాయి,కాని పారా మెట్రికల్ గా పనిచేస్తాయి.ఉదాహరణకు ,ఒక వస్తువు జాబితాలో ఉందేమో చూసుకోవటానికి ,వాటి సమానత్వం కోసం మనం వాటిని పోల్చి చూడాలి.స్టాండర్డ్ ML లో , ఫాం ’’a యొక్క టైపు పేరా మీటర్లు నిర్బందించ బడ్డాయి అందువలన సమానత్వ క్రియ (ఈక్వాలిటి ఆపరేషన్ )వీలైంది,దీనితో ఈ ఫంక్షన్, టైపు ’’a × ’’a లిస్టు → బూల్ ను కలిగి ఉంది మరియు ’’a అనేది నిర్వచిత సమానత్వం తో ఉన్నా ఒక రకం మాత్రమే.హస్కేల్ లో ,రకాలను ఒక రకం క్లాసు కు చెందాలని కోరుకోవటం ద్వారా బౌన్దింగ్ సాధించబడుతుంది; అందుకని హాస్కేల్ లో రకం {\scriptstyle Eq \, \alpha \, \Rightarrow \alpha \, \rightarrow \left[\alpha \right] \rightarrow Bool} ను కలిగి ఉంది. పారా మెట్రక్ పాలిమార్ఫిజం ను సమర్ధించే అన్ని ఆబ్జెక్ట్-ఓరిఎంటెడ్ ప్రోగ్రామింగ్ భాష లలో ,పారా మీటర్లు ,ఇచ్చిన రకం యొక్క ఉప రకాలుగా నిర్బందిచబడ వచ్చు(క్రింద వున్నా #సబ్ టైపింగ్ పాలిమార్ఫిజం మరియు జెనెరిక్ ప్రోగ్రామింగు పైన వ్యాసము చూడుము).
[మార్చు] సబ్ టైపింగ్/ఉప రకాల పాలిమార్ఫిజం(లేదా ఇంక్లుషన్ పాలిమార్ఫిజం)
- ప్రధాన వ్యాసం: Subtype
పారా మెట్రిక్ పాలిమార్ఫిజం యొక్క ప్రత్యేక స్థితి లో ఉపయోగించుకునే రకాల శ్రేణులను నిర్బందించటానికి కొన్ని భాషలు సబ్ టైప్స్ అనే ఆలోచనను అమలుచేస్తాయి.ఈ భాష లలో , సబ్ టైపింగ్ పాలిమార్ఫిజం (కొన్ని సార్లు డైనమిక్ పాలిమార్ఫిజం గా చెప్పబడే ) ఒక ప్రత్యేక టైపు T యొక్క ఆబ్జెక్ట్ ను తీసుకోవటానికి ఒక ఫంక్షన్ ను రాయటానికి అనుమతిస్తుంది, T కి సబ్ టైపు అయిన టైపు S కు సంబంధించిన ఒక ఆబ్జెక్ట్ ను పాస్ చేసినా కూడా సైగా పనిచేస్తుంది.(లిస్కోవ్ బదులు సిద్ధాంతము ) ప్రకారము)ఈ రకమైన సంబంధము కొన్నిసార్లు ఈ విధం గా రాస్తారు S <: T . దానికి విరుద్ధంగా T ని S యొక్క సూపర్ టైపు గా చెపుతారు - రాత పూర్వకంగా T :> S .
ఉదాహరణకు,నంబర్ :> రేషనల్ మరియు నంబర్ :> ఇంటేజర్ అయ్యేటట్లు నంబర్ , రేషనల్ , మరియు ఇంటేజర్ లు టైప్స్ అయితే నంబర్ ను తీసుకోవటానికి రాసిన ఒక ఫంక్షన్ సంఖ్య ను పాస్ చేసినప్పుడు ఎలా పనిచేసిందో ఇంటేజర్ లేదా రేషనల్ ను పాస్ చేసినప్పుడు కూడా అంతే బాగా పనిచేస్తుంది.ఆ ఆబ్జెక్ట్ యొక్క నిజమైన రూపు కక్షిదారు (క్లైంట్) నుండి ఒక బ్లాకు బాక్స్ లో దాచబడుతుంది,మరియు ఆబ్జెక్ట్ గుర్తింపు ద్వారా ఆక్సెస్ చేయబడుతుంది. నిజానికి, నెంబర్ టైపు ఆబ్స్ట్రాక్ట్ అయితే ,మోస్ట్-డిరైవ్ద్ టైపు నెంబర్ అయిన ఆబ్జెక్ట్ పైన చేయి కూడా పెట్టలేము(ఆబ్స్ట్రాక్ట్ డేటా టైపు,ఆబ్స్ట్రాక్ట్ క్లాసు చూడుము). ఈ విధమైన టైపు సోపాన క్రమము -ముఖ్యముగా స్కీం ప్రోగ్రామింగు లాంగ్వేజ్/భాష సందర్భము లో న్యూమరికల్ టవర్ గా ప్రసిద్ధమైనది,మరియు సాధారణంగా చాలా రకాలను కలిగి ఉంది.
ఆబ్జెక్ట్-ఒరిఎంటేడ్ ప్రోగ్రామింగ్ భాషలు సబ్ క్లాసు ఇంగ్ ను ఉపయోగించుకుని సబ్ టైపింగ్ పాలిమార్ఫిజం ను ఇస్తాయి(వారసత్వము (ఇన్హరిటాన్స్) గా కూడా తెలిసిన).అచ్చమైన ఆచరణ లలో ,ప్రతి తరగతి (క్లాసు)ఒక విర్టుఅల్ (మిధ్యా ) టేబుల్ ను కలిగివుంటుంది- తరగతి అభిముఖి (క్లాసు ఇంటర్ఫేస్) యొక్క పాలిమార్ఫిక్ పార్ట్ ను అమలు పరచే ఫుంచ్షన్స్ యొక్క టేబుల్-మరియు ప్రతి ఆబ్జెక్ట్ దాని క్లాసు యొక్క "v టేబుల్ "కి ఒక పాయింటర్ ను కలిగి వుంటాయి,అది పాలిమార్ఫిక్ పధ్ధతి కాల్ చేయబడి నప్పుడల్లా సంప్రదించ బడుతుంది. ఈ శాస్త్రీయ పధ్ధతి వీటికి ఉదాహరణ:
- లేట్ బైండింగ్ , ఎందుకంటే మిధ్యా ఫంక్షన్ కాల్స్ ఆవాహన (ఇన్వొకేషన్)సమయము వరకు నిబ్బద్ధమై వుండవు.
- సింగిల్ డిస్పాచ్ /0} (i.e., సింగిల్ -ఆర్గ్యుమెంట్ పాలిమార్ఫిజం ), మొదటి ఆర్గ్యు మెంట్ (
థిస్అనే ఆబ్జెక్ట్ )చేత సమకూర్చ బడిన v టేబుల్ ద్వారా చూడటం వల్ల మిధ్యా ఫంక్షన్ కాల్స్ నిబద్ధమై వుండటం వల్ల ,ఇతర వాదనల యొక్క రన్ టైం రకాలు పూర్తిగా సంబంధం లేకుండా ఉంటాయి.
ఇతర ప్రముఖ ఆబ్జెజ్ట్ వ్య్వస్తలకు ఇదే వర్తిస్తుంది.ఏది ఏమైనప్పటికీ ,కొన్ని,CLOS,వంటివి మల్టిపుల్ డిస్పాచ్ ,ను సమకూరుస్తాయి, దాని క్రింద అన్ని ఆర్గ్యు మెంట్స్ లో మెథడ్ కాల్స్ పాలిమార్ఫిక్.
[మార్చు] శీఘ్ర పరిమిత భాషల (ఎర్లీ బౌండ్ లాంగ్వేజస్) కొరకు ఎడ్-హాక్ పాలిమార్ఫిజం
స్ట్రాచే [7][7] ఎడ్-హాక్ పాలిమార్ఫిజం అనే పదాన్ని వివిధ రకాల తర్కాలకు(ఆర్గ్యుమెంట్స్ )అన్వయిస్తూనే,అవి దేనికైతే అన్వయించారో ఆ వాదన రకాన్ని బట్టి విభిన్నంగా ప్రవర్తించే పాలిమార్ఫిక్ ఫంక్షన్ ల గురించి చెప్పటానికి ఎంచుకున్నాడు (ఫంక్షన్ ఓవర్లోడింగ్ గా కూడా ప్రసిద్ధమైనది).ఈ సందర్భములో "ఎడ్ హాక్" అనే పదము చెడుగా ఉద్దేసించలేదు;ఇది ఈ రకమైన పాలిమార్ఫిజం, టైపు సిస్టం యొక్క ప్రాధమిక లక్షణం కాదు అనే నిజాన్ని తెలియజేస్తుంది.
ఎడ్-హాక్ పాలిమార్ఫిజం ఒక పంపించే(డిస్పాచ్) యంత్రము(మెకానిజం):పేరున్న ఒక ఫంక్షన్ లో కదులుతున్న కంట్రోల్(అదుపు)పిలువబడే సరిఅయిన ఫంక్షన్ ను వివరించే అవసరం లేకుండానే ఇతర వేర్వేరు ఫంక్షన్ లకు తరలించ బడుతుంది.వేర్వేరు టైప్స్ ను తీసుకొనే అనేక ఫంక్షన్ లు ఒకే పేరుతొ నిర్వచించ బడటాన్ని ఓవర్లోడింగ్ అనుమతిస్తుంది; సంకలన కర్త (కంపైలర్ )లేదా దుబాసీ(ఇంటర్ప్రేటర్ )అనుకోకుండానే సరి అయిన దానిని కాల్ చేస్తుంది.ఈ విధంగా,పూర్ణ సంఖ్యల జాబితాలను,వర్ణ సమూహాల జాబితాలను,సహజ సంఖ్యల జాబితాలను మరియు ఇలాంటి వాటిని కూర్చే(అప్పెండ్ ) చేసే ఫంక్షన్ లను రాయవచ్చు,మరియు అన్నింటిని అప్పెండ్ అని పిలవవచ్చు-మరియు కూర్చబడుతున్న జాబితా రకాన్ని బట్టి సరిఅయిన అప్పెండ్ ఫంక్షన్ పిలవబడుతుంది. ఏ రకమైన జాబితాతో అయినా పనిచేయటానికి,సహజంగా రాయబడిన ఫంక్షన్ ను కలిగి ఉండటం లో ఇది పారా మెట్రిక్ పాలిమార్ఫిజం తో విబేధిస్తుంది.ఓవర్లోడింగ్ ను ఉపయోగించి ,వాటిలోకి పంపబడ్డ ఇన్పుట్ రకాన్ని బట్టి రెండు పూర్తి విరుద్ధమైన పనులు చేసే ఒక ఫంక్షన్ ను కలిగి ఉండటానికి వీలు ఉంది.ఓవర్లోడింగ్ కు ఇంకొక పార్శ్వము ఏమిటంటే,ఒక రొటీన్ దాని పేరు చేత కాకుండా,దాని పేరు మరియు నెంబర్ ల సమ్మేళనముతో,వరుస మరియు దాని అవధుల (పేరా మీటర్లు )రకాల వల్ల ప్రత్యేకంగా గుర్తించబడుతుంది.
ఈ రకమైన పాలిమార్ఫిజం ఆబ్జెక్ట్-ఓరిఎన్టెడ్ ప్రోగ్రామింగు భాషలలో సాధారణంగా ఉంటుంది,వాటిలో చాలా వరకు,ఫంక్షన్ ల మాదిరిగానే ఆపరేటర్లు ఓవర్లోడ్ అవటానికి అనుమతిస్తాయి(ఆపరేటర్ ఓవర్లోడింగ్ చూడుము)చైతన్య వంతంగా టైపు చెయ్యబడని మరియు ఎడ్-హాక్ పాలిమార్ఫిజం లేని కొన్ని భాషలు print_int, print_string వంటి పెద్ద ఫంక్షన్ పేర్లను కలిగి వుంటాయి. ఒక్కొక్కరి దృష్టిని బట్టి దీనిని ప్రయోజనం గాను(ఎక్కువ వివరణాత్మకంగా)లేదా ఒక ఆప్రయోజనం (అతి వాచాలత్వము)గాను చూడవచ్చు.
విశేషత్వము కనపడటము ఓవర్లోడింగ్ నుండి కొన్ని సార్లు పొందే ప్రయోజనము,ఉదాహరణకు,ఒకే పేరుతో ఉన్నా ఒక ఫంక్షన్ అనేక విబ్భిన్న మార్గాలలో అమలు పరచవచ్చు,ప్రతిదీ తను ఆపరేట్ చేసే ప్రత్యేక సమాచార రకం కొరకు ఆప్టిమైజ్ చేయబడింది.పనితనం కారణాల కోసం అనేక పరిస్థితులకు ప్రత్యేకించవలసిన అవసరం ఉన్న కోడ్(సంకేతం)కొరకు ఇది ఒక సదుపాయమైన ఇంటర్ పేస్ ను సమకూరుస్తుంది.
సంకలన సమయంలో ఓవర్లోడింగ్ జరగటం వల్ల ,సబ్టైపింగ్ పాలిమార్ఫిజం లో కనపడేటట్లు ఇది లేట్ బైండింగ్ కు బదులు కాదు.
[మార్చు] వెనుకటి పరిమిత భాషల (లేట్ బౌండ్ లాంగ్వేజ్)కొరకు ఎడ్-హాక్ పాలిమార్ఫిజం
ముందుటి భాగము ఏకీభవించక పోయినా,ఎడ్-హాక్ పాలిమార్ఫిజం పనిచేసేందుకు ఇతర మార్గాలు ఉన్నాయి.ఉదాహరణకు స్మాల్ టాక్ భాషనే తీసుకుందాము.స్మాల్టాక్ లో ,ఓవర్ లోడింగ్ పనిజరిగే కాలంలో (రన్ టైం)జరుగుతుంది ఎందుకంటే ఓవర్ లోడ్ అయిన ప్రతి సందేశానికి("ఓవర్ లోడ్ అయిన ఫంక్షన్") చెందిన పద్ధతులు(మెథడ్స్)("ఫంక్షన్ అమలుపరచటం") అవి నిర్వహించబడుతూ ఉండగా పరిష్కరింపబడతాయి.ఇది ప్రోగ్రాం అంతా కూర్చిన తరువాత రన్ టైం లో జరుగుతుంది.అందువలన,ఇతర భాషలలో లాగానే పాలిమార్ఫిజం ,సబ్టైపింగ్ పాలిమార్ఫిజం చేత ఇవ్వబడుతుంది, మరియు రన్ టైం వద్ద ఎడ్-హాక్ పాలిమార్ఫిజం చేత క్రియాశీలతలో విస్తరించబడింది.
నిశితంగా చూస్తె స్మాల్ టాక్ కొద్దిగా విభిన్నమైన ఎడ్-హాక్ పాలిమార్ఫిజంను అందిస్తుందని తెలుస్తుంది.స్మాల్ టాక్ వెనుకటి పరిమిత నిర్వహణ నమూనా(లేట్ బౌండ్ ఎక్షిక్యుశన్ మోడల్ ) ను కలిగి ఉండటం వల్ల ,మరియు అర్ధంకాని సందేశాలను చేపట్టే సామర్ధ్యాన్ని ఆబ్జెక్ట్ లకు ఇవ్వటం వల్ల ,ముందుకు వెళ్ళటానికి మరియు ఒక ప్రత్యేక సందేశాన్ని ఖచ్చితంగా ఓవర్లోడ్ చేయకుండా పాలిమార్ఫిజం ను ఉపయోగించుకుని పనితనాన్ని(ఫన్క్షనాలిటి )అమలుపరచటానికి వీలవుతుంది.ఇది రోజువారీ ప్రోగ్రామింగు కు సాధారణంగా సిఫార్సు చేయబడ్డ పధ్ధతి కాదు,కాని ప్రతినిధులను అమలు పరచటం లో ఇది చాలా ఉపయోగము
సాధారణ భాషలో కామన్ క్లాసు మెథడ్స్(ఉమ్మడి తరగతి పద్ధతులు) మరియు కన్స్ట్రక్టర్ ఓవర్లోడింగ్ పాలిమార్ఫిజంగా పరిగనించబడవు, ఏకరీతిగా ఉండే భాషలు చాలా ఉన్నాయి, వాటిలో తరగతులు సాధారణ ఆబ్జేక్ట్లు.ఉదాహరణకు, స్మాల్ టాక్ లో తరగతులు సాధారణ ఆబ్జేక్ట్లు.బదులుగా,దీని అర్ధం తరగతులకు పంపిన సందేశాలు ఓవర్లోడ్ చేయవచ్చు, మరియు తరగతుల సోపానుక్రమం నుండి వాటి తరగతులు పారంపర్యంగా రాకుండానే తరగతుల లానే ప్రవర్తించే ఆబ్జెక్ట్ లను తయారుచేయటానికి వీలవుతుంది. స్మాల్ టాక్ యొక్క శక్తివంతమైన పరావర్తన సామర్ధ్యాల లాభాలను పొందటానికి ఉపయోగకరమైన పద్ధతులు ఉన్నాయి.సెల్ఫ్ మరియు న్యూస్పీక్ భాషలలో కూడా ఇదే విధమైన ఏర్పాట్లకు ఆస్కారం ఉంది.
[మార్చు] ఉదాహరణ
ఈ ఉదాహరణ ,ఈ ఆర్టికల్ లో వివరించిన మూడు రకాల పాలిమార్ఫిజంలను చూపిస్తుంది.వివిధ రకాల పనులను చేసే సహజ గణిత పరికర్త ఓవర్ లోడింగ్ అయినప్పటికీ,ఈ విధానము లో అది ఖచ్చితమైన ఉదాహరణ కాదు,అది కొన్ని సూక్ష్మ పనులను చేయటానికి వీలుకలిపిస్తుంది.ఇక్కడ కలసినట్లుగా ,వివిధ రకాల పాలీమార్ఫిజంలు సహజముగా వాడుకలో ,కలవు.
పరికర్త + ను తీకున్న్నట్లయితే ,అది ఈ క్రింది విధాలుగా ఉపయోగించబడుతుంది.
1 + 2 = 33.14 + 0.0015 = 3.14151 + 3.7 = 4.7[1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6][true, false] + [false, true] = [true, false, false, true]"foo" + "bar" = "foobar"
[మార్చు] ఓవర్లోడింగ్
ఈ ఆరు ఫంక్షన్ కాల్స్ ను చేయటానికి ,నాలుగు వేర్వేరు కోడ్ భాగాలు కావాలి- స్ట్రింగ్స్ ని వర్ణాల సముదాయముగా భావించినట్లయితే ,మూడు :
- మొదటి స్థితి లో, అబ్భిన్న సంఖ్యల కూడిక జరగాలి.
- రెండవ మరియు మూడవ స్థితులలో, అస్థిర బిందువుల కూడిక జరగాలి(మూడవ స్థితి లో, టైపు అభివృద్ధి లేదా టైపు సవరణ లతో ).
- నాలుగు మరియు ఐదవ స్థితులలో ,జాబితా జోడింపు జరగాలి.
- ఆఖరి స్థితిలో ,ఇది కూడా జాబితా జోడింపు లా జరుగకపోతే,స్ట్రింగ్ జోడింపు జరగాలి(ఉదాహరణకు .,హాస్కెల్ల్).
ఆ విధంగా + అనే పేరు పూర్తిగా విభిన్నమైన మూడు లేదా నాలుగు కార్యాలను సూచిస్తుంది.ఇది ఓవర్ లోడింగ్ కు ఒక ఉదాహరణ.
[మార్చు] ఇవి కూడా చూడండి
- ఆబ్జెక్ట్-ఓరిఎన్టెడ్ ప్రోగ్రామింగ్ లో పాలీ మార్ఫిజం
- (స్థిర) రకాలు లేని పాలిమార్ఫిజం కొరకు డక్ టైపింగ్
- పాలీ మార్ఫిక్ కోడ్ (కంప్యూటర్ వైరస్ పదజాలము )
- పారా మెట్రిక్ పాలీ మార్ఫిజం తో వున్నా లాంబ్డా కాల్క్యులస్ కొరకు సిస్టం F.
- మిధ్యా వారసత్వము
[మార్చు] అన్వయములు
- లూకా కార్దేల్లి , పీటర్ వేగ్నేర్ . ఆన్ అండర్ స్టాడింగ్ టైప్స్, డేటా ఆబ్స్ట్రాక్షన్,అండ్ పాలిమార్ఫిజం , కంప్యూటింగ్ సర్వేలు నుండి , (డిసెంబర్ , 1985)
- ఫిలిప్ వాడ్లేర్, స్టీఫెన్ బ్లాత్ట్. హౌ టు మేక్ ఎడ్-హాక్ పాలిమార్ఫిజం లెస్ ఎడ్ హాక్ , ప్రాక్. 16th ACM సింపోసియుం ఆన్ ప్రిన్సిపుల్స అఫ్ ప్రోగ్రామింగ్ లాంగ్వేజెస్,నుండి , (జనవరి , 1989)
- క్రిస్తోఫెర్ స్త్రాచే . ఫండమెంటల్ కాన్సెప్ట్స్ ఇన్ ప్రోగ్రామింగ్ లాంగ్వేజెస్ , హైఎర్-ఆర్డర్ అండ్ సింబాలిక్ కంప్యూటేషన్ నుండి , (April, 2000)
- పాల్ హుడాక్ , జాన్ పీటర్ సన్ , జోసెఫ్ ఫసేల్ . అ జెంటిల్ ఇంట్రాడక్షణ్ టు హాస్కేల్ వెర్షన్ 98 .
- బూక్ , మొదలైన వారు . ఆబ్జెక్ట్ ఓరిఎంటెడ్ అనాలసిస్ అండ్ డిసైన్ విత్ అప్లికేషన్స్ .
- ↑ ఉదహరింపు పొరపాటు: సరైన
<ref>కాదు;bjpierceఅనే పేరుగల ref లకు పాఠ్యమేమీ ఇవ్వలేదు