അസൈൻമെന്റ് സ്റ്റേറ്റ്‌മെന്റുകളും പോയിന്റർ വേരിയബിളുകളും കമ്പ്യൂട്ടർ സയൻസിന്റെ "ഏറ്റവും വിലപ്പെട്ട നിധികളിൽ" ഉൾപ്പെട്ടതായി ഞാൻ കരുതുന്നു.

ഡൊണാൾഡ് നൂത്ത്, ഗോ സ്റ്റേറ്റ്മെൻോടുകൂടിയ സ്ട്രക്ചേർഡ് പ്രോഗ്രാമിംഗ്[1]

കമ്പ്യൂട്ടർ സയൻസിൽ ഉപയോഗിക്കുന്ന ഒരു ഡാറ്റാ ടൈപ്പാണ് പോയിന്ററുകൾ. ഇവയിൽ ഒരു മെമ്മറി സ്ഥാനത്തിന്റെ വിലാസമായിരിക്കും ഡാറ്റയായി സംഭരിച്ചു വയ്ക്കുക. ഇതിനെ റെഫറൻസ് എന്നു പറയും. ഇത് പോയിന്റ് ചെയ്യുന്ന സ്ഥാനത്തെ മൂല്യം എടുക്കുന്നതിനെ ഡീറെഫറൻസിങ്ങ് ഈ എന്നും പറയും. ലിങ്ക് ലിസ്റ്റ്, ട്രീകൾ, ലുക്കപ്പ് പട്ടികകൾ, കണ്ട്രോൾ പട്ടികകൾ എന്നിവയ്ക്കാണ് ഇവ പ്രധാനമായും ഉപയോഗിക്കുന്നത്. പോയിന്റർ ഉപയോഗിച്ച് ഒരു ഡാറ്റ എടുക്കുമ്പോൾ അതിന്റെ പകർപ്പെടുത്ത് നൽകുന്നതിനു പകരം നിയന്ത്രണം ആ മെമ്മറിസ്ഥാനത്തിലേക്ക് കൈമാറുകയാണ് ചെയ്യുന്നത്. ഇത് വേഗത കൂട്ടുമെങ്കിലും ഡാറ്റയുടെ സുരക്ഷിതത്വം കുറയ്ക്കും.[2]

വേരിയബിളുമായി ബന്ധപ്പെട്ട മെമ്മറി വിലാസത്തിലേക്ക് പോയിന്റർ എ പോയിന്റർ ചെയ്യുന്നു. ഈ ഡയഗ്രാമിൽ, പോയിന്ററുകൾക്കും നോൺ-പോയിന്ററുകൾക്കുമായി കമ്പ്യൂട്ടിംഗ് ആർക്കിടെക്ചർ ഒരേ വിലാസ സ്ഥലവും ഡാറ്റയും ഉപയോഗിക്കുന്നു

പ്രൊസീജറൽ പ്രോഗ്രാമിംഗിൽ കോൾഡ്(called) സബ്റൂട്ടീനുകളുടെ എൻട്രി പോയിന്റുകളുടെ വിലാസങ്ങൾ സൂക്ഷിക്കുന്നതിനും ഡൈനാമിക് ലിങ്ക് ലൈബ്രറികളിലേക്ക് (DLLs) റൺ-ടൈം ലിങ്ക് ചെയ്യുന്നതിനും പോയിന്ററുകൾ ഉപയോഗിക്കുന്നു. ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗിൽ, ബൈൻഡിംഗ് രീതികൾക്കായി ഫംഗ്ഷനുകളിലേക്കുള്ള പോയിന്ററുകൾ ഉപയോഗിക്കുന്നു, പലപ്പോഴും വെർച്വൽ മെത്തേഡ് ടേബിളുകൾ ഉപയോഗിക്കുന്നു.

ആബ്സ്ട്രാക്ട് റഫറൻസ് ഡാറ്റ ടൈപ്പിന്റെ ലളിതവമായതുമായ കോൺക്രീറ്റ് നടപ്പാക്കലാണ് പോയിന്റർ. നിരവധി ഭാഷകൾ, പ്രത്യേകിച്ച് നിമ്നതല ഭാഷകൾ(low-level languages), ചില തരം പോയിന്ററുകളെ പിന്തുണയ്ക്കുന്നു, എന്നിരുന്നാലും ചിലതിന് അവയുടെ ഉപയോഗത്തിൽ മറ്റുള്ളവയേക്കാൾ കൂടുതൽ നിയന്ത്രണങ്ങളുണ്ട്. പൊതുവായി റഫറൻസുകളെ പരാമർശിക്കാൻ "പോയിന്റർ" ഉപയോഗിക്കുമ്പോൾ, ഒരു മാജിക് കുക്കി അല്ലെങ്കിൽ കേപ്പബിലിറ്റിയിൽ നിന്ന് വ്യത്യസ്തമായി, ഒരു മെമ്മറി വിലാസമായി പോയിന്ററിനെ (ഗണിതപരമായി പോയിന്റർ എന്നത് അരിത്മെറ്റിക് വഴിയാണ്) കൈകാര്യം ചെയ്യാൻ ഇന്റർഫേസ് വ്യക്തമായി അനുവദിക്കുന്ന ഡാറ്റാ ഘടനകൾക്ക് ഇത് ബാധകമാണ്.

അവലംബം തിരുത്തുക

  1. Donald Knuth (1974). "Structured Programming with go to Statements" (PDF). Computing Surveys. 6 (5): 261–301. CiteSeerX 10.1.1.103.6084. doi:10.1145/356635.356640. S2CID 207630080. Archived from the original (PDF) on August 24, 2009.
  2. https://www.sparknotes.com/cs/pointers/whatarepointers/section1/
"https://ml.wikipedia.org/w/index.php?title=പോയിന്റർ&oldid=3896290" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്