ടൈപ്പ് സിസ്റ്റം
കമ്പ്യൂട്ടർ പ്രോഗ്രാമിംഗിൽ, ഓരോ "പദത്തിനും" (ഒരു വാക്ക്, ശൈലി അല്ലെങ്കിൽ മറ്റ് ചിഹ്നങ്ങളുടെ കൂട്ടം) പുറമെ ടൈപ്പ് (ഉദാഹരണത്തിന്, പൂർണ്ണസംഖ്യ(integer), ഫ്ലോട്ടിങ്ങ് പോയിന്റ്, സ്ട്രിംഗ്) എന്ന് വിളിക്കുന്ന ഒരു പ്രോപ്പർട്ടി അസൈൻ ചെയ്യുന്നതിന് വേണ്ടി ഒരു കൂട്ടം നിയമങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു ലോജിക്കൽ സിസ്റ്റമാണ് "ടൈപ്പ് സിസ്റ്റം". സാധാരണയായി പദങ്ങൾ ഒരു കമ്പ്യൂട്ടർ പ്രോഗ്രാമിന്റെ വിവിധ നിർമ്മിതികളാണ്, അതായത് വേരിയബിളുകൾ, എക്സ്പ്രഷനുകൾ, ഫംഗ്ഷനുകൾ അല്ലെങ്കിൽ മൊഡ്യൂളുകൾ മുതലായവ.[1]ഒരു ടൈപ്പ് സിസ്റ്റം ഒരു ടേമിൽ ചെയ്യാവുന്ന പ്രവർത്തനങ്ങൾ നിർദ്ദേശിക്കുന്നു. വേരിയബിളുകൾക്കായി, ടൈപ്പ് സിസ്റ്റം ആ പദത്തിന്റെ അനുവദനീയമായ മൂല്യങ്ങൾ നിർണ്ണയിക്കുന്നു. ആൾജിബ്രോയിക് ഡാറ്റാ ടൈപ്പുകൾ, ഡാറ്റാ സ്ട്രക്ചറുകൾ അല്ലെങ്കിൽ മറ്റ് കമ്പോണന്റുകൾ (ഉദാ: "സ്ട്രിംഗ്", "അറേ ഓഫ് ഫ്ലോട്ട്", "ഫംഗ്ഷൻ റിട്ടേണിംഗ് ബൂളിയൻ") എന്നിവയ്ക്കായി പ്രോഗ്രാമർ മറ്റുതരത്തിൽ ഉപയോഗിക്കുന്ന ഇമ്പ്ലിസിറ്റ് കാറ്റഗറീസ് ടൈപ്പ് സിസ്റ്റങ്ങൾ ഔപചാരികമാക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു.
ടൈപ്പ് സിസ്റ്റങ്ങൾ പലപ്പോഴും പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ ഭാഗമായി വ്യക്തമാക്കുകയും ഇന്റർപ്രെറ്ററുകളിലും കംപൈലറുകളിലും നിർമ്മിക്കപ്പെടുകയും ചെയ്യുന്നു, എന്നിരുന്നാലും ഭാഷയുടെ യഥാർത്ഥ ടൈപ്പ് സിന്റാക്സും സെമാന്റിക്സും ഉപയോഗിച്ച് അധിക പരിശോധനകൾ നടത്തുന്നതിന് വേണ്ടി ഉപയോഗിക്കുന്ന ഓപ്ഷണൽ ടൂളുകൾ ഉപയോഗിച്ച് ഒരു ഭാഷയുടെ ടൈപ്പ് സിസ്റ്റം വിപുലീകരിക്കാൻ കഴിയും. ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയിലെ ഒരു ടൈപ്പ് സിസ്റ്റത്തിന്റെ പ്രധാന ലക്ഷ്യം ടൈപ്പ് പിശകുകൾ കാരണം കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളിലെ ബഗുകൾക്കുള്ള സാധ്യതകൾ കുറയ്ക്കുക എന്നതാണ്.[2] ചോദ്യത്തിൽ നൽകിയിരിക്കുന്ന ടൈപ്പ് സിസ്റ്റം ടൈപ്പ് എറർ എന്താണെന്ന് നിർണ്ണയിക്കുന്നു, എന്നാൽ പൊതുവേ, ആ പ്രവർത്തനത്തിന് അർത്ഥമില്ലാത്ത മൂല്യങ്ങൾ ഉപയോഗിച്ച് ഒരു നിശ്ചിത മൂല്യം പ്രതീക്ഷിക്കുന്ന പ്രവർത്തനങ്ങൾ തടയുക എന്നതാണ് ലക്ഷ്യം (വാലിഡിറ്റി എറേഴ്സ്). ഒരു കമ്പ്യൂട്ടർ പ്രോഗ്രാമിന്റെ വിവിധ ഭാഗങ്ങൾക്കിടയിലുള്ള ഇന്റർഫേസുകൾ നിർവചിക്കാൻ ടൈപ്പ് സിസ്റ്റങ്ങൾ അനുവദിക്കുന്നു, തുടർന്ന് വരുന്ന ഭാഗങ്ങൾ സ്ഥിരമായ രീതിയിൽ ബന്ധിപ്പിച്ചിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുന്നു. ഈ പരിശോധന സ്ഥിരമായി (കംപൈൽ സമയത്ത്), ചലനാത്മകമായി (റൺ ടൈമിൽ) അല്ലെങ്കിൽ ഇവ രണ്ടിന്റെയും സംയോജനമായോ സംഭവിക്കാം. ബിസിനസ്സ് നിയമങ്ങൾ പ്രകടിപ്പിക്കുക, ചില കംപൈലർ ഒപ്റ്റിമൈസേഷനുകൾ പ്രാപ്തമാക്കുക, ഒന്നിലധികം ഡിസ്പാച്ച് അനുവദിക്കുക, ഡോക്യുമെന്റേഷൻ ഒരു ഫോം നൽകുക എന്നിങ്ങനെയുള്ള മറ്റ് ഉദ്ദേശ്യങ്ങളും ടൈപ്പ് സിസ്റ്റങ്ങൾക്ക് ഉണ്ട്.
ഉപയോഗ അവലോകനം
ഒരു ലളിതമായ ടൈപ്പുകളുള്ള സംവിധാനത്തിന്റെ ഉദാഹരണമാണ് സി ഭാഷ. ഒരു സി പ്രോഗ്രാമിന്റെ ഭാഗങ്ങൾ ഫങ്ഷൻ നിർവചനങ്ങൾ ആണ്. ഒരു ഫങ്ഷനുള്ളിൽ മറ്റൊരു ഫങ്ഷൻ വർക്ക് ചെയ്യുന്നു. ഒരു ഫങ്ഷന്റെ ഇന്റർഫേസ് ഫംങ്ഷന്റെ പേര്, ഫങ്ഷന്റെ കോഡ് നൽകിയിരിക്കുന്ന പരാമീറ്റുകളുടെ ഒരു ലിസ്റ്റ് എന്നിവ നൽകുന്നു. ഒരു ഇൻവോക്കിംഗ് ഫംഗ്ഷന്റെ കോഡ് റിക്വസ്റ്റ് നെയിം, അതിലേക്ക് കൈമാറാൻ മൂല്യങ്ങൾ ഹോൾഡ് ചെയ്തിരിക്കുന്ന വേരിയബിളുകളുടെ പേരുകൾക്കൊപ്പം വെളിപ്പെടുത്തുന്നു.എക്സിക്യൂഷൻ സമയത്ത്, മൂല്യങ്ങൾ താൽക്കാലിക സ്റ്റോറേജിൽ സ്ഥാപിക്കുന്നു, തുടർന്ന് എക്സിക്യൂഷൻ റിക്വസ്റ്റ് ചെയ്ത ഫംഗ്ഷന്റെ കോഡിലേക്ക് പോകുന്നു. റിക്വസ്റ്റ് ചെയ്ത ഫംഗ്ഷന്റെ കോഡ് മൂല്യങ്ങൾ ആക്സസ് ചെയ്യുകയും അവ ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ഫംഗ്ഷനുള്ളിലെ നിർദ്ദേശങ്ങൾ ഒരു പൂർണ്ണസംഖ്യയുടെ(integer) രൂപത്തിൽ മൂല്യം സ്വീകരിക്കുന്നു എന്ന അനുമാനത്തിലാണ് എഴുതിയിരിക്കുന്നതെങ്കിൽ, കോളിംഗ് കോഡ് ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് മൂല്യം പാസ്സാക്കിയാൽ, തെറ്റായ റിസൾട്ട് റിക്വസ്റ്റ് ചെയ്തതായി ഫംഗ്ഷൻ കണക്കാക്കും. സി കംപൈലർ ഫംഗ്ഷൻ ഡെഫനിഷൻ കൊണ്ട് ഡിക്ലയർ ചെയ്തിരിക്കുന്ന പരാമീറ്റർ ടൈപ്പുകൾക്കെതിരെ വിളിക്കുമ്പോൾ ഒരു ഫംഗ്ഷനിലേക്ക് കൈമാറുന്ന ആർഗ്യുമെന്റുകളുടെ ടൈപ്പുകൾ എതെന്ന് പരിശോധിക്കുന്നു. ടൈപ്പുകൾ പൊരുത്തപ്പെടുന്നില്ലെങ്കിൽ, കംപൈലർ ഒരു കംപൈൽ-ടൈം എറർ അല്ലെങ്കിൽ മുന്നറിയിപ്പ് നൽകുന്നു.[3]