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

അൽഗോൾ(/ ælɡɒl, -ɡɔːl /; "അൽഗോരിത്മാനിക് ഭാഷ" എന്നതിനുള്ള ചുരുക്കമാണ്) 1950-കളുടെ മധ്യത്തിൽ വികസിപ്പിച്ചെടുത്ത കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷകളിലെ ഒരു കുടുംബമാണ്The name of this language family is sometimes given in mixed case (Algol 60 ), and sometimes in all uppercase (ALGOL68 ). For simplicity this article uses ALGOL., മറ്റ് അനേകം ഭാഷകളേയും സ്വാധീനിക്കുകയും ചെയ്ത ഇത് അൽഗോരിതം വിവരണത്തിന്റെ സ്റ്റാൻഡേർഡ് രീതി ആയിരുന്നു, മുപ്പത് വർഷത്തിലേറെ പഴക്കമുള്ള പാഠപുസ്തകങ്ങളിലും അക്കാദമിക ഉറവിടങ്ങളിലും എസിഎം ഉപയോഗിച്ചു.Collected Algorithms of the ACM  Compressed archives of the algorithms. ACM.

ഏറ്റവും ആധുനിക ഭാഷകളുടെ സിന്റാക്സ് "അൾഗോളിനെപ്പോലെ"യാണ്,  ഏതാണ്ട് സമകാലീന ഭാഷകളായ ഫോർട്രാൻ, ലിസ്പ്, കോബോൾ എന്നീ നാല് ഉന്നതതല പ്രോഗ്രാമിങ് ഭാഷകളിൽ ഏറ്റവും സ്വാധീനം ചെലുത്തിയതായി കണക്കാക്കാം."The ALGOL Programming Language" , University of Michigan-Dearborn ഫോർട്രാൻ ഉപയോഗിച്ചപ്പോഴുണ്ടായ ചില പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ ഇത് രൂപകൽപ്പന ചെയ്തിരുന്നു. പി.എൽ. / ഐ, സിമുല, ബിസിഎൽ, ബി, പാസ്കൽ, സി എന്നിവയുൾപ്പെടെ മറ്റു പല പ്രോഗ്രാമിങ് ഭാഷകളും ഇത് വികസിപ്പിച്ചെടുത്തു.

അൽഗോൾ കോഡ് ബ്ലോക്കുകൾ പരിചയപ്പെടുത്തി, begin....endജോഡികൾ അവയുടെ അതിർത്തി നിർണ്ണയിക്കുന്നതിന് ഉപയോഗിക്കുന്നു. അത് ലെക്സിക്കൽ സ്കോപിനായി നെസ്റ്റ്ഡ് ഫങ്ഷൻ നിർവചനങ്ങൾ നടപ്പിലാക്കിയ ആദ്യത്തെ ഭാഷയും ഇതാണ്. മാത്രമല്ല, ഔപചാരിക ഭാഷാ നിർവ്വചനത്തിന് വിശദമായ ശ്രദ്ധനൽകിയ ആദ്യത്തെ പ്രോഗ്രാമിങ് ഭാഷയായിരുന്നു ഇത്. ആൽഗോൾ 60 റിപ്പോർട്ട് വഴി ബാക്ക്യു-നൗർ ഫോം അവതരിപ്പിക്കുകയും ഭാഷാ രൂപകല്പനകൾക്കുള്ള പ്രധാന ഔപചാരികമായ വ്യാകരണ വിജ്ഞാപനം അവതരിപ്പിക്കുകയും ചെയ്തു.

അവ ആദ്യം പ്രസിദ്ധീകരിച്ച വർഷം മൂന്നു പ്രധാന സൂചനകൾ ഉണ്ടായിരുന്നു:
 അൽഗോൾ 58 - ആദ്യം ഇന്റർനാഷണൽ ആൾജിബ്രേക്ക് ലാംഗ്വേജായി, ഐഎഎൽ എന്നറിയപ്പെടാൻ നിർദ്ദേശിക്കപ്പെട്ടിരുന്നു.
 അൽഗോൾ  60 - 1960 ന്റെ മധ്യത്തോടെ X1 അൽഗോൾ  60 ആയി ആദ്യമായി നടപ്പാക്കി. പരിഷ്കരിച്ചത് 1963.
 ആൽഗോൾ 68 - ഫ്ലെക്സിബിൾ അരേകൾ, സ്ലൈസ്, പാരലലിസം, ഓപ്പറേറ്റർ ഐഡന്റിഫിക്കേഷൻ തുടങ്ങി പുതിയ ഘടകങ്ങൾ അവതരിപ്പിച്ചു. പരിഷ്കരിച്ചത് 1973.

അൽഗോൾ  68 അൽഗോൾ 60 ൽ നിന്നും വളരെ വ്യത്യസ്തമാണ്, മാത്രമല്ല അത് നന്നായി സ്വീകരിക്കപ്പെട്ടില്ല അതിനാൽ പൊതുവായി "അൽഗോൾ" എന്നാൽ അൽഗോൾ  60 ഉം അതിന്റെ വകഭേദങ്ങളും ആണ്.
 പ്രധാന ന‌ടപ്പിലാക്കലുകൾ 
ഇന്റർനാഷണൽ ബീജഗണിത ഭാഷ (IAL), അല്ലെങ്കിൽ അൽഗോൾ 58, വളരെ ആധുനിക പ്രോഗ്രാമിങ് ഭാഷകളുടെ പൂർവ്വികൻ (അൽഗോൾ പോലെയുള്ള ഭാഷകൾ) എന്നു വിളിക്കപ്പെടുന്നവയാണ്. കൂടാതെ, അൽഗോൾ ഒബ്ജക്റ്റ് കോഡ് ഒരു ലളിതമായ, ഒതുക്കമുള്ളതും, സ്റ്റാക്ക് അടിസ്ഥാനമാക്കിയുള്ള പ്രബോധന സംവിധാനവും ആയിരുന്നു, അദ്ധ്യാപന നിർമ്മാണ കംപൈലറിൽ സാധാരണയായി ഉപയോഗിക്കുന്നു ഉയർന്ന മറ്റ് ഭാഷകൾ കൂടിയും ഉൾപ്പെടുന്നു (ഇതിൽ അൽഗോൾ ആദ്യത്തേതായി കണക്കാക്കപ്പെടുന്നു).

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

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

അൽഗോൾ 58 ന് വേണ്ടി പ്രത്യേകമായി പ്രോഗ്രാമിങ് ഭാഷകൾ വിവരിക്കുന്നതിന് ജോൺ ബാക്കസ്, ബാക്കസ് നോർമൽ ഫോം രീതി വികസിപ്പിച്ചെടുത്തു. അൽഗോൾ 60 യ്ക്ക് വേണ്ടി പീറ്റർ നൗർ അത് പരിഷ്ക്കരിച്ച് വിപുലീകരിച്ചു, പിന്നീട് ഡൊണാൾഡ് ക്യുത്തിന്റെ നിർദ്ദേശപ്രകാരം ബാക്കസ്നൗർ ഫോം എന്ന് പുനർനാമകരണം ചെയ്യപ്പെട്ടു.

പീറ്റർ നൗർ: "അൽഗോൾ ബുള്ളറ്റിന്റെ എഡിറ്റർ എന്ന നിലയിൽ ഭാഷയുടെ അന്താരാഷ്ട്ര ചർച്ചകളിൽ ഞാൻ ആകർഷിക്കപ്പെട്ടു, നവംബർ 1959 ൽ യൂറോപ്യൻ ഭാഷാ രൂപകല്പനാ സംഘത്തിൽ അംഗമായി തിരഞ്ഞെടുക്കപ്പെട്ടു. ഈ ശേഷിയിൽ 1960 ജനുവരിയിൽ പാരിസിലെ അൽഗോൾ  60 സമ്മേളനത്തിന്റെ ഫലമായുണ്ടാക്കിയ അൽഗോൾ  60 റിപ്പോർട്ടിലെ എഡിറ്ററായിരുന്നു ഞാൻ."ACM Award Citation / Peter Naur , 2005

പാരീസിലെ (1 മുതൽ 16 വരെ) യോഗത്തിൽ താഴെപ്പറയുന്നവർ പങ്കെടുത്തു:
 ഫ്രെഡറിക് എൽ ബാവർ, പീറ്റർ നൗർ, ഹെയ്ൻസ് റുഷീഷൌസർ, ക്ലൗസ് സാമൽസൺ, ബെർണാർഡ് വൊക്കൂക്കോസ്, ആഡ്രയാൻ വാൻ വിഞ്ചൻഗാർഡൻ, മൈക്കൽ വുഡ്ഗർ (യൂറോപ്പിൽ നിന്നും)
 ജോൺ ഡബ്ല്യു ബാക്കസ്, ജൂലിയൻ ഗ്രീൻ, ചാൾസ് കാറ്റ്സ്, ജോൺ മക്കാർത്തി, അലൻ ജെ. പെർലിസ്, ജോസഫ് ഹെൻറി വെഗ്സ്റ്റീൻ (യുഎസ്എയിൽ നിന്ന്).

അലൻ പെർലിസ് യോഗത്തിൽ വിശദമായ വിവരണം നൽകി: "യോഗങ്ങൾ ക്ഷീണിപ്പിക്കുകയും, ശിഥിലീകരിക്കപ്പെടുകയും, സന്തോഷഭരിതമാക്കുകയും ചെയ്തു. ഒരാളുടെ നല്ല ആശയങ്ങൾ നിരസിക്കപ്പെട്ടത് വെറൊരാളെ പ്രകോപിപ്പിച്ചു. എന്നിരുന്നാലും, മുഴുവൻ സമയവും സ്ഥിരോത്സാഹം തുടർന്നു. 13 ന്റെ രസതന്ത്രം മികച്ചതായിരുന്നു. "

അൽഗോൾ 60 അതിനു പിന്നാലെ വന്ന പല ഭാഷകളെയും പ്രചോദിപ്പിച്ചു. ടോണി ഹോറേ പറഞ്ഞു: "ഇവിടെ ഒരു ഭാഷ വരാനുള്ള സമയം ഇതാണ് അത് മുൻഗാമികളെക്കാൾ മുൻപന്തിയിൽ മാത്രമല്ല അതിന്റെ എല്ലാ പിന്തുടർച്ചക്കാരും.""Hints on Programming Language Design" , C.A.R. Hoare, December 1973. Page 27. (This statement is sometimes erroneously attributed to Edsger W. Dijkstra, also involved in implementing the first ALGOL 60 compiler.) സ്കീം പ്രോഗ്രാമിങ് ഭാഷ, അൽഗോളിന്റെ ബ്ളോക്ക് ഘടനയും ലക്ചറൽ സ്കോപ്പും സ്വീകരിച്ച ലിപ്സിന്റെ ഒരു രൂപാന്തരം, അൽഗോളിനോടുള്ള ആദരസൂചകമായി നിലവാരമുള്ള ഡോക്യുമെൻറുകൾക്കായി "അൽഗോരിറ്റിക് ഭാഷാ സ്കീമിലെ പരിഷ്കരിച്ച റിപ്പോർട്ട്" എന്ന വാക്കും സ്വീകരിച്ചു.
 അൽഗോളും പ്രോഗ്രാമിങ് ഭാഷാ ഗവേഷണവും 
പീറ്റർ ലാൻഡിൻ സൂചിപ്പിച്ച പോലെ, ലാംഡ കാൽകുലസ് എന്ന വിളിപ്പേരുള്ള പരിധിയില്ലാത്ത ഇഫക്റ്റുകൾ സംയോജിപ്പിക്കുന്ന ആദ്യത്തെ ഭാഷ അൽഗോളായിരുന്നു. ഒരുപക്ഷേ ഭാഷയുടെ ഏറ്റവും സുന്ദരമായ രൂപത്തിനു കാരണം ജോൺ സി റെയ്നോൾഡ്സ് ആണ്, അത് അതിന്റെ സിന്റാറ്റിക്സും സെമാന്റികും തനതായ രീതിയിൽ പ്രദർശിപ്പിക്കുന്നു. കോൾ-ബൈ-നെയിം ഭാഷകളുടെ പശ്ചാത്തലത്തിൽ, പ്രാദേശിക പ്രത്യാഘാതങ്ങളുടെ അനുയോജ്യത സംബന്ധിച്ചു റെയ്നോൾഡ്സിന്റെ ആദർശപരമായി കരുതപ്പെട്ട അൽഗോൾ ബോധപൂർവ്വമായ രീതിശാസ്ത്ര വാദത്തിന് വഴിവച്ചു, ആഗോള പ്രത്യാഘാതങ്ങളുമായി പൊരുത്തപ്പെടാൻ എംഎൽ പോലുള്ള കോൾ-ബൈ-വാല്യൂ ഉപയോഗിച്ചു. പിസിഎഫ്, എംഎൽ എന്നിവയോടൊപ്പം ഭാഷയുടെ ആശപരമായ സമന്വയം സെമാന്റിക് ഗവേഷണത്തിന്റെ പ്രധാന വസ്തുക്കളിലൊന്നായി അതിനെ മാറ്റി.Peter O'Hearn and Robert D. Tennent. 1996. Algol-Like Languages. Birkhauser Boston Inc., Cambridge, MA, USA.

അവലംബം