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

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

അഡാ



പ്ലാൻ:

    ആമുഖം
  • 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. സോവിയറ്റ് യൂണിയനിലും റഷ്യയിലും അഡ

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

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

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

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

5. വിമർശനം

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

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

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

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

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

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

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


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

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

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

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

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

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


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

7.1 എംബഡഡ് സിസ്റ്റങ്ങൾ

  • മാർ‌ടി‌ഇ
  • യുഎസ് ഡിപ്പാർട്ട്‌മെന്റ് ഓഫ് ഡിഫൻസ് ആയ DARPA വികസിപ്പിച്ചെടുത്ത ഒരു ഓപ്പൺ സോഴ്‌സ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റമാണ് 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 openvms h71000.www7.hp.com
GNAT അഡാകോർ Ada 83, Ada 95, Ada 2005, C 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. രസകരമായ വസ്തുതകൾ

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

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

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

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

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

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

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

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

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

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

കഥ

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

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

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

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

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

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

ഈ പ്രോഗ്രാം സ്വതന്ത്രവും ഓപ്പൺ സോഴ്‌സ് GNAT കംപൈലറും ഉപയോഗിച്ച് കംപൈൽ ചെയ്യാവുന്നതാണ്

gnatmake hello.adb

ഡാറ്റ തരങ്ങൾ

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

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

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

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

സബ്ടൈപ്പ് Working_Hours ആണ് മണിക്കൂർ ശ്രേണി 0 .. 12 ; -- ഒരു ദിവസം ജോലി ചെയ്യാൻ പരമാവധി 12 മണിക്കൂർസബ്ടൈപ്പ് Working_Day ആണ് ആഴ്ചദിന ശ്രേണി തിങ്കളാഴ്ച .. വെള്ളിയാഴ്ച; -- ജോലി ചെയ്യാനുള്ള ദിവസങ്ങൾ Work_Load : പ്രവർത്തന സമയങ്ങളുടെ സ്ഥിരമായ ശ്രേണി (Working_Day ) -- വ്യക്തമായ തരം പ്രഖ്യാപനം := (വെള്ളിയാഴ്ച => 6, തിങ്കൾ => 4, മറ്റുള്ളവ => 10 ); -- പ്രവർത്തി സമയത്തിനായുള്ള ലുക്ക്അപ്പ് ടേബിൾ പ്രാരംഭത്തോടെ

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

നിയന്ത്രണ ഘടനകൾ

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

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

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

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

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

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

Ada.Text_IO ഉപയോഗിച്ച്; Ada.Text_IO ഉപയോഗിക്കുക ; നടപടിക്രമം ട്രാഫിക്ക് തരം Airplane_ID ആണ് ശ്രേണി 1. . 10 ; -- 10 വിമാനങ്ങൾ ടാസ്‌ക് തരം വിമാനം (ID : Airplane_ID ); -- ഐഡി ഇനീഷ്യലൈസേഷൻ പാരാമീറ്ററായി, വിമാനങ്ങളെ പ്രതിനിധീകരിക്കുന്ന ടാസ്‌ക്ടൈപ്പ് 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-ൽ; ടേക്ക്ഓഫ്: ഔട്ട് റൺവേ_ആക്സസ്); entry Request_Aproach (ID: 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_Approach "എണ്ണം = 0 => -- ഗാർഡ് സ്റ്റേറ്റ്‌മെന്റ് - Request_Aproach-ൽ ടാസ്‌ക്കുകളൊന്നും ക്യൂവിൽ ഇല്ലെങ്കിൽ മാത്രം സ്വീകരിക്കുക Request_Takeoff സ്വീകരിക്കുക (ഐഡി: Airplane_ID-ൽ; ടേക്ക് ഓഫ്: ഔട്ട് റൺവേ_ആക്സസ്) ചെയ്യുക -- സമന്വയിപ്പിച്ച ഭാഗം My_Runway ആരംഭിക്കുക. അസൈൻ_എയർക്രാഫ്റ്റ്(ഐഡി); -- റിസർവ് റൺവേ (സംരക്ഷിത ഒബ്ജക്റ്റ് തിരക്കിലാണെങ്കിൽ അല്ലെങ്കിൽ എൻട്രി ഗാർഡ് തെറ്റാണെങ്കിൽ കോൾ തടയാൻ സാധ്യതയുണ്ട്)ടേക്ക് ഓഫ് := 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 ; Airplane_ID "റേഞ്ച് ലൂപ്പിൽ I എന്നതിനായി ആരംഭിക്കുക -- കുറച്ച് വിമാന ജോലികൾ സൃഷ്ടിക്കുക New_Airplane := പുതിയ വിമാനം(I); -- സൃഷ്ടിച്ചതിന് ശേഷം നേരിട്ട് പ്രവർത്തിക്കാൻ തുടങ്ങുംകാലതാമസം4.0; എൻഡ്-ലൂപ്പ്; ഗതാഗതം അവസാനിപ്പിക്കുക;

പ്രാഗ്മസ്

കംപൈൽ ചെയ്ത ഔട്ട്‌പുട്ട് പ്രത്യേകമായി കൈകാര്യം ചെയ്യുന്നതിനായി കമ്പൈലറിന് വിവരങ്ങൾ കൈമാറുന്ന ഒരു കംപൈലർ നിർദ്ദേശമാണ് പ്രാഗ്മ. ചില പ്രയോഗങ്ങൾ ഭാഷയിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്, മറ്റുള്ളവ നടപ്പാക്കലുകളാണ്.

കംപൈലർ പ്രാഗ്മകളുടെ പൊതുവായ ഉപയോഗത്തിന്റെ ഉദാഹരണങ്ങൾ റൺ-ടൈം ടൈപ്പ് ചെക്കിംഗ് അല്ലെങ്കിൽ അറേ ഇൻഡക്സ് ബൗണ്ട് ചെക്കിംഗ് പോലുള്ള ചില സവിശേഷതകൾ പ്രവർത്തനരഹിതമാക്കും, അല്ലെങ്കിൽ ഒരു ഫംഗ്‌ഷൻ വിളിക്കുന്നതിന് പകരം ഇൻലൈൻ ഒബ്‌ജക്റ്റ് കോഡിലേക്ക് കംപൈലറിന് നിർദ്ദേശം നൽകും (C/C++ ൽ ഇൻലൈൻ ഫംഗ്‌ഷനുകൾ).

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

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

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

രൂപഭാവം

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

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

വാക്യഘടന

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

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

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

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

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

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

ഇന്ന് നരകം

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

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

സാധ്യതകൾ

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

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

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

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

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

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

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

അൽപ്പം ചരിത്രം

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

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

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

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

എന്താണ് അഡാ

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

അഡ എന്നത് വളരെ വലുതും സങ്കീർണ്ണവും "ഭാരമേറിയതുമായ" ഭാഷയാണെന്ന സാമാന്യം സാധാരണമായ ഒരു മിഥ്യയെ നിരാകരിക്കുന്നതിന് ഇതിന് ഒരു ഉദാഹരണം ആവശ്യമാണ്. വാസ്തവത്തിൽ, C, Pascal, BASIC, Java എന്നിവയുടെ ആധുനിക ക്ലോണുകളുടെ അതേ വിജയത്തോടെ ചെറുതും ഇടത്തരവുമായ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കാൻ 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. ഒരു Ada പ്രോഗ്രാമിന് C പ്രോഗ്രാമിനേക്കാൾ 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 പ്രോഗ്രാമിംഗ് സിസ്റ്റം, Ada-യിൽ 90% നടപ്പിലാക്കിയിട്ടുണ്ട്, കൂടാതെ സോഴ്‌സ് കോഡിൽ നിന്ന് (അത് മൂന്ന് തവണ കംപൈൽ ചെയ്യുന്ന സമയത്ത്) ഒരു ആധുനിക പിസിയിൽ ഇത് നിർമ്മിക്കുന്നതിന് ആവശ്യമില്ല. അരമണിക്കൂറിലധികം.

അഡയുടെ നിലവിലുള്ള നടപ്പാക്കലുകൾ വളരെ ചെലവേറിയതാണ്.ഇത് ശരിയാണ്, പക്ഷേ GNAT പ്രോഗ്രാമിംഗ് സിസ്റ്റത്തിന്റെ പൊതുവായി ലഭ്യമായ ഒരു പതിപ്പ് ഉണ്ടെന്ന് ഓർമ്മിക്കുക, അത് ന്യൂയോർക്ക് യൂണിവേഴ്സിറ്റി സോഫ്റ്റ്വെയർ ശേഖരത്തിൽ നിന്ന് സൗജന്യമായും പൂർണ്ണമായും നിയമപരമായും ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ് ( ftp://cs.nyu.edu/pub/gnat) യഥാർത്ഥ ഗ്രന്ഥങ്ങൾക്കൊപ്പം

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

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