സ്ടോങ്ങ് ആൻഡ് വീക്ക് ടൈപ്പിംഗ്

കമ്പ്യൂട്ടർ പ്രോഗ്രാമിംഗിൽ, ഭാഷയുടെ ടൈപ്പ് സിസ്റ്റത്തെ സ്ടോങ്ങ്ലി ടൈപ്പ്ഡ്(strongly typed) ആണോ അല്ലെങ്കിൽ വീക്കിലി ടൈപ്പ്ഡ് ആണോ (ലൂസ്ലിലി ടൈപ്പ്ഡ്(loosely typed)) എന്ന് പ്രോഗ്രാമിംഗ് ഭാഷകളെ പലപ്പോഴും കോളോക്കലായി തരംതിരിക്കുന്നു. എന്നിരുന്നാലും, പദങ്ങൾ എന്താണ് അർത്ഥമാക്കുന്നത് എന്നതിന് കൃത്യമായ സാങ്കേതിക നിർവചനം ഇല്ല, കൂടാതെ പദങ്ങളുടെ അർത്ഥത്തെക്കുറിച്ചും മുഖ്യധാരാ പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ ടൈപ്പ് സിസ്റ്റങ്ങളുടെ "സ്ട്രങ്ത്(strength)" നെക്കുറിച്ചും, റിലേറ്റീവ് റാങ്കിംഗുകളെക്കുറിച്ചും വിവിധ ഓതേഴ്സിന്(Authors) വയോജിപ്പുണ്ട്. എന്നിരുന്നാലും, ചലനാത്മകമായി ടൈപ്പുചെയ്‌ത ഭാഷകളും (റൺ സമയത്ത് ടൈപ്പ് ചെക്കിംഗ് സംഭവിക്കുന്നിടത്ത്) ശക്തമായി ടൈപ്പുചെയ്യാനാകും. ഈ നിയമങ്ങളിൽ ഭൂരിഭാഗവും വേരിയബിൾ അസൈൻമെന്റ്, റിട്ടേൺ മൂല്യങ്ങൾ, ഫംഗ്ഷൻ കോളിംഗ് എന്നിവയെ ബാധിക്കുന്നു. മറുവശത്ത്, ദുർബലമായി ടൈപ്പുചെയ്ത ഭാഷയ്ക്ക് അയഞ്ഞ ടൈപ്പിംഗ് നിയമങ്ങളുണ്ട്, മാത്രമല്ല പ്രവചനാതീതമായ ഫലങ്ങൾ ലഭിച്ചേക്കാം അല്ലെങ്കിൽ റൺടൈമിൽ വ്യക്തമായ തരം പരിവർത്തനം നടത്താം. [1]ലേറ്റന്റ് ടൈപ്പിംഗ് ആണ് വ്യത്യസ്തവും എന്നാൽ ബന്ധപ്പെട്ടതുമായ ഒരു ആശയം.

ചരിത്രം

തിരുത്തുക

1974 ൽ, ലിസ്‌കോവും സില്ലെസും ശക്തമായി ടൈപ്പുചെയ്ത ഒരു ഭാഷയെ നിർവചിച്ചു, അതിൽ "ഒരു വസ്തു ഒരു കോളിംഗ് ഫംഗ്ഷനിൽ നിന്ന് വിളിക്കപ്പെടുന്ന ഫംഗ്ഷനിലേക്ക് കൈമാറുമ്പോൾ, അതിന്റെ തരം വിളിക്കപ്പെടുന്ന ഫംഗ്ഷനുമായി പൊരുത്തപ്പെടണം." [2]1977 ൽ ജാക്സൺ എഴുതി, "ശക്തമായി ടൈപ്പുചെയ്ത ഭാഷയിൽ ഓരോ ഡാറ്റാ ഏരിയയ്ക്കും വ്യത്യസ്തമായ തരം ഉണ്ടാകും, ഓരോ പ്രക്രിയയും അതിന്റെ ആശയവിനിമയ ആവശ്യകതകൾ ഈ ടൈപ്പിൽ വ്യക്തമാക്കും."[3]

"സ്ടോങ്ങ്" അല്ലെങ്കിൽ "‌വീക്ക്" എന്നതിനുള്ള നിർവചനങ്ങൾ

തിരുത്തുക

വ്യത്യസ്ത ഭാഷാ രൂപകൽപ്പന തീരുമാനങ്ങളെ "ശക്തമായ" അല്ലെങ്കിൽ "ദുർബലമായ" ടൈപ്പിംഗിന്റെ തെളിവായി പരാമർശിക്കുന്നു. വാസ്തവത്തിൽ, ടൈപ്പ് സുരക്ഷ, മെമ്മറി സുരക്ഷ, സ്റ്റാറ്റിക് ടൈപ്പ് ചെക്കിംഗ് അല്ലെങ്കിൽ ഡൈനാമിക് ടൈപ്പ് ചെക്കിംഗ് എന്നിവയുടെ സാന്നിധ്യം അല്ലെങ്കിൽ അഭാവം ഇവയിൽ പലതും കൂടുതൽ കൃത്യമായി മനസ്സിലാക്കുന്നു.

"ശക്തമായ ടൈപ്പിംഗ്" എന്നത് സാധാരണയായി കോഡിന്റെ മാറ്റങ്ങളെ പിടിച്ചെടുക്കുന്നതിനും അതിന്റെ കൃത്യത ഉറപ്പുവരുത്തുന്നതിനും പ്രോഗ്രാമിംഗ് ഭാഷാ തരം ഉപയോഗിക്കുന്നതിനെ സൂചിപ്പിക്കുന്നു, മാത്രമല്ല ചില ക്ലാസ് പ്രോഗ്രാമിംഗ് പിശകുകൾ തീർച്ചയായും ഒഴിവാക്കുകയും ചെയ്യുന്നു. ഈ ലക്ഷ്യങ്ങൾ കൈവരിക്കുന്നതിന് നിരവധി "ശക്തമായ ടൈപ്പിംഗ്" വിഭാഗങ്ങൾ ഉപയോഗിക്കുന്നു.

  1. "CS1130. Transition to OO programming. – Spring 2012 --self-paced version". Cornell University, Department of Computer Science. 2005. Archived from the original on 2015-11-23. Retrieved 2015-11-23.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  2. Liskov, B; Zilles, S (1974). "Programming with abstract data types". ACM SIGPLAN Notices. 9 (4): 50–59. CiteSeerX 10.1.1.136.3043. doi:10.1145/942572.807045.
  3. Jackson, K. (1977). Parallel processing and modular software construction. Design and Implementation of Programming Languages. Lecture Notes in Computer Science. Vol. 54. pp. 436–443. doi:10.1007/BFb0021435. ISBN 3-540-08360-X.[പ്രവർത്തിക്കാത്ത കണ്ണി]