അഡ (പ്രോഗ്രാമിങ് ഭാഷ)

പാസ്കലിന്റെയും മറ്റ് ഭാഷകളിലുമൊക്കെ വിന്യസിച്ച, ഘടനാപരമായ, സ്റ്റാറ്റിക്കലി ടൈപ്പ് ചെയ്ത, ഇംപെറേറ്റീവ്, ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് ഹൈ-ലെവൽ കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷയാണ് **അഡ**. ഡിസൈൻ-ബൈ-കോൺട്രാക്റ്റിന്, ശക്തമായ ടൈപ്പിംഗ്, സ്പഷ്ടമായ ഒത്തുചേർക്കൽ, ടാസ്ക്കുകൾ, സിൻക്രൊണസ് മെസ്സേജ് പാസിംഗ്, പരിരക്ഷിത വസ്തുക്കൾ, നോൺ ഡിറ്റർറിനിസം എന്നിവയ്ക്ക് ബിൽറ്റ്-ഇൻ ഭാഷ പിന്തുണയുണ്ട്. പ്രവർത്തന സമയത്തു് പിശകുകൾ കണ്ടെത്തുന്നതിനായി  കംപൈലർ ഉപയോഗിച്ചു് കോഡ് സുരക്ഷയും പരിപാലനവും മെച്ചപ്പെടുത്തുന്നു. അഡ അന്താരാഷ്ട്ര നിലവാരത്തിലുള്ളതാണ്; നിലവിലുള്ള പതിപ്പ് (അഡ 2012 എന്ന് അറിയപ്പെടുന്നു) ISO / IEC 8652: 2012 നിർവ്വചിച്ചിരിക്കുന്നു.

സി.ഐ.ഡി. ഹണിവെൽ ബെല്ലിലെ ഫ്രഞ്ച് കമ്പ്യൂട്ടർ ശാസ്ത്രജ്ഞൻ ജീൻ ഇക്ബയ്യയുടെ നേതൃത്വത്തിലുള്ള ഒരു സംഘമാണ് അഡ ആദ്യം രൂപകൽപ്പന ചെയ്തത്, യുഎസ് ഡിപ്പാർട്ട്മെന്റ് ഓഫ് ഡിഫെൻസ് (DoD) കരാർ പ്രകാരം 1977 മുതൽ 1983 വരെ  ഡോഡ് ഉപയോഗിച്ചിരുന്ന 450 ലധികം പ്രോഗ്രാമിങ് ഭാഷകൾ നിരാകരിച്ചിരുന്നു. ആദ്യത്തെ കമ്പ്യൂട്ടർ പ്രോഗ്രാമറായ അഡ ലവ്‌ലേസിന്റെ(1815 -1852)പേരാണ് ഈ പ്രോഗ്രാമിംഗ് ഭാഷക്ക് നൽകയിരിക്കുന്നത്.
## സവിശേഷതകൾ
അഡ യഥാർത്ഥത്തിൽ ലക്ഷ്യമിട്ടത് എംബെഡഡ്, തത്സമയ സിസ്റ്റങ്ങളിലുള്ളതുമായിരുന്നു. അഡ 95 റിവിഷൻ, എസ്.ടക്കർ ടഫ്റ്റ് ഓഫ് ഇന്റേമെട്രിക്സ് 1992 നും 1995 നും ഇടയ്ക്ക് രൂപപ്പെടുത്തി, സിസ്റ്റങ്ങളുടെ മെച്ചപ്പെട്ട പിന്തുണ, സംഖ്യകൾ, സാമ്പത്തികം, ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിങ് (OOP)എന്നിവ ഇതിന്റെ പ്രത്യേകതയാണ്.

അഡയുടെ സവിശേഷതകൾ ഇവയാണ്: ശക്തമായ ടൈപ്പിങ്, മോഡുലറിറ്റി മെക്കാനിസങ്ങൾ (പാക്കേജുകൾ), റൺ-ടൈം പരിശോധന, സമാന്തര പ്രോസസ്സിംഗ് (ടാസ്കുകൾ, സിൻക്രൊണസ് മെസ്സേജ് പാസിംഗ്, പരിരക്ഷിത വസ്തുക്കൾ, നോൺഡെറ്റമിനിസ്റ്റ് സെലക്ട് സ്റ്റേറ്റ്മെന്റുകൾ), എക്സെപക്ഷൻ കൈകാര്യം ചെയ്യൽ, ജനറിക്സ് മുതലായവ.

അഡയുടെ വാക്യഘടന അടിസ്ഥാന പ്രവർത്തനങ്ങൾ നടത്താനുള്ള വഴികൾ തിരഞ്ഞെടുപ്പിനെ ലളിതമാക്കുന്നു, കൂടാതെ ഇംഗ്ലീഷ് കീവേഡുകളെ ("or else" and "and then") ചിഹ്നങ്ങളിലേക്ക് ("||", "&&" പോലുള്ളവ).അഡാ അടിസ്ഥാന ഗണിത ചിഹ്നങ്ങളായ "+", "-", "*", "/" എന്നിവ ഉപയോഗിക്കുന്നു, പക്ഷേ മറ്റ് ചിഹ്നങ്ങൾ ഉപയോഗിക്കുന്നത് ഒഴിവാക്കുന്നു. കോഡ് ബ്ലോക്കുകൾ "declare", "begin", "end" തുടങ്ങിയ വാക്കുകളാൽ വേർതിരിച്ചിരിക്കുന്നു, അവിടെ "end" (മിക്ക കേസുകളിലും) അത് ക്ലോസസ് ബ്ലോക്കിന്റെ ഐഡന്റിഫയറിനെ പിന്തുടരുന്നു (e.g., if ... end if, loop ... end loop). സോപാധികമായ ബ്ലോക്കുകളുടെ കാര്യത്തിൽ, സി അല്ലെങ്കിൽ ജാവ പോലുള്ള മറ്റ് ഭാഷകളിലെ തെറ്റായ നെസ്റ്റഡ് ഇഫ്-എക്സ്പ്രഷനുമായി ജോടിയാക്കാൻ കഴിയുന്ന ഡാങ്ക്ളിംഗ് എൽസിനെ(dangling else) ഒഴിവാക്കുന്നു.

വളരെ വലിയ സോഫ്റ്റ്വെയർ സിസ്റ്റങ്ങൾ വികസിപ്പിക്കുന്നതിനാണ് അഡ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. അഡാ പാക്കേജുകൾ പ്രത്യേകം കംപൈൽ ചെയ്യാം. സ്ഥിരത പരിശോധിക്കുന്നതിനായി നടപ്പാക്കാതെ തന്നെ അഡാ പാക്കേജ് സവിശേഷതകളും (പാക്കേജ് ഇന്റർഫേസ്) പ്രത്യേകം കംപൈൽ ചെയ്യാൻ കഴിയും. നടപ്പാക്കൽ ആരംഭിക്കുന്നതിന് മുമ്പ്, ഡിസൈൻ ഘട്ടത്തിൽ തന്നെ പ്രശ്നങ്ങൾ കണ്ടെത്തുന്നത് ഇത് സാധ്യമാക്കുന്നു.

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

## അവലംബം