എനിക്ക് എല്ലാം അറിയണം. നരകത്തിൻ്റെ ഭാഷ. നരകത്തിൻ്റെ ഭാഷ - ഇരുപത് വർഷങ്ങൾക്ക് ശേഷം നരകത്തിൻ്റെ പ്രോഗ്രാമിംഗ് ഭാഷ - അതിൻ്റെ ഉത്ഭവം

വിഷയത്തെക്കുറിച്ചുള്ള സംഗ്രഹം:

അഡാ



പ്ലാൻ:

    ആമുഖം
  • 1 ഭാഷയുടെ സവിശേഷതകൾ
  • 2 "ഹലോ, വേൾഡ്!" അഡയിൽ
  • 3 ചരിത്രം
  • 4 സോവിയറ്റ് യൂണിയനിലും റഷ്യയിലും നരകം
  • 5 വിമർശനം
  • 6 വിതരണം, സാധ്യതകൾ
  • 7 അഡയിൽ എഴുതിയിരിക്കുന്ന ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ
    • 7.1 ഉൾച്ചേർത്ത സംവിധാനങ്ങൾ
    • 7.2 വികസനത്തിൽ സിസ്റ്റങ്ങൾ
    • 7.3 ഇപ്പോൾ നിലവിലുള്ള സംവിധാനങ്ങൾ ഇല്ല
  • 8 നരകത്തിൻ്റെ കംപൈലർമാർ
  • 9 ഉത്ഭവിച്ച ഭാഷകൾ
  • 10 രസകരമായ വസ്തുതകൾ
  • കുറിപ്പുകൾ
    സാഹിത്യം

ആമുഖം

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


1. ഭാഷയുടെ സവിശേഷതകൾ

1983-ൽ സ്റ്റാൻഡേർഡ് ചെയ്ത അതിൻ്റെ യഥാർത്ഥ രൂപത്തിൽ, ഉയർന്ന തലത്തിലുള്ള പാരലൽ പ്രോസസ് പ്രോഗ്രാമിംഗ് കഴിവുകൾ അടങ്ങിയ ഒരു ഘടനാപരമായ, മോഡുലാർ പ്രോഗ്രാമിംഗ് ഭാഷയാണ് അഡ. അഡയുടെ വാക്യഘടന അൽഗോൾ അല്ലെങ്കിൽ പാസ്കൽ പോലുള്ള ഭാഷകളിൽ നിന്ന് പാരമ്പര്യമായി ലഭിച്ചതാണ്, എന്നാൽ വിപുലീകരിച്ചു, കൂടാതെ കൂടുതൽ കർശനവും യുക്തിസഹവുമാക്കി. Ada ശക്തമായി ടൈപ്പ് ചെയ്‌ത ഭാഷയാണ്, തരങ്ങളില്ലാത്ത ഒബ്‌ജക്‌റ്റുകളുമായുള്ള പ്രവർത്തനത്തെ ഇത് ഒഴിവാക്കുന്നു, കൂടാതെ സ്വയമേവയുള്ള തരം പരിവർത്തനങ്ങൾ ഏറ്റവും ചുരുങ്ങിയത് ആയി ചുരുക്കിയിരിക്കുന്നു. 1995 സ്റ്റാൻഡേർഡിൽ, അടിസ്ഥാന ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗ് ടൂളുകൾ ഭാഷയിലേക്ക് ചേർത്തു, 2007 സ്റ്റാൻഡേർഡിൽ, ഈ ടൂളുകൾ സപ്ലിമെൻ്റ് ചെയ്തു, അതിനാൽ ആധുനിക അഡ ഒരു ഒബ്ജക്റ്റ് ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗ് ഭാഷയാണ്.

വാക്യഘടനയുടെ സവിശേഷതകളിൽ ഇവ ഉൾപ്പെടുന്നു:

  • ഭാഷ കേസ്-ഇൻസെൻസിറ്റീവ് ആണ്.
  • പ്രോഗ്രാമുകൾ മോഡുലാർ ആണ്, മൊഡ്യൂളുകൾക്കിടയിലുള്ള വിവരണങ്ങളുടെ ഇറക്കുമതി-കയറ്റുമതി നിയന്ത്രിക്കുന്നതിനുള്ള സംവിധാനം രണ്ട് വ്യത്യസ്ത നിർദ്ദേശങ്ങൾ ഉൾക്കൊള്ളുന്നു: ഒന്ന് മറ്റൊരു മൊഡ്യൂളുമായി ബന്ധിപ്പിക്കുന്നതിന് (കൂടെ), മറ്റൊന്ന് അതിൻ്റെ വിവരണങ്ങൾ ഇറക്കുമതി ചെയ്യുന്നതിന് (ഉപയോഗം). ഇറക്കുമതി ചെയ്യുമ്പോൾ ഒരു മൊഡ്യൂളിൻ്റെ പേരുമാറ്റാനും സാധിക്കും (പേരുമാറ്റുക) - പാക്കേജ് നിശ്ചയിക്കുന്നതിന് കൂടുതൽ പ്രോഗ്രാമർ-ഫ്രണ്ട്ലി ഐഡൻ്റിഫയറുകൾ ഉപയോഗിക്കാൻ ഈ ഓപ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു.
  • പാക്കേജുകളിൽ (മൊഡ്യൂളുകളുടെ തരങ്ങളിൽ ഒന്ന്) ഒരു തലക്കെട്ടും ഒരു സ്വകാര്യ ഭാഗവും അടങ്ങിയിരിക്കാം - അതിൽ അടങ്ങിയിരിക്കുന്നത് കയറ്റുമതി ചെയ്യപ്പെടുന്നില്ല, മറ്റ് മൊഡ്യൂളുകൾക്ക് ലഭ്യമല്ല.
  • സാമാന്യവൽക്കരിച്ച (ഇഷ്‌ടാനുസൃതമാക്കാവുന്ന) മൊഡ്യൂളുകളുടെ സംവിധാനം പിന്തുണയ്‌ക്കുന്നു: ഒരു പ്രത്യേക തരം വ്യക്തമാക്കാതെ സാമാന്യവൽക്കരിച്ച ഡാറ്റ പ്രോസസ്സിംഗ് അൽഗോരിതം വിവരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന പാക്കേജുകൾ, നടപടിക്രമങ്ങൾ, പ്രവർത്തനങ്ങൾ.
  • പ്രോഗ്രാമർ ബിൽറ്റ്-ഇൻ ചെയ്തതും ജനറേറ്റ് ചെയ്യുന്നതുമായ തരങ്ങളുടെ ഒരു വികസിത സംവിധാനം. പുതിയ തരങ്ങൾ സൃഷ്ടിക്കാൻ നിരവധി മാർഗങ്ങളുണ്ട്, കൂടാതെ ഭാഷ രണ്ട് വ്യത്യസ്ത ആശയങ്ങളെ പിന്തുണയ്ക്കുന്നു: "സബ്ടൈപ്പ്", "ഡെറൈവ്ഡ് തരം". ഒരു തരത്തിൻ്റെയും ഉപവിഭാഗത്തിൻ്റെയും വേരിയബിളുകൾ പൊരുത്തപ്പെടുന്നു, ഒരു തരത്തിൻ്റെ വേരിയബിളുകളും അതിൽ നിന്ന് ഉരുത്തിരിഞ്ഞ തരവും അനുയോജ്യമല്ല.
  • ഒഴിവാക്കൽ കൈകാര്യം ചെയ്യാനുള്ള സൗകര്യങ്ങൾ.
  • നടപടിക്രമങ്ങളും ഫംഗ്ഷനുകളും ആക്സസ് ചെയ്യുന്നതിനുള്ള വികസിപ്പിച്ച മാർഗങ്ങൾ: ഇൻപുട്ട്, ഔട്ട്പുട്ട് പാരാമീറ്ററുകൾ പിന്തുണയ്ക്കുന്നു, ഔപചാരിക പേരുകൾ സൂചിപ്പിക്കുന്ന ഏത് ക്രമത്തിലും യഥാർത്ഥ പാരാമീറ്ററുകൾ കൈമാറുന്നു, സ്ഥിര മൂല്യങ്ങളുള്ള പാരാമീറ്ററുകൾ.
  • നടപടിക്രമങ്ങൾ, ഫംഗ്ഷനുകൾ, ഓപ്പറേറ്റർമാർ എന്നിവ പുനർനിർവചിക്കുന്നത് പിന്തുണയ്ക്കുന്നു - ഒരേ പേരിൽ ഒരു നടപടിക്രമം, ഫംഗ്ഷൻ അല്ലെങ്കിൽ ഓപ്പറേറ്റർ എന്നിവയുടെ നിരവധി വകഭേദങ്ങൾ സൃഷ്ടിക്കുന്നു, എന്നാൽ വ്യത്യസ്ത ഒപ്പുകൾ (തരങ്ങളും പാരാമീറ്ററുകളുടെ എണ്ണവും).
  • ഭാഷയിൽ നിർമ്മിച്ച സമാന്തര പ്രോഗ്രാമിംഗ് പിന്തുണാ ഘടനകൾ: "ടാസ്ക്" (ഒരു സമാന്തരമായി നടപ്പിലാക്കിയ പ്രോഗ്രാം ശകലം), "ടാസ്ക് ഇൻപുട്ട്" (സമാന്തരമായി പ്രവർത്തിക്കുന്ന ടാസ്ക്കുകളുടെ സമന്വയത്തിനും ആശയവിനിമയത്തിനും ഉള്ള ഒരു മാർഗ്ഗം) എന്ന ആശയങ്ങൾ പിന്തുണയ്ക്കുന്നു, "റണ്ടെജ്വസ്" മെക്കാനിസം പിന്തുണയ്ക്കുന്നു ( അവയിലൊന്നിൻ്റെ ഇൻപുട്ടിലൂടെ സമാന്തരമായി പ്രവർത്തിക്കുന്ന ടാസ്‌ക്കുകളുടെ ഇടപെടലിനുള്ള ഒരു പ്രോട്ടോക്കോൾ ), സോപാധികമായ ഇൻ്റർ-ത്രെഡ് ഇൻ്ററാക്ഷൻ സംഘടിപ്പിക്കുന്നതിന് ഒരു SELECT ഓപ്പറേറ്റർ ഉണ്ട് (ചർച്ചയ്‌ക്കുള്ള സന്നദ്ധതയും മറ്റ് ചില വ്യവസ്ഥകളും അനുസരിച്ച് സംവദിക്കേണ്ട ഒരു സമാന്തര ടാസ്‌ക് തിരഞ്ഞെടുക്കൽ) . തത്വത്തിൽ, ഭാഷയിൽ ലഭ്യമായ സമാന്തര പ്രോഗ്രാമിംഗ് ടൂളുകൾ, അധിക ലൈബ്രറികൾ അല്ലെങ്കിൽ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം API-കൾ പോലുള്ള ബാഹ്യ ടൂളുകൾ അവലംബിക്കാതെ, സമാന്തര പ്രോസസ്സിംഗ് ആവശ്യമായ ഒരു വലിയ ക്ലാസ് പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ പര്യാപ്തമാണ്.

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


2. "ഹലോ, വേൾഡ്!" അഡയിൽ

"ഹലോ, വേൾഡ്!" പ്രോഗ്രാമിൻ്റെ നിരവധി പതിപ്പുകൾ വിക്കിബുക്കുകളിൽ കാണാം. Put_Line ലൈബ്രറി ഫംഗ്‌ഷൻ ഉപയോഗിക്കേണ്ടതിൻ്റെ ആവശ്യകതയാണ് വ്യത്യാസങ്ങൾക്ക് കാരണം - ഈ ഭാഷയ്ക്ക് ഈ ഉപയോഗം സംഘടിപ്പിക്കുന്നതിന് മൂന്ന് വ്യത്യസ്ത വഴികളുണ്ട്.

കൂടെ Ada.Text_IO ; നടപടിക്രമം Hello ആണ് Ada.Text_IO ; Put_Line ആരംഭിക്കുക("ഹലോ, വേൾഡ്!" ); അവസാനം ഹലോ;

ഇവിടെ, Put_Line ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നതിന്, അത് ഉൾക്കൊള്ളുന്ന Ada.Text_IO പാക്കേജ് ഉപയോഗ കൺസ്ട്രക്‌റ്റ് ഉപയോഗിച്ച് ഇറക്കുമതി ചെയ്യുന്നു, ഇത് യോഗ്യതയില്ലാതെ ഫംഗ്ഷനെ പേര് ഉപയോഗിച്ച് വിളിക്കുന്നത് സാധ്യമാക്കുന്നു - കോളിലെ ഫംഗ്‌ഷൻ അടങ്ങിയ പാക്കേജിൻ്റെ പേര് വ്യക്തമാക്കുന്നു.


3. ചരിത്രം

യുഎസ് ഡിപ്പാർട്ട്മെൻ്റ് ഓഫ് ഡിഫൻസ് സംഘടിപ്പിക്കുകയും ധനസഹായം നൽകുകയും ചെയ്ത ഒരു അന്താരാഷ്ട്ര മത്സരത്തിൻ്റെ ഭാഗമായാണ് ഭാഷയുടെ വികസനം നടത്തിയത്. സൈനിക വകുപ്പിൽ നിന്നുള്ള ഓർഡറുകൾക്കായുള്ള പ്രോജക്റ്റുകൾ വികസിപ്പിക്കുന്നതിന്, പ്രധാനമായും സൈനിക ആവശ്യങ്ങൾക്കും വലിയ സൈനിക കമ്പ്യൂട്ടറുകൾക്കും (iAPX 432 പ്രോസസറിനെ അടിസ്ഥാനമാക്കിയുള്ള എംബഡഡ് സിസ്റ്റങ്ങളുടെ വികസനത്തിന്) ഒരു പ്രോഗ്രാമിംഗ് ഭാഷ നേടുക എന്നതായിരുന്നു വികസനത്തിൻ്റെ ലക്ഷ്യം. ഇൻ്റൽ). ഇത്തരത്തിലുള്ള സിസ്റ്റങ്ങളുടെ ഡെവലപ്പർമാരെ പൂർണ്ണമായും തൃപ്തിപ്പെടുത്തുന്ന ഒരു കൂട്ടം ഭാഷാ ആവശ്യകതകൾ രൂപീകരിച്ചുകൊണ്ട് 1975-ൽ പ്രവർത്തനം ആരംഭിച്ചു. "സ്‌ട്രോ" എന്ന രഹസ്യനാമമുള്ള ആവശ്യകതകളുടെ പ്രാഥമിക ലിസ്റ്റ്, നിരവധി ഓർഗനൈസേഷനുകൾക്കും സ്ഥാപനങ്ങൾക്കും അവലോകനത്തിനായി സമർപ്പിച്ചു, രണ്ട് വർഷത്തിനുള്ളിൽ ക്രമേണ പരിഷ്‌ക്കരിച്ചു, ഒടുവിൽ "സ്റ്റീൽ" എന്ന് വിളിക്കപ്പെടുന്ന അന്തിമ രേഖയായി.

ആവശ്യകതകൾ പൂർത്തിയാക്കിയ ശേഷം, ഒരു വിശകലനം നടത്തി, നിലവിലുള്ള പ്രോഗ്രാമിംഗ് ഭാഷകളൊന്നും ആവശ്യകതകൾ വേണ്ടത്ര തൃപ്തിപ്പെടുത്തുന്നില്ലെന്ന് കാണിക്കുന്നു, അതിനാൽ ഒരു പുതിയ ഭാഷ വികസിപ്പിക്കാൻ തീരുമാനിച്ചു. 1977-ൽ അതിൻ്റെ നിർമ്മാണത്തിനായി ഒരു മത്സരം പ്രഖ്യാപിക്കപ്പെട്ടു: പാസ്കൽ, അൽഗോൾ-68 അല്ലെങ്കിൽ PL/1 എന്നീ മൂന്ന് ഭാഷകളിൽ ഒന്നിനെ അടിസ്ഥാനമാക്കി ഡെവലപ്പർമാരോട്.

മത്സരത്തിന് സമർപ്പിച്ച 15 പ്രോജക്ടുകളിൽ നിന്ന് 4 എണ്ണം തിരഞ്ഞെടുത്തു (എല്ലാം പാസ്കലിനെ അടിസ്ഥാനമാക്കി). ഈ പദ്ധതികൾ കൂടുതൽ വികസനത്തിനായി അയച്ചു. അടുത്ത ഘട്ടത്തിൽ, 4 പ്രോജക്റ്റുകളിൽ നിന്ന് രണ്ടെണ്ണം തിരഞ്ഞെടുത്തു, അതിൽ കൂടുതൽ പരിഷ്ക്കരണത്തിന് ശേഷം ഒന്ന് തിരഞ്ഞെടുത്തു. ഈ ഭാഷയ്ക്ക് "അഡ" എന്ന് പേരിട്ടു - ഫ്രഞ്ചുകാരനായ ജീൻ ഇഷ്ബിയയുടെ നേതൃത്വത്തിലുള്ള സംഘം വികസിപ്പിച്ച കവി ജെ. ബൈറണിൻ്റെ മകളായ അഗസ്റ്റ അഡ കിംഗ് ലവ്ലേസിൻ്റെ (1815-1852) ബഹുമാനാർത്ഥം ഈ ഭാഷയ്ക്ക് ഒരു പേര് നൽകി. ബാബേജിൻ്റെ കമ്പ്യൂട്ടറിനായുള്ള പ്രോഗ്രാമുകൾ ലോകത്തിലെ ആദ്യത്തെ പ്രോഗ്രാമറായി കണക്കാക്കപ്പെടുന്നു.

1983-ൽ, ഭാഷ ഔദ്യോഗികമായി ANSI അംഗീകരിച്ചു. ANSI/MIL-STD-1815-A-1983 എന്ന ഭാഷാ നിലവാരം 1983 ഫെബ്രുവരി 17-ന് അംഗീകരിച്ചു. യുഎസ് ഡിപ്പാർട്ട്‌മെൻ്റ് ഓഫ് ഡിഫൻസ് "അഡ" എന്ന പേര് രജിസ്റ്റർ ചെയ്ത വ്യാപാരമുദ്രയാക്കി, മാനദണ്ഡങ്ങൾ പാലിക്കുന്നതിനുള്ള ഔദ്യോഗിക പരിശോധനാ നടപടിക്രമം പാസാകാത്ത ഭാഷാ വിവർത്തകരെ പുറത്തിറക്കുന്നത് നിരോധിച്ചു. പരിശോധനയ്ക്ക് കീഴിലുള്ള കംപൈലറിലൂടെ ഒരു വലിയ സംഖ്യ (1000-ലധികം) ടെസ്റ്റ് പ്രോഗ്രാമുകൾ (ACVC എന്ന് വിളിക്കപ്പെടുന്നവ) പ്രവർത്തിപ്പിക്കുന്നതായിരുന്നു നടപടിക്രമം, അവയിൽ ഓരോന്നിനും ടെസ്റ്റ് ഫലം വ്യക്തമായി നിർവചിക്കപ്പെട്ടിട്ടുണ്ട്: ഒന്നുകിൽ വിജയകരമായ കംപൈലേഷൻ അല്ലെങ്കിൽ വളരെ നിർദ്ദിഷ്ട ഉൽപ്പാദനം. പിശക് സന്ദേശം. "എല്ലാം അല്ലെങ്കിൽ ഒന്നുമില്ല" എന്ന തത്വമനുസരിച്ചാണ് പരിശോധന നടത്തിയത് - കുറഞ്ഞത് ഒരു ടെസ്റ്റ് ഉദാഹരണമെങ്കിലും പ്രോസസ്സ് ചെയ്യുന്നതിൽ ഒരു പിശക് ഉണ്ടെങ്കിൽ, കംപൈലർ ടെസ്റ്റിൽ പരാജയപ്പെട്ടതായി കണക്കാക്കുന്നു, കൂടാതെ ഹാർഡ്‌വെയർ, സോഫ്റ്റ്വെയർ പ്ലാറ്റ്‌ഫോമിൽ മാത്രമേ പരിശോധന സാധുതയുള്ളൂ. അതു നടപ്പാക്കപ്പെട്ടു. അങ്ങനെ അഡയുടെ ഭാഷയുടെ "പതിപ്പുകൾ" അല്ലെങ്കിൽ "വ്യവഹാരങ്ങൾ" രൂപപ്പെടാനുള്ള സാധ്യത മുളയിൽ നശിപ്പിച്ചു.

1987-ൽ, അഡാ ഭാഷയെ ഐഎസ്ഒ ഔദ്യോഗികമായി സ്റ്റാൻഡേർഡ് ചെയ്തു. ആ നിമിഷം മുതൽ, യുഎസ് പ്രതിരോധ വകുപ്പ് പൊതുജനങ്ങൾക്ക് ഭാഷ ലഭ്യമാക്കി.

1990 ആയപ്പോഴേക്കും, അഡ ഭാഷാ നിലവാരം പുലർത്തുന്ന 200 കംപൈലറുകൾ ഇതിനകം ലോകത്തുണ്ടായിരുന്നു.

1995-ൽ, Ada95 എന്നറിയപ്പെടുന്ന ഒരു പുതിയ Ada സ്റ്റാൻഡേർഡ് സ്വീകരിച്ചു. ഒബ്ജക്റ്റ് പ്രോഗ്രാമിംഗ് ടൂളുകൾ ഭാഷയിൽ അവതരിപ്പിച്ചു. കൂടാതെ, മറ്റ് ഭാഷകളിൽ എഴുതിയ പ്രോഗ്രാമുകളുമായി സംവദിക്കുന്നതിന് കൂടുതൽ വികസിപ്പിച്ച ടൂളുകൾ ഉപയോഗിച്ച് ഭാഷ അനുബന്ധമായി നൽകി.

2007 മാർച്ചിൽ, അഡാ സ്റ്റാൻഡേർഡിലെ മാറ്റങ്ങൾ പ്രസിദ്ധീകരിച്ചു. അവർ പ്രധാനമായും ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗിൻ്റെ കഴിവുകളെ സ്പർശിച്ചു: ഇൻ്റർഫേസുകൾ അവതരിപ്പിച്ചു, മിക്ക ഹൈബ്രിഡ് ഭാഷകൾക്കും പൊതുവായുള്ള കോൾ സിൻ്റാക്സ് രീതി സ്വീകരിച്ചു, കൂടാതെ മറ്റ് നിരവധി കൂട്ടിച്ചേർക്കലുകൾ നടത്തി.


4. സോവിയറ്റ് യൂണിയനിലും റഷ്യയിലും അഡ

80 കളിൽ സോവിയറ്റ് യൂണിയനിൽ, സയൻസ് ആൻഡ് ടെക്നോളജി സംബന്ധിച്ച സംസ്ഥാന കമ്മിറ്റിക്ക് കീഴിൽ അഡയുടെ ഭാഷയെക്കുറിച്ചുള്ള ഒരു വർക്കിംഗ് ഗ്രൂപ്പ് സംഘടിപ്പിച്ചു. അഡാ ഭാഷയെക്കുറിച്ചുള്ള എല്ലാ തുറന്ന (അതുപോലെ, കിംവദന്തികൾ അനുസരിച്ച്, രഹസ്യമായി ലഭിച്ച കിംവദന്തികൾ അനുസരിച്ച്) ഡാറ്റയും ഗ്രൂപ്പ് പഠിക്കുകയും സോവിയറ്റ് യൂണിയനിൽ അഡയുടെ വികസനത്തിൻ്റെയും ഉപയോഗത്തിൻ്റെയും സാധ്യതയും സാധ്യതയും അന്വേഷിക്കുകയും ചെയ്തു. ഈ ഗ്രൂപ്പിൻ്റെ പ്രവർത്തനങ്ങൾ 80 കളുടെ അവസാനത്തോടെ സോവിയറ്റ് യൂണിയനിൽ ഉപയോഗിക്കുന്ന മിക്കവാറും എല്ലാ കമ്പ്യൂട്ടറുകൾക്കുമായി അഡാ കമ്പൈലറുകൾ വികസിപ്പിക്കുന്നതിലേക്ക് നയിച്ചു. അഡയുടെ ഭാഷയെക്കുറിച്ചുള്ള നിരവധി പുസ്തകങ്ങൾ റഷ്യൻ ഭാഷയിൽ പ്രസിദ്ധീകരിച്ചു.

മോസ്കോ സ്റ്റേറ്റ് യൂണിവേഴ്സിറ്റി മാനദണ്ഡങ്ങൾ പാലിക്കുന്നതിനായി അഡാ വിവർത്തകരെ പരീക്ഷിക്കുന്നതിനായി സ്വന്തം പാക്കേജുകൾ സൃഷ്ടിക്കാൻ പ്രവർത്തിച്ചു. ലെനിൻഗ്രാഡ് സ്റ്റേറ്റ് യൂണിവേഴ്സിറ്റിയിൽ, അഡ സിസ്റ്റം സൃഷ്ടിക്കുന്നതിന്, അൽഗോൾ -68 നടപ്പിലാക്കുന്നതിനായി മുമ്പ് വികസിപ്പിച്ച പല്ലഡ സിസ്റ്റം ഉപയോഗിച്ചു, അത് അഡയിലേക്ക് മാറ്റി. സിസ്റ്റത്തിൽ ഒരു സംയോജിത വികസന പരിസ്ഥിതി, ഒരു കംപൈലർ, ഒരു ടെക്സ്റ്റ് എഡിറ്റർ, ഒരു ഡീബഗ്ഗർ, ലൈബ്രറികൾ, ഒരു പതിപ്പ് നിയന്ത്രണ സംവിധാനം, ഒരു കമാൻഡ് ഇൻ്റർപ്രെറ്റർ എന്നിവ അടങ്ങിയിരിക്കുന്നു.

സോവിയറ്റ് യൂണിയൻ്റെ തകർച്ചയ്ക്ക് ശേഷം, അഡ വിതരണം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ പ്രായോഗികമായി തടസ്സപ്പെട്ടു. ശരിയാണ്, അഡയിലെ സോഫ്റ്റ്‌വെയർ വികസനത്തിനായി മൂന്ന് പ്രോഗ്രാമുകൾ സ്വീകരിച്ചിട്ടുണ്ട് (പ്രതിരോധ മന്ത്രാലയം, സിവിൽ ഏവിയേഷൻ മന്ത്രാലയം, വിദ്യാഭ്യാസ ശാസ്ത്ര മന്ത്രാലയം എന്നിവയിൽ), എന്നാൽ അവയുടെ വികസനം മന്ദഗതിയിലുള്ളതും ഏകോപിപ്പിക്കാത്തതുമാണ്. തൽഫലമായി, അഡാ ഭാഷ റഷ്യയിൽ വളരെക്കുറച്ചേ അറിയൂ, മിക്ക ആധുനിക റഷ്യൻ പ്രോഗ്രാമർമാരും ഇതിനെ "ചത്ത ഭാഷ" ആയി കണക്കാക്കുന്നു, അതിനെക്കുറിച്ച് ഒന്നും അറിയില്ല. റഷ്യയിലും സിഐഎസിലും വ്യക്തിഗത താൽപ്പര്യക്കാർ അഡ ഉപയോഗിക്കുന്നു. എന്നിരുന്നാലും, വ്യാവസായിക സോഫ്റ്റ്വെയർ വികസനത്തിന് ഭാഷ ഉപയോഗിക്കുന്നു. അഡയിൽ വികസിപ്പിച്ചതും റഷ്യയിൽ പ്രവർത്തിക്കുന്നതുമായ നിരവധി അറിയപ്പെടുന്ന പ്രോജക്റ്റുകൾ ഉണ്ട്. അവർക്കിടയിൽ:

  • RF പ്രതിരോധ മന്ത്രാലയത്തിൻ്റെ ഡോക്യുമെൻ്ററി കമ്മ്യൂണിക്കേഷൻ സ്റ്റേഷൻ. റഷ്യൻ ഫെഡറേഷൻ്റെ പ്രതിരോധ മന്ത്രാലയത്തിൻ്റെ ഡാറ്റ നെറ്റ്‌വർക്കുകളിൽ ഡോക്യുമെൻ്ററി വിവരങ്ങളുടെ കൈമാറ്റം ഉറപ്പാക്കുക എന്നതാണ് പ്രധാന ദൌത്യം. പ്രൊഡക്ഷൻ ഓർഗനൈസേഷൻ "കമ്പ്യൂട്ടർ ടെക്നോളജി ആൻഡ് ഓട്ടോമേഷൻ" (ഹാർഡ്‌വെയർ), നോർത്ത് കോക്കസസ് എയർ ട്രാഫിക് കൺട്രോൾ സെൻ്റർ "സ്ട്രെല" യുടെ ഓഫ്-റോഡ് സെക്ടറിൽ നിന്നുള്ള ഒരു കൂട്ടം പ്രോഗ്രാമർമാരും സംയുക്തമായി സോഫ്റ്റ്‌വെയർ, ഹാർഡ്‌വെയർ സമുച്ചയം വികസിപ്പിച്ചെടുത്തു. കോംപ്ലക്‌സിൻ്റെ സോഫ്‌റ്റ്‌വെയർ GNAT കംപൈലർ ഉപയോഗിച്ച് Ada പ്രോഗ്രാമിംഗ് ഭാഷയിൽ എഴുതിയിരിക്കുന്നു. ഡിസ്ട്രിബ്യൂട്ടഡ് കമ്പ്യൂട്ടിംഗിനുള്ള പിന്തുണ അധിക GLADE ഘടകം നൽകുന്നു.
  • ഒരു റഷ്യൻ ആംഫിബിയസ് വിമാനത്തിനായുള്ള ഒരു കൂട്ടം സ്റ്റാൻഡേർഡ് ഫ്ലൈറ്റ്, നാവിഗേഷൻ, കമ്മ്യൂണിക്കേഷൻസ് ഉപകരണങ്ങൾ Beriev Be-200. യുഎസ്എയിലെ ഫ്ലോറിഡയിലെ അമേരിക്കൻ കമ്പനിയായ അലൈഡ് സിഗ്നലുമായി ചേർന്ന് സുക്കോവ്‌സ്‌കിയിലെ റിസർച്ച് ഇൻസ്റ്റിറ്റ്യൂട്ട് ഓഫ് ഏവിയേഷൻ എക്യുപ്‌മെൻ്റ് ആണ് വികസനം നടത്തിയത്. Intel 80486 പ്ലാറ്റ്‌ഫോമിലെ DDC-I-ൽ നിന്നുള്ള അഡാ-സിസ്റ്റംസ് ഡെവലപ്‌മെൻ്റ് കോംപ്ലക്‌സ് ഉപയോഗിച്ചു.

5. വിമർശനം

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

Ada പോലെ സങ്കീർണ്ണമായ ഒരു ഭാഷ നിരീക്ഷിക്കാനും കൈകാര്യം ചെയ്യാനും കഴിയുമോ എന്ന് Dijkstra സംശയിച്ചു.

Ada ഒരു മാനദണ്ഡം പുറപ്പെടുവിക്കാൻ പോകുകയാണെങ്കിൽ, അത് അവ്യക്തമായി രേഖപ്പെടുത്തണമെന്ന് അത് ആഗ്രഹിക്കുന്നു. കുറഞ്ഞത് രണ്ട് ഗ്രൂപ്പുകളെങ്കിലും ഇതിന് ശ്രമിച്ചിട്ടുണ്ട്; തൽഫലമായി, ഇരുവരും ഔപചാരികമായ 600 പേജുകൾ നിർമ്മിച്ചു. രണ്ട് പ്രമാണങ്ങളും ഒരേ ഭാഷയാണ് നിർവചിക്കുന്നത് എന്ന് ഉറപ്പിച്ച് സ്ഥാപിക്കുക പോലും അസാധ്യമാണെന്ന് ഉറപ്പാക്കാൻ ഇത് ആവശ്യമായതിനേക്കാൾ വളരെ കൂടുതലാണ്. ഈ രണ്ട് പ്രമാണങ്ങളുടെയും വ്യക്തമായ നിയന്ത്രണാതീതതയുടെ തെറ്റ് അവ സമാഹരിച്ച രണ്ട് ഗ്രൂപ്പുകളിലല്ല, അവർ സ്വീകരിച്ച ഔപചാരികതയിലല്ല, മറിച്ച് ഭാഷയിൽ മാത്രമാണ്: ഒരു ഔപചാരിക നിർവചനം നൽകാതെ, അവരുടെ ഡെവലപ്പർമാർക്ക് അവർ നിർദ്ദേശിക്കുന്ന വസ്തുത മറയ്ക്കാൻ കഴിയും. അനിയന്ത്രിതമായ ഒരു രാക്ഷസൻ. Ada പ്രോഗ്രാമിംഗ് പ്രശ്നങ്ങൾ കുറയ്ക്കുകയും ഞങ്ങളുടെ ഡിസൈനുകളുടെ വിശ്വാസ്യത സ്വീകാര്യമായ പരിധികളിലേക്ക് വർദ്ധിപ്പിക്കുകയും ചെയ്യും എന്നത് സൈനിക പശ്ചാത്തലമുള്ള ആളുകൾക്ക് മാത്രം വിശ്വസിക്കാൻ കഴിയുന്ന യക്ഷിക്കഥകളിൽ ഒന്ന് മാത്രമാണ്.

കമ്പ്യൂട്ടർ സയൻസിലെ സയൻസ് ഫിക്ഷനും സയൻ്റിഫിക് റിയാലിറ്റിയും (Edsger W. Dijkstra, EWD952)

"വിശ്വസനീയതയുടെയും സുരക്ഷയുടെയും അടിസ്ഥാന ആവശ്യകതകളേക്കാൾ മണികൾക്കും വിസിലുകൾക്കും മുൻഗണന ലഭിച്ചു" എന്ന് ഹോർ വിലപിക്കുകയും "അഡാ കമ്പൈലറിലെ കണ്ടെത്താനാകാത്ത ബഗ് കാരണം തെറ്റായ വഴിക്ക് പോകുന്ന മിസൈലുകളുടെ അർമാഡ"ക്കെതിരെ മുന്നറിയിപ്പ് നൽകുകയും ചെയ്തു. നിക്ലൗസ് വിർത്ത് കൂടുതൽ സംയമനത്തോടെ, മാത്രമല്ല നിഷേധാത്മകമായും സംസാരിച്ചു. അദ്ദേഹം പറഞ്ഞു: “പ്രോഗ്രാമർക്ക് നേരെ വളരെയധികം എറിയപ്പെടുന്നു. അഡയുടെ മൂന്നിലൊന്ന് പഠിച്ച ശേഷം നിങ്ങൾക്ക് സാധാരണ ജോലി ചെയ്യാൻ കഴിയുമെന്ന് ഞാൻ കരുതുന്നില്ല. ഭാഷയുടെ എല്ലാ വിശദാംശങ്ങളും നിങ്ങൾ കൈകാര്യം ചെയ്യുന്നില്ലെങ്കിൽ, ഭാവിയിൽ നിങ്ങൾ അവയിൽ ഇടറിവീഴാനിടയുണ്ട്, ഇത് അസുഖകരമായ പ്രത്യാഘാതങ്ങൾക്ക് ഇടയാക്കും. അഡയുടെ ഡെവലപ്‌മെൻ്റ് ടീം ലീഡറായ ജീൻ ഇഷ്ബിയ, വിർട്ടിനോടുള്ള "ബഹുമാനവും ആദരവും" പ്രകടിപ്പിക്കുന്നതിനിടയിൽ, വിയോജിച്ചു, "സങ്കീർണ്ണമായ പ്രശ്നങ്ങൾക്കുള്ള ലളിതമായ പരിഹാരങ്ങളിൽ വിർത്ത് വിശ്വസിക്കുന്നു. അത്തരം അത്ഭുതങ്ങളിൽ ഞാൻ വിശ്വസിക്കുന്നില്ല. സങ്കീർണ്ണമായ പ്രശ്നങ്ങൾക്ക് സങ്കീർണ്ണമായ പരിഹാരം ആവശ്യമാണ്. ”

കംപൈലർ ഭാഷാ നിലവാരവുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് പരിശോധനയിലൂടെ പരിശോധിക്കുന്നതിനുള്ള നടപടിക്രമവും സംശയങ്ങൾ ഉയർത്തുന്നു. ഒരു പൊതുകാര്യമെന്ന നിലയിൽ, പരിശോധനയ്ക്ക് പൊരുത്തക്കേടുകൾ കണ്ടെത്താനാകുമെന്ന് വ്യക്തമാണ്, പക്ഷേ ശരിയാണെന്ന് ഉറപ്പ് നൽകാൻ കഴിയില്ല. ഇതിൻ്റെ പ്രായോഗിക സ്ഥിരീകരണം, സർട്ടിഫൈഡ് കംപൈലറുകൾ, വ്യത്യസ്തമായ ടെസ്റ്റുകളിൽ പരീക്ഷിച്ചപ്പോൾ, സ്റ്റാൻഡേർഡ് പാലിക്കുന്നില്ലെന്ന് കണ്ടെത്തി.

വലിയ പ്രോജക്റ്റുകളിൽ വലുതും സങ്കീർണ്ണവുമായ ഭാഷയ്‌ക്കുള്ള ഒരേയൊരു ബദൽ നിരവധി കോംപാക്റ്റ് ഭാഷകളുടെ ഉപയോഗമാണെന്ന് അഡയുടെ വക്താക്കൾ വാദിക്കുന്നു, ഇത് ഒഴിവാക്കാനായി അഡ കണ്ടുപിടിച്ച അനുയോജ്യത പ്രശ്‌നങ്ങൾക്ക് അനിവാര്യമായും കാരണമാകുന്നു. അഡയിൽ വികസിപ്പിക്കുന്നതിലെ ബുദ്ധിമുട്ട് എന്ന ആശയം ഭാഗികമായി ശരിയാണെന്ന് അവർ ശ്രദ്ധിക്കുന്നു: അഡയിൽ ലളിതമായ ഒരു പ്രോഗ്രാം എഴുതുന്നത് സി പോലുള്ള മറ്റ് ഔപചാരിക ഭാഷകളേക്കാൾ കൂടുതൽ സമയമെടുക്കും, പക്ഷേ പ്രോഗ്രാമുകൾ ഡീബഗ്ഗ് ചെയ്യാനും പരിപാലിക്കാനും, പ്രത്യേകിച്ച് വലുതും സങ്കീർണ്ണവുമായവ, വളരെ എളുപ്പമാണ്. റേഷണൽ സോഫ്റ്റ്‌വെയർ കോർപ്പറേഷനിൽ നിന്നുള്ള സ്റ്റീഫൻ സീഗർ പറയുന്നതനുസരിച്ച്, അഡയിലെ സോഫ്റ്റ്‌വെയർ വികസനം സാധാരണയായി 60% വിലകുറഞ്ഞതാണ്, കൂടാതെ വികസിപ്പിച്ച പ്രോഗ്രാമിന് സി ഭാഷ ഉപയോഗിക്കുന്നതിനേക്കാൾ 9 മടങ്ങ് കുറവുകളുണ്ട്.


6. വിതരണം, സാധ്യതകൾ

പ്രായോഗികമായി, അഡ, സൈനിക, ഉൾച്ചേർത്ത സംവിധാനങ്ങളുടെ അനുബന്ധ സംഭവവികാസങ്ങളിൽ ഉദ്ദേശിച്ച സ്ഥാനം കൈവശപ്പെടുത്തിയതിനാൽ, പടിഞ്ഞാറിലോ സോവിയറ്റ് യൂണിയനിലോ സോവിയറ്റിനു ശേഷമുള്ള സ്ഥലത്തോ ഒരിക്കലും ഈ സ്ഥലത്തിനപ്പുറത്തേക്ക് പോയിട്ടില്ല. ഇതിന് നിരവധി കാരണങ്ങളുണ്ട്. ഭാഷയുടെ എതിരാളികൾ അതിൻ്റെ സങ്കീർണ്ണതയിലും പോരായ്മകളിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു, ഒന്നാമതായി, ഭാഷയുടെ രൂപത്തിൻ്റെ വസ്തുനിഷ്ഠമായ സാഹചര്യങ്ങളെക്കുറിച്ചും അത് നടപ്പിലാക്കുന്ന പ്രക്രിയയുടെ നെഗറ്റീവ് വശങ്ങളെക്കുറിച്ചും. മോസ്കോ സ്റ്റേറ്റ് യൂണിവേഴ്സിറ്റിയിലെ റിസർച്ച് കമ്പ്യൂട്ടിംഗ് സെൻ്ററിലെ മുതിർന്ന ഗവേഷകനും അഡാകോർ ഇയു കൺസൾട്ടൻ്റുമായ എസ്ഐ റൈബിൻ്റെ അഭിപ്രായം രസകരമാണ്. അഡ അതിൻ്റെ പരാജയങ്ങൾക്ക് രണ്ട് പ്രധാന കാരണങ്ങളാൽ കടപ്പെട്ടിരിക്കുന്നുവെന്ന് അദ്ദേഹം വിശ്വസിക്കുന്നു:

  • ഭാഷയുടെ രൂപകല്പന സമയത്ത്, എല്ലാ പുതിയ സോഫ്റ്റ്വെയറുകളും അഡയിൽ മാത്രമേ സൃഷ്ടിക്കപ്പെടുകയുള്ളൂ എന്ന് പെൻ്റഗൺ അനുമാനിച്ചു. ഇക്കാരണത്താൽ, മറ്റ് ഭാഷകളിലെ പ്രോഗ്രാമുകളുമായി ഇടപഴകുന്നതിനുള്ള വളരെ പ്രാകൃതമായ മാർഗങ്ങൾ അഡയ്ക്ക് ലഭിച്ചു. പ്രായോഗികമായി, അഡയിൽ എല്ലാം എഴുതുന്നത് യാഥാർത്ഥ്യമല്ലെന്ന് തെളിഞ്ഞു (മറ്റ് ഭാഷകളിലെ റെഡിമെയ്ഡ് സംഭവവികാസങ്ങളുമായി സംവദിക്കേണ്ടത് ആവശ്യമാണെങ്കിൽ മാത്രം). അതിനാൽ, “അഡയിൽ മാത്രം എഴുതുക” എന്ന കർശനമായ നിബന്ധനയില്ലാത്ത വ്യവസായങ്ങളിൽ, അവർ ഒരു ബഹുഭാഷാ പരിതസ്ഥിതിക്ക് കൂടുതൽ അനുയോജ്യമായ മറ്റ് ഭാഷകൾ തിരഞ്ഞെടുത്തു. 1995 ലെ സ്റ്റാൻഡേർഡ് മറ്റ് ഭാഷകളുമായുള്ള പരസ്പര പ്രവർത്തനത്തിൻ്റെ പ്രശ്നം പരിഹരിച്ചു, പക്ഷേ സമയം നഷ്ടപ്പെട്ടു.
  • വിരോധാഭാസമെന്നു പറയട്ടെ, പെൻ്റഗണിൻ്റെ സാമ്പത്തികവും സംഘടനാപരവുമായ പിന്തുണയാൽ അഡയുടെ വ്യാപനം തടഞ്ഞു. സൈന്യത്തിന് വേണ്ടി എഴുതിയ Ada പ്രോഗ്രാമുകൾ ലഭ്യമായ ഏറ്റവും ശക്തമായ കമ്പ്യൂട്ടിംഗ് ഹാർഡ്‌വെയറിലാണ് പ്രവർത്തിക്കുന്നത്, അതിനാൽ കംപൈലർ ഡെവലപ്പർമാർ പ്രാഥമികമായി ACVC ടെസ്റ്റുകളിൽ വിജയിക്കുന്നതിൽ ശ്രദ്ധാലുവായിരുന്നു, അതിനുശേഷം മാത്രമേ കംപൈലറിൻ്റെ കാര്യക്ഷമതയിലും അത് നിർമ്മിച്ച കോഡിലും. 1980-കളുടെ തുടക്കത്തിൽ, മൈക്രോകമ്പ്യൂട്ടറുകളിൽ ഒരു കുതിച്ചുചാട്ടം ആരംഭിച്ചു, സാധാരണ ഭാഷകൾക്കുള്ള (പാസ്കൽ, സി, ബേസിക്) വിവർത്തകർ കുറഞ്ഞ പവർ സിസ്റ്റങ്ങൾക്കായി വേഗത്തിൽ ഒപ്റ്റിമൈസ് ചെയ്തു. അഡയെ സംബന്ധിച്ചിടത്തോളം, അത്തരം ആധുനികവൽക്കരണത്തിന് ഒരു പ്രോത്സാഹനവും ഉണ്ടായിരുന്നില്ല, ഏതാനും വർഷങ്ങൾക്ക് ശേഷം ലോകത്തിലെ കമ്പ്യൂട്ടിംഗ് കപ്പലുകളുടെ ബൾക്ക് ആയി മാറിയ പേഴ്സണൽ കമ്പ്യൂട്ടറുകൾ ഉയർന്ന നിലവാരമുള്ള അഡാ വിവർത്തകനില്ലാതെ സ്വയം കണ്ടെത്തി. സ്വാഭാവികമായും, അഡയ്ക്ക് ഈ മാർക്കറ്റ് സെഗ്‌മെൻ്റ് നഷ്ടപ്പെട്ടു. താരതമ്യേന അടുത്തിടെ മാത്രമാണ് GNAT കംപൈലർ ഉയർന്ന നിലവാരമുള്ളതും ഉൽപ്പാദനക്ഷമവും പ്രത്യക്ഷപ്പെട്ടത്, എന്നാൽ ഇവിടെയും സമയം നഷ്ടപ്പെട്ടു.

നിലവിൽ, വർദ്ധിച്ച വിശ്വാസ്യതയുടെ വലിയ എംബഡഡ് സിസ്റ്റങ്ങളുടെ വികസനത്തിൽ അഡാ വളരെ ഉറച്ചുനിൽക്കുന്നു; സാവധാനത്തിലാണെങ്കിലും ഭാഷയുടെ ഉപയോഗം ക്രമേണ വർദ്ധിച്ചുകൊണ്ടിരിക്കുകയാണ്. ചില ജാഗ്രതാ പ്രവചനങ്ങൾ പ്രകാരം [ ], വിലകുറഞ്ഞ ഹാർഡ്‌വെയറും സങ്കീർണ്ണമായ സോഫ്‌റ്റ്‌വെയർ ഉള്ള എംബഡഡ് സിസ്റ്റങ്ങളുടെ വ്യാപനവും കൊണ്ട്, Ada പ്രോഗ്രാമുകളുടെ വിപണി ഗണ്യമായി വളർന്നേക്കാം, കൂടാതെ ഭാഷയുടെ ഉപയോഗവും വളരും.

കൂടാതെ, ഉന്നത വിദ്യാഭ്യാസ മേഖലയിൽ വളരെ പരിമിതമാണെങ്കിലും അഡയ്ക്ക് പ്രയോഗമുണ്ട്. മോസ്കോ സ്റ്റേറ്റ് യൂണിവേഴ്സിറ്റിയിലും ഖാർകോവ് യൂണിവേഴ്സിറ്റിയിലും അഡയെക്കുറിച്ചുള്ള പ്രത്യേക കോഴ്സുകൾ പഠിപ്പിക്കുന്നു. എന്നിരുന്നാലും, അതേ എസ്.ഐ റിബിൻ പറയുന്നതനുസരിച്ച്,

... ഇപ്പോൾ സോവിയറ്റിനു ശേഷമുള്ള സോഫ്റ്റ്വെയർ വ്യവസായത്തിൻ്റെയും വിദ്യാഭ്യാസത്തിൻ്റെയും മേഖലയിൽ, വ്യക്തമായ ഒരു ദുഷിച്ച വൃത്തം വികസിച്ചു: വ്യവസായത്തിൽ അവർക്ക് അഡയെക്കുറിച്ച് പ്രായോഗികമായി അറിയില്ല, അതനുസരിച്ച്, വ്യവസായത്തിൽ നിന്ന് വിദ്യാഭ്യാസത്തിനായി ഒരു അഭ്യർത്ഥനയും ഇല്ല. Ada സ്പെഷ്യലിസ്റ്റുകളെ പരിശീലിപ്പിക്കുക, അഡയെക്കുറിച്ച് പ്രായോഗികമായി ഒന്നും അറിയാത്ത പുതിയ ആളുകൾ സർവ്വകലാശാലകളിൽ നിന്ന് വ്യവസായത്തിലേക്ക് വരുന്നു.


7. അഡയിൽ എഴുതിയ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ

7.1 ഉൾച്ചേർത്ത സംവിധാനങ്ങൾ

  • മാർടിഇ
  • യുഎസ് പ്രതിരോധ വകുപ്പിൻ്റെ DARPA വികസിപ്പിച്ചെടുത്ത ഒരു ഓപ്പൺ സോഴ്‌സ് OS ആണ് RTEMS
  • റാവൻസ്കർ
  • RTOS-32 - പ്രൊപ്രൈറ്ററി OS

7.2 വികസനത്തിൽ സിസ്റ്റങ്ങൾ

  • AuroraUX (ഓപ്പൺ സോളാരിസ് കേർണലും തുടർന്ന് ഡ്രാഗൺഫ്ലൈ ബിഎസ്ഡിയും അഡാ ഭാഷയിലേക്ക് മാറ്റിയെഴുതാനുള്ള ഒരു പദ്ധതി)
  • ലവ്ലേസ് (L4 കോർ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം)

7.3 ഇപ്പോൾ നിലവിലുള്ള സംവിധാനങ്ങൾ ഇല്ല

  • BiiN™
  • പൾസ്™
  • AdaOS

8. നരകത്തിൻ്റെ കംപൈലർമാർ

പേര് കമ്പനി പതിപ്പ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം വെബ്സൈറ്റ്
അഡാമാജിക് സോഫ്ചെക്ക് അഡ 95 ? www.sofcheck.com
അടമുൾട്ടി ഗ്രീൻ ഹിൽസ് സോഫ്റ്റ്‌വെയർ Ada 83, Ada 95, C, C++, Fortran Solaris SPARC, GNU/Linux x86, Windows www.ghs.com
ഡിഇസി അഡ ഹ്യൂലറ്റ് പാക്കാർഡ് അഡ 83 ഓപ്പൺവിഎംഎസ് h71000.www7.hp.com
GNAT അഡാകോർ Ada 83, Ada 95, Ada 2005, Si Solaris SPARC, Linux x86/x86-64, Windows, മറ്റുള്ളവ libre.adacore.com
ഐ.സി.സി ഇർവിൻ കംപൈലർ കോർപ്പറേഷൻ അഡ 83, അഡ 95 DEC VAX/VMS, HP 9000/700, Solaris SPARC, DEC ആൽഫ OSF/1, PC Linux, SGI IRIX, വിൻഡോസ് www.irvine.com
ജാനസ്/അഡ ആർആർ സോഫ്റ്റ്‌വെയർ അഡ 83, അഡ 95 SCO, UnixWare, Interactive, MS-DOS, Windows www.rrsoftware.com
MAXada ഒരേസമയം അഡ 95 Linux/Xeon, PowerPC www.ccur.com
ഒബ്ജക്റ്റ്അഡ അയോണിക്സ് അഡ 95 Solaris SPARC, HP-UX, IBM AIX, Linux, Windows www.aonix.com
പവർഅഡ OC സിസ്റ്റംസ് അഡ 83, അഡ 95 Linux, AIX (Ada 95); IBM സിസ്റ്റം 370/390 (Ada 83) www.ocsystems.com
യുക്തിസഹമായ അപെക്സ് ഐബിഎം റേഷണൽ Ada, C, C++ സോളാരിസ് സ്പാർക്, ലിനക്സ് www-01.ibm.com
സ്കോർ ഡിഡിസി-ഐ Ada 83, Ada 95, C, Fortran സോളാരിസ് സ്പാർക്, വിൻഡോസ് www.ddci.com
XD അഡ SWEP-EDS അഡ 83 OpenVMS ആൽഫ/VAX www.swep-eds.com
XGC Ada XGC സോഫ്റ്റ്‌വെയർ അഡ 83, അഡ 95, സി Solaris SPARC, PC Linux, Windows (Cygwin) www.xgc.com

GNAT, XGC എന്നിവ ഒഴികെ (ചില പ്ലാറ്റ്‌ഫോമുകൾക്ക്), മുകളിൽ പറഞ്ഞ കംപൈലറുകൾക്ക് പണം നൽകും. Aonix പോലെയുള്ള ചില കമ്പനികൾ സൗജന്യ ഡെമോ പതിപ്പുകൾ വാഗ്ദാനം ചെയ്യുന്നു, അത് ഉപയോഗ സമയത്തിലോ പ്രവർത്തനത്തിലോ പരിമിതമാണ്.

NetBeans, Eclipse ഡെവലപ്‌മെൻ്റ് എൻവയോൺമെൻ്റുകൾ എന്നിവയ്ക്ക് Adaയുമായി പ്രവർത്തിക്കാനുള്ള പ്ലഗിനുകൾ ഉണ്ട്.


9. ഉരുത്തിരിഞ്ഞ ഭാഷകൾ

അഡാ ഭാഷാ വാക്യഘടന ഇനിപ്പറയുന്നതുപോലുള്ള ഭാഷകളിൽ ഉപയോഗിക്കുന്നു:

  • PL/SQL

10. രസകരമായ വസ്തുതകൾ

  • ഔപചാരികമായി, Ada സൃഷ്ടിക്കുന്നതിൽ കലാശിച്ച ഭാഷാ വികസന മത്സരം അജ്ഞാതമായിരുന്നു - ഡവലപ്പർമാരുടെ ടീമുകൾ അവരുടെ പ്രോജക്റ്റുകൾ കോഡ് നാമങ്ങളിൽ സമർപ്പിച്ചു, അതിനാൽ വിജയിയെ തിരഞ്ഞെടുക്കുമ്പോൾ മത്സര സമിതിക്ക് ഡവലപ്പർമാരുടെ ഐഡൻ്റിറ്റി കണക്കിലെടുക്കാൻ കഴിഞ്ഞില്ല. എന്നാൽ പ്രായോഗികമായി, കമ്മീഷൻ അംഗങ്ങളിൽ ഒരാൾ എഴുതിയതുപോലെ, ഡവലപ്പർമാരുടെ അഭിരുചികൾ വളരെ വ്യത്യസ്തമായിരുന്നു, പദ്ധതിയുടെ രചയിതാവിനെ നിർണ്ണയിക്കാൻ പ്രയാസമില്ല.
  • ഈ മത്സരത്തിൻ്റെ അവസാന റൗണ്ടിൽ എത്തിയ എല്ലാ ഭാഷകളും പാസ്കലിനെ അടിസ്ഥാനമാക്കിയുള്ളതായിരുന്നു. ഇക്കാര്യത്തിൽ, അഡയെ താൽക്കാലികമായി പാസ്കൽ എന്ന് വിശേഷിപ്പിക്കാം, നൽകിയിരിക്കുന്ന അഞ്ച് അടിസ്ഥാന ആവശ്യകതകൾ കണക്കിലെടുത്ത് വികസിപ്പിച്ചെടുത്തു. അതേസമയം, രചയിതാക്കൾ പ്രധാനമായും പുതിയ ഘടകങ്ങൾ ഉപയോഗിച്ച് പാസ്കലിനെ വികസിപ്പിക്കുന്ന പാതയാണ് പിന്തുടർന്നത്. ഫലം കൂടുതൽ സങ്കീർണ്ണമായ ഭാഷയായിരുന്നു.
  • റഷ്യൻ ഭാഷയിൽ, "നരകത്തിൻ്റെ ഭാഷ" എന്ന പദപ്രയോഗത്തിൻ്റെ അവ്യക്തതയുമായി ബന്ധപ്പെട്ട തമാശകൾ ഉണ്ട്, "സ്വർഗ്ഗത്തിൻ്റെ ഭാഷ" എന്നും അറിയപ്പെടുന്ന റഷ്യൻ അൽഗോരിതം ഭാഷയുമായുള്ള സമാന്തരങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളവ ഉൾപ്പെടെ. സോവിയറ്റ് പ്രചാരകനായ മെലോർ സ്റ്റൂറയുടെ (1984) ഒരു ലേഖനത്തിൻ്റെ ഉപസംഹാരവും പ്രോഗ്രാമിംഗ് ഫോക്ലോറിലേക്ക് പ്രവേശിച്ചു:

പെൻ്റഗണിൻ്റെ ഭാഷ സമാധാനത്തിൻ്റെ ശത്രുവാണ്. "അട"യുടെ ഭാഷ തെർമോ ന്യൂക്ലിയർ നരകത്തിൻ്റെ ശബ്ദമാണ്... "അട"യുടെ ഭാഷയിൽ മനുഷ്യരാശിക്ക് ഒരു ശാപം കേൾക്കാം.


കുറിപ്പുകൾ

  1. അഡാ ലാംഗ്വേജ് റഫറൻസ് ഗൈഡ് 83. അധ്യായം 1.3. വികസനത്തിൻ്റെ ലക്ഷ്യങ്ങളും ഉറവിടങ്ങളും - www.ada-ru.org/arm83/ch01s03.html
  2. വാഡിം സ്റ്റാൻകെവിച്ച്. ലേഡി അഡ - www.kv.by/index2006451104.htm
  3. iso.org-ൽ പുതുക്കിയ നിലവാരം - www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45001
  4. പേഴ്സണൽ കമ്പ്യൂട്ടറുകൾക്കുള്ള ബ്രയാബ്രിൻ വി.എം. എം.: നൗക, 1988.
  5. 1 2 എസ്ഐ റൈബിനുമായുള്ള അഭിമുഖം - www.ada-ru.org/wiki/rybin
  6. , ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗ് ഭാഷകൾ, നെറ്റ് പ്ലാറ്റ്ഫോം പ്രോഗ്രാമിംഗ് ഭാഷകൾ, Ada, Ada കോഡ് ഉദാഹരണങ്ങളുള്ള ലേഖനങ്ങൾ.
    ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ-ഷെയർഎലൈക്ക് ലൈസൻസിന് കീഴിൽ വാചകം ലഭ്യമാണ്.

(അഡ 2005), ഈഫൽ (അഡ 2012)

സി++, ചാപ്പൽ, "ഡ്രാഗോ". , ഈഫൽ, "ഗ്രിഫിൻ". , ജാവ , നിം , ബോട്ടിന് പിന്നിൽ പാരച്യൂട്ട് , PL / SQL , PL / PgSQL , റൂബി , സീഡ് 7 , "SPARforte" . , സ്പാർക്കൽ , SQL / PSM , VHDL

Ada-യുടെ സവിശേഷതകളിൽ ഇവ ഉൾപ്പെടുന്നു: ശക്തമായ ടൈപ്പിംഗ്, മോഡുലാരിറ്റി മെക്കാനിസങ്ങൾ (പാക്കേജുകൾ), റൺ-ടൈം ചെക്കിംഗ്, പാരലൽ പ്രോസസ്സിംഗ് (ടാസ്കുകൾ, സിൻക്രണസ് മെസേജ് പാസിംഗ്, പ്രൊട്ടക്റ്റഡ് ഒബ്ജക്റ്റുകൾ, നോൺ-ഡിറ്റർമിനിസ്റ്റിക് സെലക്ഷൻ സ്റ്റേറ്റ്‌മെൻ്റുകൾ), ഒഴിവാക്കൽ കൈകാര്യം ചെയ്യൽ, ജനറിക്‌സ്. ഡൈനാമിക് ഡിസ്പാച്ച് ഉൾപ്പെടെ ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് പ്രോഗ്രാമിംഗിനുള്ള പിന്തുണ Ada 95 ചേർത്തു.

Ada വാക്യഘടന അടിസ്ഥാന പ്രവർത്തനങ്ങൾ എങ്ങനെ നടത്തണം എന്നതിൻ്റെ തിരഞ്ഞെടുപ്പിനെ ചെറുതാക്കുന്നു, കൂടാതെ ഇംഗ്ലീഷ് കീവേഡുകൾ ("അല്ലെങ്കിൽ", "പിന്നീട്" എന്നിവ പോലുള്ളവ) ചിഹ്നങ്ങൾക്ക് ("||", "&&" എന്നിവ പോലെ) അനുകൂലമാക്കുന്നു. Ada അടിസ്ഥാന ഗണിത ഓപ്പറേറ്റർമാരായ "+", "-", "*", "/" എന്നിവ ഉപയോഗിക്കുന്നു, എന്നാൽ മറ്റ് ചിഹ്നങ്ങളുടെ ഉപയോഗം ഒഴിവാക്കുന്നു. "ഡിക്ലയർ", "ആരംഭിക്കുക", "അവസാനം" തുടങ്ങിയ വാക്കുകളാൽ കോഡിൻ്റെ ബ്ലോക്കുകൾ വേർതിരിച്ചിരിക്കുന്നു, അവിടെ "അവസാനം" (മിക്ക കേസുകളിലും) അത് അടയ്‌ക്കുന്ന ബ്ലോക്കിൻ്റെ ഐഡൻ്റിഫയറും പിന്തുടരുന്നു (ഉദാ. ഇത് അവസാനമാണെങ്കിൽ, എങ്കിൽ... , ലൂപ്പ്... ലൂപ്പിൻ്റെ അവസാനം). സോപാധിക ബ്ലോക്കുകളുടെ കാര്യത്തിൽ, ഇത് ഒഴിവാക്കുന്നു ഇപ്പോഴും കീറി, C അല്ലെങ്കിൽ Java പോലുള്ള മറ്റ് ഭാഷകളിലെ പ്രസ്താവനകൾ തെറ്റായി നെസ്റ്റഡ് ചെയ്താൽ ജോടിയാക്കാം.

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

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

അൺലോക്കേറ്റ് ചെയ്യാത്ത മെമ്മറി ആക്‌സസ്, ബഫർ ഓവർഫ്ലോ പിശകുകൾ, റേഞ്ച് ലംഘനങ്ങൾ, ക്രമരഹിതമായ പിശകുകൾ, അറേ ആക്‌സസ് പിശകുകൾ, മറ്റ് കണ്ടെത്താവുന്ന പിശകുകൾ എന്നിവയിൽ നിന്ന് പരിരക്ഷിക്കുന്നതിന് റൺടൈം പരിശോധനകളെയും Ada പിന്തുണയ്ക്കുന്നു. എക്സിക്യൂഷൻ കാര്യക്ഷമതയുടെ താൽപ്പര്യാർത്ഥം ഈ പരിശോധനകൾ പ്രവർത്തനരഹിതമാക്കാം, പക്ഷേ പലപ്പോഴും കാര്യക്ഷമമായി കൂട്ടിച്ചേർക്കാവുന്നതാണ്. പ്രോഗ്രാം പരിശോധിക്കാൻ സഹായിക്കുന്ന ഉപകരണങ്ങളും ഇതിൽ ഉൾപ്പെടുന്നു. ഈ കാരണങ്ങളാൽ, അപകടമരണം, പരിക്ക് അല്ലെങ്കിൽ ഗുരുതരമായ സാമ്പത്തിക നഷ്ടം എന്നിങ്ങനെയുള്ള ഗുരുതരമായ പ്രത്യാഘാതങ്ങൾക്ക് കാരണമായേക്കാവുന്ന ഏതൊരു അപാകതയ്ക്കും കാരണമായേക്കാവുന്ന ഗുരുതരമായ സംവിധാനങ്ങളിൽ Ada വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നു. ഏവിയോണിക്‌സ്, എയർ ട്രാഫിക് കൺട്രോൾ, റെയിൽറോഡുകൾ, ബാങ്കിംഗ്, മിലിട്ടറി, എയ്‌റോസ്‌പേസ് എന്നിവ അഡ ഉപയോഗിക്കുന്ന സിസ്റ്റങ്ങളുടെ ഉദാഹരണങ്ങളിൽ ഉൾപ്പെടുന്നു.

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

ഭാഷയുടെ അർത്ഥശാസ്ത്രം ആക്സസ് ചെയ്യാൻ കഴിയാത്ത വസ്തുക്കളുടെ യാന്ത്രിക മാലിന്യ ശേഖരണം അനുവദിക്കുന്നുണ്ടെങ്കിലും, മിക്ക നിർവ്വഹണങ്ങളും സ്ഥിരസ്ഥിതിയായി അതിനെ പിന്തുണയ്ക്കുന്നില്ല, കാരണം ഇത് തത്സമയ സിസ്റ്റങ്ങളിൽ പ്രവചനാതീതമായ പെരുമാറ്റത്തിലേക്ക് നയിക്കും. മെമ്മറി മാനേജ്‌മെൻ്റിനെ അടിസ്ഥാനമാക്കിയുള്ള പരിമിതമായ രൂപത്തെ Ada പിന്തുണയ്ക്കുന്നു; കൂടാതെ, സ്റ്റോറേജ് പൂളുകളുടെ ക്രിയാത്മകമായ ഉപയോഗത്തിന് പരിമിതമായ തരത്തിലുള്ള യാന്ത്രിക മാലിന്യ ശേഖരണം നൽകാൻ കഴിയും, കാരണം ഒരു സംഭരണ ​​കുളം നശിപ്പിക്കുന്നത് കുളത്തിലെ എല്ലാ വസ്തുക്കളെയും നശിപ്പിക്കും.

കഥ

Ada പ്രോഗ്രാമിംഗ് ഭാഷയുടെ സാങ്കേതിക ഉള്ളടക്കം മെച്ചപ്പെടുത്തുന്നതിനും അപ്ഡേറ്റ് ചെയ്യുന്നതിനുമുള്ള പ്രവർത്തനം തുടരുന്നു. 2001 ഒക്ടോബറിൽ Ada 95-നുള്ള ഒരു സാങ്കേതിക കോറിജണ്ടം പ്രസിദ്ധീകരിച്ചു, പ്രധാന ഭേദഗതി, ISO/IEC 8652:1995/Amd 1:2007 മാർച്ച് 9, 2007-ന് പ്രസിദ്ധീകരിച്ചു. സ്റ്റോക്ക്ഹോമിൽ നടന്ന Ada-Europe 2012 കോൺഫറൻസിൽ, Ada Resource Association (ARA) യും Ada -Europe-ഉം Ada പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഏറ്റവും പുതിയ പതിപ്പിൻ്റെ രൂപകൽപ്പന പൂർത്തിയാക്കിയതായും അതിൻ്റെ റഫറൻസ് മാനുവൽ അംഗീകാരത്തിനായി ഇൻ്റർനാഷണൽ ഓർഗനൈസേഷൻ ഫോർ സ്റ്റാൻഡേർഡൈസേഷന് (ISO) സമർപ്പിച്ചതായും അറിയിച്ചു. ISO/IEC 8652:2012 2012 ഡിസംബറിൽ പ്രസിദ്ധീകരിച്ചു.

മറ്റ് പ്രസക്തമായ മാനദണ്ഡങ്ങളിൽ ISO 8651-3:1988 ഉൾപ്പെടുന്നു വിവര പ്രോസസ്സിംഗ് സിസ്റ്റങ്ങൾ, കമ്പ്യൂട്ടർ ഗ്രാഫിക്സ്, ഗ്രാഫിക്സ് കോർ സിസ്റ്റം (GKS) ഭാഷയുടെ ബൈൻഡിംഗുകൾ - ഭാഗം 3: Ada .

ഭാഷാ നിർമ്മാണങ്ങൾ

"ഹലോ വേൾഡ്!" അഡയിൽ

വാക്യഘടനയിലെ അത്തരമൊരു ഭാഷയുടെ ഒരു സാധാരണ ഉദാഹരണം ഹലോ വേൾഡ് പ്രോഗ്രാം ആണ്: (hello.adb)

Ada.Text_IO ഉപയോഗിച്ച്;

Ada.Text_IO ഉപയോഗിക്കുക ;

നടപടിക്രമം ഹലോ പുട്ട്_ലൈൻ ("ഹലോ, വേൾഡ്!" );

അവസാനം ഹലോ ;

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

ഉദാഹരണത്തിന്, ഒരു തീയതി ഇങ്ങനെ പ്രതിനിധീകരിക്കാം:

തരം Day_type ശ്രേണി 1 ആണ് .. 31 ;

ടൈപ്പ് Month_type ആണ് ശ്രേണി 1 .. 12 ;

ഇയർ_ടൈപ്പ് ശ്രേണി 1800 ആണ് .. 2100 ; ടൈപ്പ് അവേഴ്‌സ് മോഡ് 24 ആണ്;തരം ആഴ്ചദിനം (തിങ്കൾ, ചൊവ്വ, ബുധൻ, വ്യാഴം, വെള്ളി, ശനി, ഞായർ); തരം തീയതി റെക്കോർഡ് ദിവസം : Day_type ;

മാസം: മാസം_തരം; വർഷം: വർഷം_തരം;അവസാന റെക്കോർഡ് ;

ഉപവിഭാഗങ്ങൾ പ്രഖ്യാപിച്ചുകൊണ്ട് തരങ്ങൾ കൂടുതൽ പരിഷ്കരിക്കാനാകും:

സബ്ടൈപ്പ് Working_Hours ആണ് മണിക്കൂർ ശ്രേണി 0 .. 12 ; -- ഒരു ദിവസം ജോലി ചെയ്യാൻ പരമാവധി 12 മണിക്കൂർപരസ്പര ഒഴിവാക്കലിനായി. സംരക്ഷിത വസ്തുക്കൾ ഡിസൈൻ പ്രകാരം മോണിറ്റർ പോലെയാണ്, എന്നാൽ സിഗ്നലിംഗിനായി കണ്ടീഷൻ വേരിയബിളുകൾക്ക് പകരം ഗാർഡുകൾ ഉപയോഗിക്കുക (കണ്ഡിഷണൽ ക്രിട്ടിക്കൽ ഏരിയകൾക്ക് സമാനമാണ്). ഗാർഡഡ് ഒബ്‌ജക്റ്റുകൾ ഡാറ്റ എൻക്യാപ്‌സുലേഷനും മോണിറ്ററുകളിൽ നിന്ന് സുരക്ഷിതമായ പരസ്പര ഒഴിവാക്കലും സംയോജിപ്പിക്കുന്നു, അതുപോലെ തന്നെ സോപാധിക നിർണായക മേഖലകളിൽ നിന്നുള്ള ഗാർഡ് എൻട്രിയും. ക്ലാസിക് മോണിറ്ററുകളേക്കാൾ പ്രധാന നേട്ടം, സിഗ്നലുകൾ കടന്നുപോകാൻ കണ്ടീഷൻ വേരിയബിളുകൾ ആവശ്യമില്ല എന്നതാണ്, തെറ്റായ ലോക്കിംഗ് സെമാൻ്റിക്‌സ് കാരണം സാധ്യതയുള്ള ഡെഡ്‌ലോക്കുകൾ ഒഴിവാക്കുന്നു. ടാസ്‌ക്കുകൾ പോലെ, സുരക്ഷിതമാക്കാവുന്നത് ഒരു അന്തർനിർമ്മിത നിയന്ത്രിത തരമാണ്, ഇതിന് ഒരു ഡിക്ലറേഷൻ ഭാഗവും ബോഡിയും ഉണ്ട്.

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

സംരക്ഷിത ഒബ്ജക്റ്റ് ഡാറ്റ നടപടിക്രമങ്ങൾക്ക് സമാനമാണ്, എന്നാൽ അധികമായി ഉണ്ട് സുരക്ഷ. ഗാർഡ് തെറ്റാണെന്ന് വിലയിരുത്തുകയാണെങ്കിൽ, കോളിംഗ് ടാസ്‌ക് ബ്ലോക്ക് ചെയ്യുകയും ആ എൻട്രിയുടെ ക്യൂവിൽ ചേർക്കുകയും ചെയ്യും; ഇപ്പോൾ സുരക്ഷിതമായ ഒബ്‌ജക്‌റ്റിലേക്ക് മറ്റൊരു ടാസ്‌ക് അനുവദിക്കാൻ കഴിയും, കാരണം സുരക്ഷിതമായ ഒബ്‌ജക്‌റ്റിനുള്ളിൽ ഒരു ജോലിയും നിലവിൽ പ്രവർത്തിക്കുന്നില്ല. ഒരു കാവൽക്കാരൻ്റെ റേറ്റിംഗ് മാറ്റാൻ കഴിയുന്ന ഒരേയൊരു സമയമായതിനാൽ, ഒരു ടാസ്‌ക്ക് ഒരു ഗാർഡഡ് ഫെസിലിറ്റി വിട്ടുപോകുമ്പോഴെല്ലാം ഗാർഡുകൾ അമിതമായി വിലയിരുത്തപ്പെടുന്നു.

റെക്കോർഡിംഗ് കോളുകൾ ആകാം അഭ്യർത്ഥിച്ചുഒരേ ഒപ്പുള്ള മറ്റ് എൻട്രികൾക്ക്. റിക്യൂ ചെയ്ത ടാസ്‌ക് തടയുകയും ടാർഗെറ്റ് എൻട്രി ക്യൂവിൽ ചേർക്കുകയും ചെയ്യുന്നു; ഇതിനർത്ഥം സംരക്ഷിത ഒബ്‌ജക്റ്റ് റിലീസ് ചെയ്യുകയും മറ്റൊരു ടാസ്‌ക് സ്വീകരിക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്നു എന്നാണ്.

തിരഞ്ഞെടുക്കുകനോൺ-ബ്ലോക്കിംഗ് ലോഗിൻ കോളുകളും സ്വീകാര്യതകളും നടപ്പിലാക്കാൻ Ada-ലെ ഓപ്പറേറ്റർ ഉപയോഗിക്കാം, നോൺ-ഡിറ്റർമിനിസ്റ്റിക് ആയി തിരഞ്ഞെടുക്കുന്ന എൻട്രികൾ (കൂടാതെ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്നു), ടൈംഔട്ടുകൾ, അബോർട്ടുകൾ.

അഡയിലെ സമാന്തര പ്രോഗ്രാമിംഗിൻ്റെ ചില ആശയങ്ങൾ ഇനിപ്പറയുന്ന ഉദാഹരണം വ്യക്തമാക്കുന്നു.

Ada.Text_IO ഉപയോഗിച്ച്; -- ഐഡി ഇനീഷ്യലൈസേഷൻ പാരാമീറ്ററായി, വിമാനങ്ങളെ പ്രതിനിധീകരിക്കുന്ന ടാസ്‌ക്ടൈപ്പ് Airplane_Access is access Airplane ; -- വിമാനത്തിൻ്റെ സംരക്ഷിത തരം റൺവേയുടെ റഫറൻസ് തരം-- പങ്കിട്ട റൺവേ (ഒരേസമയം പ്രവേശനം അനുവദിക്കുന്നതിന് പരിരക്ഷിച്ചിരിക്കുന്നു) എൻട്രി Assign_Aircraft (ID : Airplane_ID );-- എല്ലാ എൻട്രികളും പരസ്പര വിരുദ്ധമായി ഉറപ്പുനൽകുന്നു എൻട്രി Cleared_Runway(ID: Airplane_ID);എൻട്രി Wait_For_Clear ; സ്വകാര്യ ക്ലിയർ : ബൂളിയൻ := ശരി ;-- സംരക്ഷിത സ്വകാര്യ ഡാറ്റ - പൊതുവെ ഒരു ഫ്ലാഗ് എന്നതിലുപരി... അവസാന റൺവേ; Runway_Access എന്ന് ടൈപ്പ് ചെയ്യുക എല്ലാ റൺവേയിലും പ്രവേശനം ; -- എയർ ട്രാഫിക് കൺട്രോളർ ടാസ്ക്ക് ടേക്ക്ഓഫിനും ലാൻഡിംഗിനും വേണ്ടിയുള്ള അഭ്യർത്ഥനകൾ സ്വീകരിക്കുന്നു ടാസ്ക് തരം കൺട്രോളർ (My_Runway : Runway_Access ) ആണ്-- സിൻക്രണസ് സന്ദേശം കൈമാറുന്നതിനുള്ള ടാസ്‌ക് എൻട്രികൾ എൻട്രി അഭ്യർത്ഥന_ടേക്ക്ഓഫ് (ഐഡി: എയർപ്ലെയിൻ_ഐഡിയിൽ; ടേക്ക്ഓഫ്: ഔട്ട് റൺവേ_ആക്സസ്);പ്രവേശന അഭ്യർത്ഥന_അപ്പ്രോച്ച് (ഐഡി: Airplane_ID-ൽ; സമീപനം: റൺവേ_ആക്സസിനു പുറത്ത്); എൻഡ് കൺട്രോളർ;-- സംഭവങ്ങളുടെ അലോക്കേഷൻ റൺവേ1: റൺവേ എന്ന അപരനാമം; -- ഒരു റൺവേ കൺട്രോളർ 1 സ്ഥാപിക്കുക: കൺട്രോളർ (റൺവേ1 " ആക്സസ്);-- അത് കൈകാര്യം ചെയ്യാനുള്ള ഒരു കൺട്രോളറും ------ മേൽപ്പറഞ്ഞ തരങ്ങളുടെ നടപ്പാക്കലുകൾ -------സംരക്ഷിത ബോഡി റൺവേയിൽ പ്രവേശിക്കുന്നത് Assign_Aircraft (ID : Airplane_ID) വ്യക്തമാകുമ്പോൾ -- എൻട്രി ഗാർഡ് - വ്യവസ്ഥ ശരിയാകുന്നത് വരെ കോളിംഗ് ടാസ്ക്കുകൾ തടഞ്ഞിരിക്കുന്നുആരംഭിക്കുക ക്ലിയർ := തെറ്റ് ; Put_Line (Airplane_ID "ചിത്രം (ID ) & " റൺവേയിൽ " ); അവസാനം ; എൻട്രി Cleared_Runway (ID : Airplane_ID ) ക്ലിയർ അല്ലാത്തപ്പോൾ ആരംഭിക്കുന്നു ക്ലിയർ := True ; Put_Line (Airplane_ID " ഇമേജ് (ID ) & " റൺവേ വൃത്തിയാക്കി " );അവസാനിക്കുന്നു ; എൻട്രി Wait_For_Clear എപ്പോൾ ക്ലിയർ ആരംഭിക്കുന്നത് null ; -- ഇവിടെ ഒന്നും ചെയ്യേണ്ടതില്ല - "മായ്ക്കുക" എന്നത് ശരിയാണെങ്കിൽ മാത്രമേ ഒരു ടാസ്ക്ക് നൽകാനാവൂഅവസാനിക്കുന്നു ; അവസാന റൺവേ; ടാസ്‌ക് ബോഡി കൺട്രോളർ ബിഗ് ലൂപ്പ് My_Runway ആണ്. വെയിറ്റ്_ഫോർ_ക്ലിയാർ ;അല്ലെങ്കിൽ Request_Aproach സ്വീകരിക്കുക (ഐഡി: Airplane_ID-ൽ; സമീപനം: ഔട്ട് റൺവേ_ആക്സസ്) My_Runway ചെയ്യുക. അസൈൻ_എയർക്രാഫ്റ്റ്(ഐഡി); സമീപനം := My_Runway ;അവസാന അഭ്യർത്ഥന_സമീപനം ; അല്ലെങ്കിൽ-- വിളിക്കാൻ കഴിയുന്ന ടാസ്ക്കുകളൊന്നും അവശേഷിക്കുന്നില്ലെങ്കിൽ അവസാനിപ്പിക്കുക അവസാനിപ്പിക്കുക ;അവസാനം തിരഞ്ഞെടുക്കുക ; അവസാനം ലൂപ്പ്;അവസാനിക്കുന്നു ; ടാസ്‌ക് ബോഡി വിമാനം Rwy ആണ് : Runway_Access ; കൺട്രോളർ 1 ആരംഭിക്കുക. Request_Takeoff(ID, Rwy);-- കൺട്രോളർ ടാസ്‌ക് സ്വീകരിക്കുകയും സ്വീകരിക്കുന്ന ബ്ലോക്ക് പൂർത്തിയാക്കുകയും ചെയ്യുന്നതുവരെ ഈ കോൾ തടയുന്നു Put_Line (Airplane_ID "ചിത്രം (ഐഡി) & "ടേക്ക് ഓഫ്..." ); കാലതാമസം 2.0 ; Rwy . Cleared_Runway (ID );-- Rwy-യിലെ "Clear" എന്നത് ഇപ്പോൾ തെറ്റായതിനാൽ കോൾ ബ്ലോക്ക് ചെയ്യില്ല, കൂടാതെ സംരക്ഷിത ഒബ്‌ജക്റ്റിനുള്ളിൽ മറ്റ് ജോലികളൊന്നും പാടില്ല കാലതാമസം 5.0;-- കുറച്ച് പറക്കുക... ലൂപ്പ് തിരഞ്ഞെടുക്കുക -- ഒരു റൺവേ കൺട്രോളർ1 അഭ്യർത്ഥിക്കാൻ ശ്രമിക്കുക. അഭ്യർത്ഥന_ സമീപനം (ഐഡി, Rwy); -- ഇതൊരു തടയൽ കോൾ ആണ് - കൺട്രോളർ കൺട്രോളറിൽ റൺ ചെയ്യും, അക്‌സെപ്റ്റ് ബ്ലോക്കിൽ എത്തുകയും പൂർത്തിയാക്കിയാൽ മടങ്ങുകയും ചെയ്യുംപുറത്ത് ; -- കോൾ തിരികെ വന്നാൽ, ഞങ്ങൾ ലാൻഡിംഗിന് വ്യക്തമാണ് - തിരഞ്ഞെടുത്ത ബ്ലോക്ക് ഉപേക്ഷിച്ച് തുടരുക...അല്ലെങ്കിൽ കാലതാമസം 3.0;

-- കാലഹരണപ്പെടൽ - 3 സെക്കൻഡിനുള്ളിൽ ഉത്തരം ഇല്ലെങ്കിൽ, മറ്റെന്തെങ്കിലും ചെയ്യുക (എല്ലാം ഇനിപ്പറയുന്ന ബ്ലോക്കിൽ)

Put_Line (Airplane_ID "ചിത്രം (ID ) & " ഹോൾഡിംഗ് പാറ്റേണിൽ" ); -- ഒരു സന്ദേശം പ്രിൻ്റ് ചെയ്യുക അവസാനം തിരഞ്ഞെടുക്കുക ; എൻഡ് ലൂപ്പ് ; താമസം 4.0 ; -- ലാൻഡിംഗ് സമീപനം ചെയ്യുക... Put_Line (Airplane_ID " ഇമേജ് (ID ) & " സ്പർശിച്ചു താഴേക്ക്!");

Rwy. Cleared_Runway(ID);

  • -- ഞങ്ങൾ ഇവിടെ പൂർത്തിയാക്കിയെന്ന് റൺവേ അറിയിക്കുക.
  • അവസാനിക്കുന്നു ; New_Airplane : Airplane_Access ;
  • SPARK (പ്രോഗ്രാമിംഗ് ഭാഷ) - ഘടകത്തിൻ്റെ ആവശ്യമുള്ള സ്വഭാവവും വ്യക്തിഗത റൺടൈം ആവശ്യകതകളും വിവരിക്കുന്ന മെറ്റാ വിവരങ്ങളാൽ വ്യാഖ്യാനിച്ച, അഡയുടെ വളരെ പരിമിതമായ ഒരു ഉപവിഭാഗം ഉൾക്കൊള്ളുന്ന ഒരു പ്രോഗ്രാമിംഗ് ഭാഷ.

നരകത്തിൻ്റെ ഭാഷ ഏറെക്കുറെ എല്ലായ്‌പ്പോഴും ഉണ്ടായിരുന്നു. സ്കൂളിൽ ഞങ്ങൾ അതിൻ്റെ പേര് കേട്ട് ചിരിച്ചു, യൂണിവേഴ്സിറ്റി പാഠ്യപദ്ധതിയിൽ യുഎസ് പ്രതിരോധ വകുപ്പിൻ്റെ അഭ്യർത്ഥന പ്രകാരം വികസിപ്പിച്ച ഒരു ഭാഷയായി ഇത് വരണ്ടതായി പരാമർശിക്കപ്പെട്ടു, പക്ഷേ അപൂർവ പ്രോഗ്രാമർമാർ മാത്രമേ യഥാർത്ഥത്തിൽ വാക്യഘടനയോ ആപ്ലിക്കേഷനോ പഠിക്കാൻ കഴിയൂ. അതിനാൽ നരകത്തിൻ്റെ ഭാഷ നൂറ്റാണ്ടുകൾ പഴക്കമുള്ള ഉപകരണങ്ങളിൽ മാത്രമേ പ്രവർത്തിക്കൂ എന്ന തെറ്റായ അഭിപ്രായം, സ്വാഭാവിക നവീകരണത്തോടൊപ്പം അതിൻ്റെ ആവശ്യകതയും അപ്രത്യക്ഷമാകും.

ഇത് സത്യത്തിൽ നിന്ന് വളരെ അകലെയാണ്.

രൂപഭാവം

ഇരുപതാം നൂറ്റാണ്ടിൻ്റെ 70 കളിൽ, ശീതയുദ്ധത്തിൻ്റെ പാരമ്യത്തിൽ, യുഎസ് ഡിപ്പാർട്ട്മെൻ്റ് ഓഫ് ഡിഫൻസ് ഒരു അന്താരാഷ്ട്ര മത്സരം സംഘടിപ്പിച്ചു, അതിൻ്റെ ഫലങ്ങളെ അടിസ്ഥാനമാക്കി സൈനിക ആവശ്യങ്ങൾക്കായി ഒരു പ്രോഗ്രാമിംഗ് ഭാഷ തിരഞ്ഞെടുക്കേണ്ടത് ആവശ്യമാണ്. എന്നിരുന്നാലും, നിലവിലുള്ള ഭാഷകളൊന്നും കമ്മീഷൻ അംഗങ്ങളെ തൃപ്തിപ്പെടുത്തിയില്ല, അതിനാൽ ഒരു നീണ്ട തിരഞ്ഞെടുപ്പിലൂടെയും നിരവധി പരിഷ്കാരങ്ങളിലൂടെയും അഡ ലവ്ലേസിൻ്റെ പേരിലാണ് അഡാ ഭാഷ ജനിച്ചത്. സ്റ്റാൻഡേർഡൈസേഷൻ, ട്രേഡ്മാർക്ക് രജിസ്ട്രേഷൻ, ഇഷ്‌ടാനുസൃത വിവർത്തകരുടെ നിരോധനം, അഡയ്‌ക്കൊപ്പം പ്രവർത്തിക്കുന്നതിൽ നിന്ന് ബഹുജന പ്രേക്ഷകരെ നിരുത്സാഹപ്പെടുത്തുന്ന മറ്റ് പ്രവർത്തനങ്ങൾ എന്നിവയ്‌ക്കൊപ്പം നിരവധി വർഷത്തെ റെഡ് ടേപ്പ് ആരംഭിച്ചു.

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

വാക്യഘടന

തുടക്കത്തിൽ, ശക്തമായ ടൈപ്പിംഗ് ഉള്ള ഒരു മോഡുലാർ പ്രോഗ്രാമിംഗ് ഭാഷയാണ് Ada, പാസ്കലിൽ നിന്നും അൽഗോളിൽ നിന്നും വാക്യഘടന പാരമ്പര്യമായി ലഭിക്കുന്നു. നിങ്ങൾ സ്കൂളിലോ കോളേജിലോ ആദ്യത്തേത് പഠിച്ചാൽ, "ഹലോ, വേൾഡ്!" ഗൃഹാതുരത്വം തോന്നണം:

Ada.Text_IO ഉപയോഗിച്ച്;

നടപടിക്രമം ഹലോ ആണ്
Ada.Text_IO ഉപയോഗിക്കുക;
ആരംഭിക്കുന്നു
Put_Line("ഹലോ, വേൾഡ്!");
അവസാനം ഹലോ;

ഭാഷയുടെ പ്രധാന ആവശ്യകതകളിലൊന്ന് അതിൻ്റെ ഉപയോഗത്തിൻ്റെ വിശ്വാസ്യതയായിരുന്നു. അതനുസരിച്ച്, ഇത് ഘടന, തരങ്ങൾ, അക്ഷരവിന്യാസം എന്നിവയിലും അതിലേറെ കാര്യങ്ങളിലും കർശനമായ നിയന്ത്രണങ്ങൾ ഏർപ്പെടുത്തി. കൂടാതെ, ഇവിടെയുള്ള മിക്കവാറും എല്ലാ പിശകുകളും സമാഹാര ഘട്ടത്തിൽ പിടിക്കപ്പെടുന്നു.

അച്ചടിച്ച രൂപത്തിൽ കോഡിൻ്റെ പരമാവധി വായനാക്ഷമതയായിരുന്നു മറ്റൊരു ആവശ്യം, ഇത് ഫലമായുണ്ടാകുന്ന ഭാഷയുടെ ഭാരവും കുറഞ്ഞ വഴക്കവും ഉണ്ടാക്കി.

പിന്നീടുള്ള മാനദണ്ഡങ്ങൾ ഈ പ്രശ്നങ്ങൾ ഭാഗികമായി പരിഹരിച്ചു, എന്നാൽ വ്യക്തമായ കാരണങ്ങളാൽ, അവർ നരകത്തിൽ നിന്ന് രണ്ടാമത്തെ പൈത്തൺ ഉണ്ടാക്കിയില്ല.

അഡാ ഇന്ന്

വിശാലമായ പ്രേക്ഷകരുടെ അഭിപ്രായത്തിന് വിരുദ്ധമായി, യുണൈറ്റഡ് സ്റ്റേറ്റ്സിൽ മാത്രമല്ല, സൈനിക വ്യവസായത്തിൽ മാത്രമല്ല, നരകത്തിൻ്റെ ഭാഷ ഇപ്പോഴും സജീവമായി ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, Beriev Be-200 ആംഫിബിയസ് വിമാനത്തിൻ്റെ സോഫ്റ്റ്വെയറിൻ്റെ ഒരു ഭാഗം അഡയിൽ എഴുതിയിരിക്കുന്നു. പല പ്രധാന നഗരങ്ങളിലും (പാരീസ്, ലണ്ടൻ, ന്യൂയോർക്ക് മുതലായവ) സർവീസ് നടത്തുന്ന ഡ്രൈവറില്ലാത്ത സബ്‌വേ ട്രെയിനുകളും യുഎസ് സൈനിക ഭാഷാ ഉപകരണങ്ങളാണ് ഉപയോഗിക്കുന്നത്.

അതെ, തീർച്ചയായും, “ക്ലയൻ്റുകളിൽ” സൈനിക, സിവിൽ ഏവിയേഷൻ (പ്രത്യേകിച്ച്, ബോയിംഗ് 777), റോക്കറ്റുകൾ, ഷട്ടിലുകൾ, ഉപഗ്രഹങ്ങൾ - പൊതുവേ, ഏറ്റവും ഉയർന്ന സുരക്ഷ ആവശ്യമുള്ള അനന്തമായ വിലയേറിയ അമേരിക്കൻ ഉൽപ്പന്നങ്ങളുടെ മുഴുവൻ പട്ടികയും ഉൾപ്പെടുന്നു. .

സാധ്യതകൾ

നരകത്തിൻ്റെ ഭാഷ പ്രത്യക്ഷപ്പെടുന്ന സമയത്തും പെൻ്റഗണിൻ്റെ മഹത്തായ പദ്ധതികൾ യാഥാർത്ഥ്യവുമായി പൊരുത്തപ്പെടുന്നില്ലെന്ന് വ്യക്തമായപ്പോൾ വിമർശിക്കപ്പെട്ടു, അതിലുപരിയായി. 1983-ലും 1995-ലും എഴുതിയ മാനദണ്ഡങ്ങളുടെ സങ്കീർണ്ണത, അസന്തുലിതമായ ഭാഷ, അതുപോലെ തന്നെ ഒരു ബഹുജന പ്രേക്ഷകരുടെ അഡാ ഭാഷയെ ഇല്ലാതാക്കിയ ഡെവലപ്പർമാരുടെ ഹ്രസ്വദൃഷ്ടി എന്നിവയാണ് ഇതിന് കാരണം.

എന്നിരുന്നാലും, ഏകദേശം 40 വർഷത്തെ സജീവമായ ഉപയോഗം, അഡാ ഭാഷ ഒരുപക്ഷേ അതിൻ്റെ പ്രധാന ചുമതലയെ നേരിട്ടിട്ടുണ്ടെന്ന് സ്ഥിരീകരിക്കുന്നു - അതിൻ്റെ സഹായത്തോടെ, വർദ്ധിച്ച സുരക്ഷാ ആവശ്യകതകളുള്ള സിസ്റ്റങ്ങൾക്കായി വിശ്വസനീയമായ കോഡ് സൃഷ്ടിക്കുന്നത് ഇപ്പോഴും സാധ്യമാണ്. അതേ സമയം, നിങ്ങൾ നിലവിലെ ട്രെൻഡുകൾ നോക്കുകയാണെങ്കിൽ, അത്തരം ഉൽപ്പന്നങ്ങളുടെ എണ്ണം ക്രമാനുഗതമായി വളരുകയാണ്: ഓട്ടോപൈലറ്റ്, ഹൈബ്രിഡ് എഞ്ചിനുകൾ ഉള്ള കാറുകൾ, സ്വകാര്യ ബഹിരാകാശ പേടകങ്ങളും ചെറിയ വിമാനങ്ങളും, അതിവേഗ ട്രെയിനുകൾ, അതുപോലെ തന്നെ ധാരാളം ഉൾച്ചേർത്ത സംവിധാനങ്ങളും. ഇതെല്ലാം നരകത്തിൻ്റെ ഭാഷയുടെ പ്രവർത്തനത്തിന് സാധ്യതയുള്ള മേഖലയാണ്. 2012-ൽ സ്റ്റാൻഡേർഡ് ഗൗരവമായി പരിഷ്കരിക്കുകയും നവീകരിക്കുകയും ചെയ്തു എന്ന വസ്തുത ഇതോടൊപ്പം ചേർക്കുക, ജോലിക്കുള്ള ടൂളുകളും പുറത്തിറക്കുകയും അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു.

അതിനാൽ, നരകത്തിൻ്റെ ഭാഷ വളരെ സുഖകരമല്ലാത്ത ഭൂതകാലത്തിൽ നിന്നുള്ള ഒരു ശകലമാണ്, മാത്രമല്ല ശോഭനമായ ഭാവി കെട്ടിപ്പടുക്കുന്നതിനുള്ള ഉപകരണങ്ങളിലൊന്നാണ്. അവൻ തീർച്ചയായും വിരമിക്കാൻ ഉദ്ദേശിക്കുന്നില്ല.

നിങ്ങൾ ഒരു ആഭ്യന്തര ഐടി സ്പെഷ്യലിസ്റ്റിനോട് ചോദിച്ചാൽ: "അഡ എന്താണ്?", മിക്കവരും ആശ്ചര്യത്തോടെ തോളിൽ കുലുക്കും, ചിലർ ഇത് ഒരു മൃതഭാഷയാണെന്ന് പോലും പറയും, ഒരിക്കൽ പെൻ്റഗൺ കണ്ടുപിടിച്ചതും ഇപ്പോൾ പ്രായോഗികമായി ഉപയോഗിക്കുന്നില്ല. വാസ്തവത്തിൽ, ഇന്നും വിവിധ മേഖലകളിൽ സജീവമായി ഉപയോഗിക്കുന്ന തികച്ചും സമ്പന്നമായ ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയാണ് അഡ. ശരിയാണ്, മിക്ക റഷ്യൻ പ്രോഗ്രാമർമാർക്കും ഇതിനെക്കുറിച്ച് കുറച്ച് മാത്രമേ അറിയൂ.

പാരീസ് മെട്രോയുടെ പതിനാലാമത്തെ ലൈൻ ഉപയോഗിക്കേണ്ടി വന്ന എല്ലാവരും ഡ്രൈവർ ക്യാബിൻ ഇല്ലാത്ത ഒരു ട്രെയിൻ ആദ്യമായി കണ്ടപ്പോൾ ആശ്ചര്യപ്പെട്ടു. ഈ ലൈനിലെ ട്രെയിൻ ഗതാഗതം പൂർണ്ണമായും നിയന്ത്രിക്കുന്നത് അഡ പ്രോഗ്രാമാണ്.

എല്ലാം ഉണ്ടായിരുന്നിട്ടും, സാങ്കേതികവിദ്യയുടെ ചില മേഖലകളിൽ റഷ്യ ഇപ്പോഴും "ബാക്കിയുള്ളതിനേക്കാൾ മുന്നിലാണ്." അതിലൊന്നാണ് ആംഫിബിയസ് വിമാനങ്ങളുടെ രൂപകൽപ്പനയും നിർമ്മാണവും. ഈ രംഗത്തെ അന്തർദേശീയമായി അംഗീകരിക്കപ്പെട്ട നേതാവ് TANTK ആണ്. ജി.എം. ബെറീവ്. ഏറ്റവും പുതിയ Be-200 മോഡൽ അപ്‌ഗ്രേഡുചെയ്യുന്നതിനുള്ള ഉപയോഗത്തിനായി Ada അടിസ്ഥാനമാക്കിയുള്ള ഏവിയോണിക്‌സ് സോഫ്റ്റ്‌വെയർ ഡെവലപ്‌മെൻ്റ് ടൂളുകൾ കമ്പനി അടുത്തിടെ ഏറ്റെടുത്തു.

അതേസമയം, ഭൂരിഭാഗം ആഭ്യന്തര ഐടി സ്പെഷ്യലിസ്റ്റുകൾക്കും, അഡാ ഭാഷയെക്കുറിച്ച് ഒന്നും അറിയില്ല, ഏറ്റവും മോശം, സൈനിക സംവിധാനങ്ങളുടെ വികസനത്തിനായി പെൻ്റഗൺ ഒരിക്കൽ കണ്ടുപിടിച്ച ഒരു രാക്ഷസ ഭാഷയായി അഡയെക്കുറിച്ച് പൂർണ്ണമായും തെറ്റായ ആശയമുണ്ട്. ഇപ്പോൾ പൂർണ്ണമായും മറന്നു.

ഒരു ചെറിയ ചരിത്രം

Ada പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഔദ്യോഗിക ജന്മദിനം ഫെബ്രുവരി 17, 1983 ആയി കണക്കാക്കാം - ANSI/MIL-STD-1815-A-1983 സ്റ്റാൻഡേർഡിൻ്റെ അംഗീകാര തീയതി.

അഡ സൃഷ്ടിക്കുന്നതിനും നടപ്പിലാക്കുന്നതിനുമുള്ള പദ്ധതിയുടെ ഭാഗമായി പ്രതിരോധ മന്ത്രാലയം സ്വീകരിച്ച സാങ്കേതികവും ഭരണപരവുമായ നടപടികൾ ഭാഷയുടെ പ്രാദേശിക ഭാഷകളുടെ ആവിർഭാവത്തെയും വ്യാപനത്തെയും പൂർണ്ണമായും തടഞ്ഞു. 1983 മുതൽ ഇന്നുവരെ, എല്ലാ വ്യാവസായിക നിർവ്വഹണങ്ങളും നിലവിലെ അഡാ നിലവാരത്തെ പിന്തുണയ്ക്കുന്നു. അഡാ ഉപസെറ്റുകളുടെ കാര്യം വരുമ്പോൾ, ഈ ഉപസെറ്റുകൾ നിർണ്ണയിക്കുന്നത് നടപ്പാക്കലല്ല, മറിച്ച് ഒരു പ്രത്യേക ക്ലാസ് സിസ്റ്റങ്ങളുടെ വികസന മാനദണ്ഡങ്ങൾ കൊണ്ടാണ്.

1987-ൽ, ഐഎസ്ഒ സ്റ്റാൻഡേർഡ് (ഐഎസ്ഒ/ഐഇസി 8652) എന്ന നിലയിൽ ഒരൊറ്റ മാറ്റവുമില്ലാതെ എഎൻഎസ്ഐ സ്റ്റാൻഡേർഡ് സ്വീകരിച്ചു, 1990-കളുടെ തുടക്കത്തിൽ സ്റ്റാൻഡേർഡ് പുനഃപരിശോധിക്കേണ്ട ആവശ്യം വന്നപ്പോൾ, റിവിഷൻ പ്രവർത്തനങ്ങളും നിർദ്ദേശപ്രകാരം നടത്തി. യുഎസ് പ്രതിരോധ വകുപ്പിൻ്റെ ഫണ്ടുകൾ. ഒരു പുതിയ അന്താരാഷ്ട്ര പ്രോജക്റ്റ് സമാരംഭിച്ചു, അത് 1994 അവസാനത്തോടെ അവസാനിച്ചു, 1995 ൻ്റെ തുടക്കത്തിൽ ISO/IEC 8652 സ്റ്റാൻഡേർഡിൻ്റെ ഒരു പുതിയ പതിപ്പ് പ്രസിദ്ധീകരിച്ചത് ഈ രേഖയാണ് പ്രോഗ്രാമിംഗ് ഭാഷ.

സോവിയറ്റ് യൂണിയനിൽ, 80 കളുടെ തുടക്കത്തിൽ, സയൻസ് ആൻഡ് ടെക്നോളജി സംബന്ധിച്ച സ്റ്റേറ്റ് കമ്മിറ്റിക്ക് കീഴിൽ അഡാ പ്രോഗ്രാമിംഗ് ഭാഷയെക്കുറിച്ചുള്ള ഒരു വർക്കിംഗ് ഗ്രൂപ്പ് രൂപീകരിച്ചു. പ്രോജക്റ്റിനെക്കുറിച്ചുള്ള എല്ലാ തുറന്ന വിവരങ്ങളും ശ്രദ്ധാപൂർവ്വം ശേഖരിക്കുകയും വിശകലനം ചെയ്യുകയും പ്രത്യേക സേവനങ്ങളുടെ പരിശ്രമത്തിലൂടെ ക്ലാസിഫൈഡ് വിവരങ്ങളും നേടുകയും ചെയ്തു. അക്കാലത്ത് ഉപയോഗത്തിലിരുന്ന മിക്കവാറും എല്ലാ കമ്പ്യൂട്ടർ ആർക്കിടെക്ചറുകൾക്കും അഡ നടപ്പിലാക്കുന്നതിനായി പ്രോജക്ടുകൾ സംഘടിപ്പിച്ചു, അവയിൽ ചിലത് വളരെ വിജയകരമായിരുന്നു. സോവിയറ്റ് യൂണിയൻ്റെ തകർച്ച ഈ പ്രവർത്തനത്തിന് വിരാമമിട്ടു. ഇന്ന് അഡ റഷ്യയിലും സിഐഎസിലും വ്യക്തിഗത താൽപ്പര്യക്കാർ ഉപയോഗിക്കുന്നു.

എന്താണ് അഡാ

എല്ലാ ആധുനിക വ്യാവസായിക ഭാഷകളും അടിസ്ഥാനപരമായി ഒരേ അടിസ്ഥാന കഴിവുകൾ നൽകുന്നു, അവ നിങ്ങളെ എന്ത് ചെയ്യാൻ അനുവദിക്കുന്നു എന്നതിലല്ല, മറിച്ച് അത് എത്ര കൃത്യമായി ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു എന്നതിലാണ്. എന്നിരുന്നാലും, Ada, കുറഞ്ഞത് രണ്ട് കാര്യങ്ങളിലെങ്കിലും, ആധുനിക ഭാഷകൾക്കുള്ള കഴിവുകളുടെ സ്റ്റാൻഡേർഡ് സെറ്റ് വിപുലീകരിക്കുന്നു. ആദ്യം, എസിൻക്രണസ് പ്രക്രിയകൾക്കായി Ada ഉയർന്ന തലത്തിലുള്ള പ്രോഗ്രാമിംഗ് ടൂളുകൾ നൽകുന്നു. രണ്ടാമതായി, സംവരണങ്ങളില്ലാതെ മോഡുലാർ എന്ന് വിളിക്കാവുന്ന ഒരേയൊരു ഭാഷയാണിത്.

വളരെ വലുതും സങ്കീർണ്ണവുമായ സംവിധാനങ്ങൾ എഴുതാൻ മാത്രം അനുയോജ്യമായ ഒരു വലിയ, സങ്കീർണ്ണവും "കനത്ത" ഭാഷയുമാണ് അഡ എന്ന സാമാന്യം വ്യാപകമായ മിഥ്യയെ നിരാകരിക്കുന്നതിന് അത്തരമൊരു ഉദാഹരണം ആവശ്യമാണ്. വാസ്തവത്തിൽ, C, Pascal, BASIC, Java എന്നിവയുടെ ആധുനിക ക്ലോണുകളുടെ അതേ വിജയത്തോടെ ചെറുതും ഇടത്തരവുമായ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കാൻ Ada ഉപയോഗിക്കാനാകും. അതിനാൽ, “ഹലോ, വേൾഡ്!” പ്രോഗ്രാമിൻ്റെ ഒരു മികച്ച ഉദാഹരണം. അഡയിൽ ഇതുപോലെ കാണപ്പെടുന്നു:

Ada കോഡ് അതിൻ്റെ പ്രോട്ടോടൈപ്പായി തിരഞ്ഞെടുത്ത പാസ്കൽ കോഡിന് സമാനമാണെന്ന് കാണാൻ എളുപ്പമാണ്. ഈ കംപൈൽ ചെയ്‌ത മൊഡ്യൂളിൻ്റെ മറ്റ് മൊഡ്യൂളുകളുമായുള്ള ബന്ധത്തെ ആദ്യ വരി വിവരിക്കുന്നു - മുൻനിർവചിക്കപ്പെട്ട ലൈബ്രറിയുടെ ഘടകമായ Ada.Text_IO മൊഡ്യൂളിനൊപ്പം Hello_World ദിനചര്യ കംപൈൽ ചെയ്യണമെന്ന് ഇത് സൂചിപ്പിക്കുന്നു.

ഇനിപ്പറയുന്ന പ്രോഗ്രാം രണ്ട് അസിൻക്രണസ് പ്രക്രിയകളെ നിർവചിക്കുന്നു:

Tasking_Example നടപടിക്രമത്തിൻ്റെ പ്രാദേശിക പ്രഖ്യാപന വിഭാഗം ഔട്ട്‌പുട്ടർ ടാസ്‌ക്കിനെ വിവരിക്കുന്നു (ലൈൻ 6; വരികൾ 8 മുതൽ 17 വരെ ഈ ടാസ്‌ക്കിൻ്റെ ബോഡി അടങ്ങിയിരിക്കുന്നു). Tasking_Example നടപടിക്രമവുമായി ബന്ധപ്പെട്ട പ്രക്രിയയിലെ നിയന്ത്രണം ലൈൻ 20-ൽ എത്തുമ്പോൾ, ഈ ആദ്യ പ്രസ്താവന നടപ്പിലാക്കുന്നതിന് മുമ്പ് ഔട്ട്പുട്ടർ ടാസ്‌ക്കുമായി ബന്ധപ്പെട്ട പ്രക്രിയ ആരംഭിക്കുന്നു, തുടർന്ന് രണ്ട് പ്രക്രിയകളും പരസ്പരം സ്വതന്ത്രമായി അസമന്വിതമായി ജീവിക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു. കാലതാമസം പ്രസ്താവനയുടെ നിർവ്വഹണം (വരി 14 ഉം 20 ഉം) നിർദ്ദിഷ്ട എണ്ണം സെക്കൻഡുകൾക്ക് അനുബന്ധ പ്രക്രിയ താൽക്കാലികമായി നിർത്തുന്നത് ഉൾക്കൊള്ളുന്നു. അങ്ങനെ, Tasking_Example പ്രോസസ്സ് 20 സെക്കൻഡ് നേരത്തേക്ക് താൽക്കാലികമായി നിർത്തിവച്ചിരിക്കുന്നു, അതേസമയം ഔട്ട്പുട്ടർ പ്രോസസ്സ് ഇൻക്രിമെൻ്റിംഗ് കൌണ്ടർ മൂല്യങ്ങൾ പ്രിൻ്റ് ചെയ്യാൻ തുടങ്ങുന്നു, ഓരോ മൂല്യവും പ്രിൻ്റ് ചെയ്തതിന് ശേഷം ഒരു സെക്കൻഡ് താൽക്കാലികമായി നിർത്തുന്നു. 20 സെക്കൻഡിനുശേഷം, Tasking_Example പ്രോസസ്സ് പൂർത്തിയായ ഫ്ലാഗിനെ ശരിയാക്കി സജ്ജീകരിക്കുന്നു, ഔട്ട്പുട്ടർ പ്രക്രിയയിൽ ലൂപ്പ് അവസാനിപ്പിക്കുന്നു. ഒരു ആറ്റോമിക് ഡാറ്റാ ഒബ്‌ജക്റ്റ് (ലൈൻ 4) എന്ന നിലയിൽ ഫിനിഷ്ഡ് വേരിയബിളിൻ്റെ സ്പെസിഫിക്കേഷൻ ഈ വേരിയബിളിൻ്റെ മൂല്യം ഒരേസമയം വായിക്കുന്നതും മാറ്റുന്നതും അസാധ്യമാക്കുന്നു.

രണ്ട് ഏകമാന അറേകൾ ഘടകങ്ങളായി ചേർക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ഫംഗ്ഷൻ ടെംപ്ലേറ്റ് ചുവടെയുണ്ട്. ഈ ടെംപ്ലേറ്റ് ഒരു ഏകപക്ഷീയമായ തരത്തിലേക്ക് സജ്ജീകരിക്കാൻ കഴിയും, അതിൻ്റെ ഘടകങ്ങൾക്ക് അസൈൻമെൻ്റും സങ്കലന പ്രവർത്തനങ്ങളും നിർവചിച്ചിരിക്കുന്നു (സങ്കലനം ഒരു ഗണിത കൂട്ടിച്ചേർക്കലായിരിക്കണമെന്നില്ല).

1-6 വരികളിൽ ഇഷ്‌ടാനുസൃത പ്രവർത്തനത്തിൻ്റെ പ്രഖ്യാപനവും 8-20 വരികളിൽ അതിൻ്റെ ബോഡിയും അടങ്ങിയിരിക്കുന്നു. സാരാംശത്തിൽ, ക്രമീകരണ പാരാമീറ്റർ ഒരു നിർദ്ദിഷ്ട സൂചിക ശ്രേണി (ലൈൻ 4) ഉള്ള ഒരു അനിയന്ത്രിതമായ ഏക-മാന പതിവ് തരമാണ്, അതിൻ്റെ ഘടക തരം ഏകപക്ഷീയമാണെന്ന് മാത്രമേ അറിയൂ, എന്നാൽ അസൈൻമെൻ്റ് പ്രവർത്തനം ഘടകങ്ങൾക്കായി നിർവചിച്ചിരിക്കുന്നു (ലൈൻ 2), ഇൻഡക്സ് തരം അനിയന്ത്രിതമായ വ്യതിരിക്തമാണ് (ലൈൻ 4) . ഞങ്ങൾ രണ്ട് അറേകൾ ഘടകമായി ചേർക്കാൻ പോകുന്നതിനാൽ, ഘടക തരത്തിനായുള്ള കൂട്ടിച്ചേർക്കൽ പ്രവർത്തനം എന്താണെന്ന് അറിയേണ്ടതുണ്ട്. ഇതൊരു അനിയന്ത്രിതമായ തരമായതിനാൽ, ഒരു ഔപചാരിക ക്രമീകരണ പാരാമീറ്ററായി (ലൈൻ 5) ഘടക തരത്തിനായുള്ള കൂട്ടിച്ചേർക്കൽ ഞങ്ങൾ നിർബന്ധിതരാകുന്നു.

ഫംഗ്‌ഷൻ്റെ ബോഡിയിൽ, ഓപ്പറണ്ടുകളുടെ ദൈർഘ്യം ഒന്നുതന്നെയാണോ എന്ന് ഞങ്ങൾ ആദ്യം പരിശോധിക്കുന്നു (ലൈൻ 12), അല്ലാത്തപക്ഷം ഘടകമായി കൂട്ടിച്ചേർക്കുന്നത് അർത്ഥമാക്കുന്നില്ല. ഓപ്പറാൻറ് ദൈർഘ്യം പൊരുത്തപ്പെടുത്തുന്നത് പൊരുത്തപ്പെടുന്ന സൂചിക ശ്രേണികൾക്ക് ഉറപ്പുനൽകുന്നില്ല, അതിനാൽ ആദ്യ ആർഗ്യുമെൻ്റിൻ്റെ (ലൈൻ 15) സൂചിക ശ്രേണിക്ക് മുകളിലുള്ള ഒരു ലൂപ്പിൽ, ഞങ്ങൾ ഓരോ തവണയും രണ്ടാമത്തെ ആർഗ്യുമെൻ്റിൻ്റെ അനുബന്ധ ഘടകത്തിൻ്റെ സൂചിക കണക്കാക്കേണ്ടതുണ്ട്. ഇൻഡക്‌സ് തരത്തിനായി ഞങ്ങൾക്ക് ഇത് ചെയ്യാൻ കഴിയില്ല, കാരണം ഇത് വ്യതിരിക്തമാണെന്ന് ഞങ്ങൾക്ക് മാത്രമേ അറിയൂ, അതിനാൽ ഞങ്ങൾ ഡിസ്‌ക്രീറ്റ് തരത്തിൻ്റെ മൂല്യത്തിൽ നിന്ന് അതിൻ്റെ ഓർഡിനൽ നമ്പറിലേക്ക് (ആട്രിബ്യൂട്ട്? പോസ്) പോകുന്നു, ഓർഡിനൽ നമ്പറിന് ആവശ്യമായ ഷിഫ്റ്റ് കണക്കാക്കുക സൂചിക തരത്തിൻ്റെ (ആട്രിബ്യൂട്ട്? വാൽ) അനുബന്ധ മൂല്യത്തിലേക്ക് മടങ്ങുക.

"+" എന്ന (ഇഷ്‌ടാനുസൃത) ഫംഗ്‌ഷൻ്റെ പാരാമീറ്ററുകൾ ഇടത്തോട്ടും വലത്തോട്ടും Arr എന്ന് പ്രഖ്യാപിച്ചിരിക്കുന്നു, അതിൻ്റെ സൂചിക ശ്രേണി വ്യക്തമാക്കിയിട്ടില്ല. എന്നിരുന്നാലും, ഇടത്തും വലത്തും ഔപചാരികമായ പാരാമീറ്ററുകളാണ്, അവയുടെ സ്ഥാനത്ത് (കോൺക്രീറ്റൈസേഷൻ്റെ ഫലം) "+" ഫംഗ്‌ഷൻ വിളിക്കുമ്പോൾ, അറിയപ്പെടുന്ന സൂചിക ശ്രേണികളുള്ള പ്രത്യേക ശ്രേണികൾ മാറ്റിസ്ഥാപിക്കും. “+” ഫംഗ്‌ഷൻ്റെ ബോഡിയിൽ, ഒബ്‌ജക്റ്റിൽ നിന്ന് അതിൻ്റെ സൂചിക ശ്രേണിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കുന്നതിന് ഞങ്ങൾ അറേ ആട്രിബ്യൂട്ടുകൾ (? ശ്രേണി, ?ആദ്യം, ?നീളം) ഉപയോഗിക്കുന്നു.

എന്തുകൊണ്ട് അഡാ?

ഒരു സോഫ്‌റ്റ്‌വെയർ പ്രോജക്‌റ്റിനായി ഒരു ഭാഷ തിരഞ്ഞെടുക്കുന്നത് തികച്ചും സാങ്കേതികമായ കാര്യമായിരുന്നു. ഇന്ന് ഇത് തന്ത്രപരമായ പ്രാധാന്യമുള്ള വിഷയമായി മാറിയിരിക്കുന്നു, പദ്ധതിയുടെ വിജയത്തിന് ദൂരവ്യാപകമായ അനന്തരഫലങ്ങൾ. വിവിധ കമ്പനികൾ സോഫ്‌റ്റ്‌വെയർ പ്രോജക്‌റ്റുകൾ നടപ്പിലാക്കുന്നതിനായി അഡാ ഭാഷ തിരഞ്ഞെടുത്തതിൻ്റെയോ ടെൻഡറുകൾക്കുള്ളിൽ ഉപയോഗിക്കുന്നതിന് നിർബന്ധമാക്കിയതിൻ്റെയോ ചില കാരണങ്ങൾ നമുക്ക് പട്ടികപ്പെടുത്താം.

  • സോഫ്റ്റ്‌വെയർ വൈകല്യങ്ങൾ മനുഷ്യൻ്റെ ആരോഗ്യം, സമ്പദ്‌വ്യവസ്ഥ, പരിസ്ഥിതി മുതലായവയ്ക്ക് ഗുരുതരമായ പ്രത്യാഘാതങ്ങൾ ഉണ്ടാക്കുമെന്നതിനാൽ, വികസിപ്പിക്കുന്ന സിസ്റ്റത്തിൻ്റെ വിശ്വാസ്യത വർദ്ധിപ്പിക്കാനുള്ള ആഗ്രഹം. (അഡയ്ക്ക് ബിൽറ്റ്-ഇൻ വിശ്വാസ്യത സവിശേഷതകൾ ഉണ്ട്.)
  • സിസ്റ്റം വികസനത്തിനും പരിപാലനത്തിനുമുള്ള ചെലവ് കുറയ്ക്കാനുള്ള ആഗ്രഹം.
  • അന്തർദേശീയ നിലവാരങ്ങളുടെ ലഭ്യതയും ഏത് പ്ലാറ്റ്‌ഫോമിനും ഭാഷാ കമ്പൈലറുകളുടെ ലഭ്യതയും.
  • സോഫ്‌റ്റ്‌വെയർ വലുപ്പത്തിലും സങ്കീർണ്ണതയിലും വർധിക്കുന്നതിനാൽ സോഫ്‌റ്റ്‌വെയർ വികസനത്തോടുള്ള അച്ചടക്കമുള്ള സമീപനത്തിൻ്റെ പ്രയോജനങ്ങൾ പ്രത്യേകിച്ചും പ്രാധാന്യമർഹിക്കുന്നു.
അഡയും സിയും

ജനപ്രിയ ഭാഷകളുടെ താരതമ്യ വിശകലനം നടത്തുമ്പോൾ, നിരവധി പകർപ്പുകൾ തകർന്നിട്ടുണ്ട്, ഇന്ന് ഈ വിഷയം പലപ്പോഴും "മതയുദ്ധങ്ങൾ" എന്ന് തരംതിരിക്കുന്നു. അതിനാൽ, അറിയപ്പെടുന്ന ഒരു ലേഖനത്തിലേക്കുള്ള ഒരു റഫറൻസിലേക്ക് ഞങ്ങൾ സ്വയം പരിമിതപ്പെടുത്തും, അത് നിരവധി വാചാലമായ നിഗമനങ്ങളിൽ എത്തിച്ചേരുന്നു.

  1. സിയിൽ നടപ്പിലാക്കിയ സമാന സോഫ്റ്റ്‌വെയർ പ്രോജക്ടുകളേക്കാൾ 60% കുറവാണ് അഡാ ഭാഷയിൽ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നത്.
  2. അഡയിലെ ഒരു പ്രോഗ്രാമിന് സിയിലെ ഒരു പ്രോഗ്രാമിനേക്കാൾ 9 മടങ്ങ് കുറവുകളുണ്ട്; ഒരു C++ പ്രോഗ്രാമിന് C പ്രോഗ്രാമിനേക്കാൾ കുറഞ്ഞ സ്വഭാവസവിശേഷതകളാണുള്ളത്.
  3. പരിചയസമ്പന്നരും അനുഭവപരിചയമില്ലാത്തവരുമായ പ്രോഗ്രാമർമാർക്കും അവരുടെ ഗ്രൂപ്പിൽ പരമാവധി കുറഞ്ഞതും കുറഞ്ഞതുമായ റേറ്റിംഗുകൾ ഉള്ള പ്രോഗ്രാമർമാർക്കും C-നേക്കാൾ മുൻഗണന നൽകുന്നു.
  4. അഡാ ഭാഷ പഠിക്കുന്നതിൻ്റെ സങ്കീർണ്ണത സി പഠനത്തിൻ്റെ സങ്കീർണ്ണതയേക്കാൾ ഉയർന്നതല്ല.
  5. സി പ്രോഗ്രാമുകളേക്കാൾ വിശ്വസനീയമാണ് അഡാ പ്രോഗ്രാമുകൾ.

ഈ നിഗമനങ്ങൾ വ്യക്തമാക്കുന്നതിന്, DO-178B സ്റ്റാൻഡേർഡിൻ്റെ ലെവൽ A യുടെ ആവശ്യകതകൾക്ക് അനുസൃതമായി C-130J വിമാനത്തിനായുള്ള ഓൺ-ബോർഡ് സോഫ്റ്റ്വെയർ വികസിപ്പിക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം ഞങ്ങൾ നൽകുന്നു. അതേസമയം, കോഡിൻ്റെ ഗുണനിലവാരം ലെവൽ എ സോഫ്‌റ്റ്‌വെയറിൻ്റെ ശരാശരിയേക്കാൾ 10 മടങ്ങ് കൂടുതലാണ്, താരതമ്യപ്പെടുത്താവുന്ന സോഫ്‌റ്റ്‌വെയർ പ്രൊജക്‌റ്റുകളെ അപേക്ഷിച്ച് ലേബർ ഉൽപ്പാദനക്ഷമത നാലിരട്ടിയായി വർധിച്ചു.

അഡയും ജാവയും

മൈക്രോസോഫ്റ്റ് അതിൻ്റെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കായുള്ള ലൈസൻസ് കരാറുകളിൽ ഇനിപ്പറയുന്ന വ്യവസ്ഥ ഉൾപ്പെടുത്താൻ നിർബന്ധിതരായി ( www.microsoft.com/msdownload/ieplatform/ie/license.txt): "ജാവ ഭാഷാ പിന്തുണയെക്കുറിച്ചുള്ള ഒരു കുറിപ്പ്... ജാവ സാങ്കേതികവിദ്യ തെറ്റ് സഹിഷ്ണുതയുള്ളതല്ല, അത് ഉദ്ദേശിച്ചുള്ളതല്ല... തത്സമയ നിയന്ത്രണ സംവിധാനങ്ങളിൽ ഉപയോഗിക്കുന്നതിന്... ജാവ ഭാഷയുടെ പരാജയം മരണത്തിനും പരിക്കിനും കാരണമായേക്കാം, അല്ലെങ്കിൽ അടിസ്ഥാന സൗകര്യത്തിനോ പരിസ്ഥിതിക്കോ കനത്ത നാശം. Sun Microsystems, Inc. മൈക്രോസോഫ്റ്റ് ഈ മുന്നറിയിപ്പ് പോസ്റ്റുചെയ്യേണ്ടതുണ്ട്."

ഞങ്ങൾ ലേഖനങ്ങളും ചൂണ്ടിക്കാണിക്കുകയും ജാവയെക്കാൾ അഡാ ഭാഷയുടെ ഗുണങ്ങൾ പ്രകടമാക്കുകയും ചെയ്യും.

"നരകം" മിഥ്യകൾ

മിക്കപ്പോഴും, ഭാഷയുടെ വ്യാപനത്തെയും ഒരു പ്രോജക്റ്റ് നടപ്പിലാക്കൽ ഭാഷയായി അഡയെ ബോധപൂർവം തിരഞ്ഞെടുക്കുന്നതിനെയും തടസ്സപ്പെടുത്തുന്ന സ്ഥിരമായ ഒരു കൂട്ടം തെറ്റിദ്ധാരണകളുമായി അഡ ബന്ധപ്പെട്ടിരിക്കുന്നു.

അഡ ഒരു മൃതഭാഷയാണ്; അതിൽ ഇപ്പോൾ ആരും പ്രോഗ്രാമുകളില്ല.വാസ്തവത്തിൽ, വർദ്ധിച്ച വിശ്വാസ്യത ആവശ്യകതകളുള്ള വലിയ എംബഡഡ് സിസ്റ്റങ്ങളുടെ ഇടം അഡ ആത്മവിശ്വാസത്തോടെ ഉൾക്കൊള്ളുന്നു. വിൻഡോസിനായുള്ള “ബോക്‌സ് ചെയ്‌ത” ഉൽപ്പന്നങ്ങളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, അത്തരം സിസ്റ്റങ്ങൾ അത്ര ശ്രദ്ധേയമല്ല, കാരണം അവ ഒന്നുകിൽ ഒരു പകർപ്പിൽ നിലവിലുണ്ട് (സബ്‌വേ ട്രെയിനുകളുടെ ചലനത്തെ നിയന്ത്രിക്കുന്ന ഒരു പ്രോഗ്രാം ആവർത്തിക്കുന്നതിൻ്റെ അർത്ഥമെന്താണ്), അല്ലെങ്കിൽ സിസ്റ്റത്തിൻ്റെ ഭാഗമായി വിതരണം ചെയ്യുന്നു അവ നിർമ്മിച്ചിരിക്കുന്നത് (ഓൺ-ബോർഡ് സോഫ്റ്റ്വെയർ).

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

ഒരു ചെറിയ പ്രോജക്റ്റിൽ ഉപയോഗിക്കാൻ കഴിയാത്തത്ര വലുതും സങ്കീർണ്ണവുമായ ഭാഷയാണ് അഡ.എല്ലാ ആധുനിക വ്യാവസായിക ഭാഷകളുടെയും വോളിയവും സങ്കീർണ്ണതയും ഏതാണ്ട് തുല്യമാണ്, ഇത് ബോധ്യപ്പെടാൻ, അവയുടെ വിവരണങ്ങളുടെ അളവ് താരതമ്യം ചെയ്താൽ മതി. അഡയെ പാസ്കൽ, ഫോർട്രാൻ 77 അല്ലെങ്കിൽ ബേസിക് എന്നിവയുമായി താരതമ്യം ചെയ്ത 80-കളുടെ തുടക്കത്തിലാണ് ഈ മിത്ത് ആരംഭിക്കുന്നത്.

അഡാ അറിയുന്ന കുറച്ച് പ്രോഗ്രാമർമാർ ഉണ്ട്, ആദ്യം മുതൽ ഭാഷ പഠിക്കാൻ അമിതമായ പരിശ്രമവും സമയവും ആവശ്യമാണ്.വാസ്തവത്തിൽ, എംബഡഡ് സിസ്റ്റങ്ങളുടെ പ്രത്യേകതകൾ മനസ്സിലാക്കുകയും അവയ്ക്കായി ഉയർന്ന നിലവാരമുള്ള പ്രോഗ്രാമുകൾ സൃഷ്ടിക്കാൻ കഴിവുള്ള സ്പെഷ്യലിസ്റ്റുകളെ കണ്ടെത്തുകയും ചെയ്യുക എന്നതാണ് യഥാർത്ഥ ബുദ്ധിമുട്ട്. ഉദാഹരണത്തിന്, Ada ഭാഷയുടെ സജീവ ഉപയോക്താക്കളിൽ ഒരാളായ BAE, ഈ ഭാഷ അറിയാൻ ഉദ്യോഗാർത്ഥികൾക്ക് ആവശ്യമില്ല; പകരം, വ്യാവസായിക നിലവാരമുള്ള സോഫ്‌റ്റ്‌വെയർ സൃഷ്‌ടിക്കുന്നതിനുള്ള എംബഡഡ് സിസ്റ്റങ്ങളും പ്രക്രിയകളും പരിചയമുള്ള ആളുകളെയാണ് അന്വേഷിക്കുന്നത്. ഇത്തരക്കാരെ ജോലിക്കെടുത്ത ശേഷം അവരെ നരകത്തിൻ്റെ ഭാഷ പഠിപ്പിക്കാൻ രണ്ടാഴ്ച മാത്രം മതി.

പാസ്കലിൻ്റെ ഒന്നോ അതിലധികമോ രുചി പരിചയമുള്ള പ്രോഗ്രാമർമാർക്ക് അഡയിൽ ലളിതമായ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കാൻ കുറച്ച് ദിവസങ്ങൾ മാത്രമേ ആവശ്യമുള്ളൂവെന്ന് ഞങ്ങളുടെ വ്യക്തിപരമായ അനുഭവം കാണിക്കുന്നു.

നിലവിലുള്ള അഡാ സാങ്കേതികവിദ്യകൾ ഫലപ്രദമല്ല; വിവർത്തകരും അവർ സൃഷ്ടിക്കുന്ന കോഡും കുറഞ്ഞ പ്രകടനത്തിൻ്റെ സവിശേഷതയാണ്.

ഈ മിഥ്യയും 80 കളുടെ ആദ്യ പകുതിയിൽ ആരംഭിക്കുന്നു, അഡയുടെ ആദ്യ നടപ്പാക്കലുകൾ പ്രത്യക്ഷപ്പെട്ടു, ഇത് വാസ്തവത്തിൽ "മാനദണ്ഡത്തിന് അനുസൃതമായ ഒരു അഡ വിവർത്തകൻ്റെ നിലനിൽപ്പിൻ്റെ സിദ്ധാന്തം" തെളിയിച്ചു. Ada, Pascal, C/C++ എന്നിവയിൽ ചില മോഡൽ പ്രശ്‌നങ്ങൾ പ്രോഗ്രാം ചെയ്തുകൊണ്ട് ലളിതമായ പരീക്ഷണങ്ങളുടെ ഒരു പരമ്പര നടത്തിയാൽ മതി, തുടർന്ന് (താരതമ്യപ്പെടുത്താവുന്ന കംപൈലർ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച്) കമ്പൈലേഷൻ വേഗത, ജനറേറ്റുചെയ്‌ത കോഡിൻ്റെ അളവ്, അതിൻ്റെ നിർവ്വഹണ വേഗത എന്നിവ താരതമ്യം ചെയ്താൽ മതി. അഡയുടെ സവിശേഷതയായ പ്രത്യേക അപര്യാപ്തതകളൊന്നും ഇല്ലെന്ന് ഉറപ്പാണ്. 40 MB-ൽ കൂടുതൽ സോഴ്‌സ് ടെക്‌സ്‌റ്റ് വോള്യമുള്ള GNAT പ്രോഗ്രാമിംഗ് സിസ്റ്റം 90% Ada-ൽ നടപ്പിലാക്കിയിട്ടുണ്ടെന്നും സോഴ്‌സ് ടെക്‌സ്‌റ്റുകളിൽ നിന്ന് (അതിൻ്റെ കോഴ്‌സ് സമയത്ത് ഇത് മൂന്ന് തവണ സ്വയം കംപൈൽ ചെയ്യുന്നു) ഒരു ആധുനിക പിസിയിൽ നിർമ്മിക്കുന്നുവെന്നും ശ്രദ്ധിക്കാവുന്നതാണ്. അര മണിക്കൂറിൽ കൂടരുത്.ഇത് ശരിയാണ്, എന്നാൽ GNAT പ്രോഗ്രാമിംഗ് സിസ്റ്റത്തിൻ്റെ പൊതുവായി ലഭ്യമായ ഒരു പതിപ്പ് ഉണ്ടെന്ന് ഓർമ്മിക്കുക, അത് NYU സോഫ്റ്റ്‌വെയർ ശേഖരത്തിൽ നിന്ന് സ്വതന്ത്രമായും നിയമപരമായും ലഭിക്കും ( ftp://cs.nyu.edu/pub/gnat) ഉറവിട ഗ്രന്ഥങ്ങൾക്കൊപ്പം

സൗജന്യ ചീസ്, എലിക്കെണി എങ്ങനെ ഒഴിവാക്കാം

GNAT (GNu Ada Translator) മിക്കവാറും എല്ലാ ആധുനിക വ്യാവസായിക പ്ലാറ്റ്‌ഫോമുകളിലും നിലനിൽക്കുന്നതും ജനപ്രിയ എംബഡഡ് ആർക്കിടെക്ചറുകൾക്കായി കോഡ് സൃഷ്ടിക്കുന്നതിനെ പിന്തുണയ്ക്കുന്നതുമായ അഡാ ഭാഷയുടെ ഒരു മൾട്ടി-പ്ലാറ്റ്‌ഫോം നടപ്പിലാക്കലാണ്. GNAT ( www.gnat.com) സ്റ്റാൻഡേർഡ് പ്രകാരം ഓപ്ഷണൽ എന്ന് തരംതിരിക്കുന്ന ലൈബ്രറികൾ ഉൾപ്പെടെ, Ada സ്റ്റാൻഡേർഡ് പൂർണ്ണമായി നടപ്പിലാക്കുന്നു. Ada വിവർത്തകനു പുറമേ, GNAT-ൽ ഒരു വികസിത സംയോജിത ഡവലപ്പർ പരിതസ്ഥിതിയും ഒരു മൾട്ടി-ലാംഗ്വേജ് ഗ്രാഫിക്കൽ ഡീബഗ്ഗറും ഉൾപ്പെടുന്ന ടൂളുകൾ ഉൾപ്പെടുന്നു, ഇത് മറ്റ് കാര്യങ്ങളിൽ, അസിൻക്രണസ് പ്രക്രിയകളുള്ള പ്രോഗ്രാമുകളുടെ സ്വഭാവം പരിശോധിക്കാൻ അനുവദിക്കുന്നു. വിവർത്തകനും അനുബന്ധ ഉപകരണങ്ങളും വ്യക്തിഗതമായി ഉപയോഗിക്കാം, കമാൻഡ് ലൈനിൽ നിന്ന് അവരെ വിളിക്കാം, അല്ലെങ്കിൽ അഡാ പ്രോഗ്രാമുകൾക്കായുള്ള സംയോജിത ഗ്രാഫിക്കൽ വികസന പരിസ്ഥിതിയുടെ ഭാഗമായി. വികസന പരിസ്ഥിതി ഉൾപ്പെടെ എല്ലാ GNAT ഘടകങ്ങളും എല്ലാ പ്ലാറ്റ്‌ഫോമുകളിലും ഒരേ ഇൻ്റർഫേസ് ആണ്. സ്റ്റാൻഡേർഡ് വിവരിച്ച ടൂളുകളുടെ പൂർണ്ണമായ നിർവ്വഹണത്തിന് പുറമേ, സ്റ്റാൻഡേർഡ് അനുവദിക്കുന്ന വിപുലമായ വിപുലീകരണങ്ങളുടെ ഒരു കൂട്ടം GNAT വാഗ്ദാനം ചെയ്യുന്നു. GNAT എന്നത് gcc ബഹുഭാഷാ പ്രോഗ്രാമിംഗ് സിസ്റ്റത്തിൽ Ada നടപ്പിലാക്കുന്നു, ഒരു പൊതു കോഡ് ജനറേറ്ററുള്ള വിവിധ ഇൻപുട്ട് ഭാഷകൾക്കായി ഒരു കൂട്ടം ഫ്രണ്ട്-എൻഡ് കംപൈലറുകൾ ഉൾക്കൊള്ളുന്നു, ഇത് വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നടപ്പിലാക്കിയിരിക്കുന്ന ഘടകങ്ങൾ അടങ്ങിയ പ്രോഗ്രാമുകളുടെ വികസനം വളരെ ലളിതമാക്കുന്നു.

GNAT ആദ്യം മുതൽ GPL ലൈസൻസിന് കീഴിൽ വികസിപ്പിക്കുകയും വിതരണം ചെയ്യുകയും ചെയ്തു. നിർഭാഗ്യവശാൽ, ജിപിഎല്ലുമായി ബന്ധപ്പെട്ട ധാരാളം മിഥ്യകളും ഉണ്ട്. അതിനാൽ, ജിപിഎല്ലിനു കീഴിലുള്ള പ്രോഗ്രാമുകൾ അസംഘടിതരായ താൽപ്പര്യക്കാരുടെ ഗ്രൂപ്പുകൾ വികസിപ്പിച്ചെടുക്കുകയും തികച്ചും സൗജന്യമായി വിതരണം ചെയ്യുകയും ചെയ്യുന്നുവെന്ന് പലരും വിശ്വസിക്കുന്നു; തൽഫലമായി, അത്തരം പ്രോഗ്രാമുകളുടെ വിശ്വാസ്യതയും പ്രവർത്തനക്ഷമതയും വളരെ ആവശ്യമുള്ളവയാണ്, മാത്രമല്ല ഗുരുതരമായ പ്രോജക്റ്റുകളിൽ അവയുടെ ഉപയോഗം അനുവദിക്കുന്നില്ല. GNAT-ൻ്റെ കാര്യത്തിൽ ഇത് സത്യത്തിൽ നിന്ന് വളരെ അകലെയാണ്. ഇത് സ്ഥിരീകരിക്കുന്നതിന്, അതിൻ്റെ ഡെവലപ്പർമാരുമായി സാങ്കേതിക പിന്തുണാ കരാറിൽ ഏർപ്പെട്ടിരിക്കുന്ന കമ്പനികളുടെ ലിസ്റ്റ് നോക്കുക: ബോയിംഗ്, ബ്രിട്ടീഷ് എയ്‌റോസ്‌പേസ്, ലോക്ക്ഹീഡ്, എറിക്‌സൺ, സാബ്, ഏവിയോണിക്‌സ് മുതലായവ.

ഡെമോ പതിപ്പുകൾ സൗജന്യമായി നൽകുന്നത് പല സോഫ്റ്റ്‌വെയർ ഡെവലപ്പർമാരുടെയും പതിവാണ്. GNAT വ്യത്യസ്‌തമാണ്, സൗജന്യമായി ലഭ്യമായ പൊതു പതിപ്പ് അതിൻ്റെ ഉപയോഗത്തിൽ നിയമപരമോ സാങ്കേതികമോ ആയ യാതൊരു നിയന്ത്രണവുമില്ലാതെ സാങ്കേതികവിദ്യയുടെ തികച്ചും പൂർണ്ണമായ പതിപ്പാണ്. GNAT-ൻ്റെ പൊതു പതിപ്പുകളുടെ അടിസ്ഥാനത്തിൽ നിരവധി ഗുരുതരമായ പദ്ധതികൾ വിജയകരമായി നടപ്പിലാക്കിയിട്ടുണ്ട്. നിലവിൽ ചൊവ്വയിലേക്ക് പോകുന്ന യൂറോപ്യൻ ഓട്ടോമാറ്റിക് സ്റ്റേഷനായ മാർസ് എക്സ്പ്രസിൻ്റെ ബീഗിൾ 2 ലാൻഡറിൻ്റെ സോഫ്റ്റ്‌വെയർ ( www.beagle2.com/index.htm), റഷ്യൻ ഫെഡറേഷൻ്റെ പ്രതിരോധ മന്ത്രാലയത്തിൻ്റെ ഓട്ടോമേറ്റഡ് ഡോക്യുമെൻ്ററി കമ്മ്യൂണിക്കേഷൻ സ്റ്റേഷൻ ( www.ada-ru.org/prj_doc.html). പൊതു പതിപ്പുകളുടെ ഒരേയൊരു പോരായ്മ ഡെവലപ്പർ അവർക്ക് സാങ്കേതിക പിന്തുണ നൽകുന്നില്ല എന്നതാണ്.

ഉപസംഹാരം

ചുരുക്കത്തിൽ, സമഗ്രത, സ്ഥിരത, വിശ്വാസ്യത, കാര്യക്ഷമത എന്നിവയുടെ അനുയോജ്യമായ സംയോജനമാണ് അഡാ ഭാഷ ഡെവലപ്പർമാർക്ക് നൽകുന്നത്. വലിയ പ്രാധാന്യമുള്ള സോഫ്‌റ്റ്‌വെയർ സംവിധാനങ്ങൾ നടപ്പിലാക്കുന്നതിന് ആവശ്യമായ സോഫ്‌റ്റ്‌വെയർ വികസനത്തിൻ്റെ അച്ചടക്കവും വ്യാവസായിക തലവും നൽകുമ്പോൾ ഭാഷ സർഗ്ഗാത്മകതയെയും നവീകരണത്തെയും പിന്തുണയ്‌ക്കുന്നു.

സാഹിത്യം
  1. ബെഞ്ചമിൻ ബ്രോസ്ഗോൾ, അഡ 95-ൻ്റെ ആമുഖം. www.embedded.com/story/OEG20021211S0034
  2. സ്റ്റീഫൻ സീഗ്ലർ, സിയുടെയും അഡയുടെയും വികസന ചെലവുകൾ താരതമ്യം ചെയ്യുന്നു. www.adaic.com/whyada/ada-vs-c/cada_art.html www.ada-ru.org. റഷ്യൻ ഭാഷയിൽ പ്രസിദ്ധീകരിച്ച അഡാ ഭാഷയെക്കുറിച്ചുള്ള പുസ്തകങ്ങളുടെ വ്യാഖ്യാനിച്ച ഗ്രന്ഥസൂചിക വെബ്സൈറ്റിൽ കാണാം