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

പ്രോഗ്രാമിങ് ഭാഷ

അൽഗോൾ(/ ælɡɒl, -ɡɔːl /; "അൽഗോരിത്മാനിക് ഭാഷ" എന്നതിനുള്ള ചുരുക്കമാണ്) 1950-കളുടെ മധ്യത്തിൽ വികസിപ്പിച്ചെടുത്ത കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷകളിലെ ഒരു കുടുംബമാണ്[1], മറ്റ് അനേകം ഭാഷകളേയും സ്വാധീനിക്കുകയും ചെയ്ത ഇത് അൽഗോരിതം വിവരണത്തിന്റെ സ്റ്റാൻഡേർഡ് രീതി ആയിരുന്നു, മുപ്പത് വർഷത്തിലേറെ പഴക്കമുള്ള പാഠപുസ്തകങ്ങളിലും അക്കാദമിക ഉറവിടങ്ങളിലും എസിഎം ഉപയോഗിച്ചു.[2]

ALGOL
ശൈലി:Procedural, imperative, structured
പുറത്തുവന്ന വർഷം:1958
രൂപകൽപ്പന ചെയ്തത്:Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy
സ്വാധീനിച്ചത്:Most subsequent imperative languages (so-called ALGOL-like languages)
e.g. PL/I, Simula, BCPL, B, Pascal, C

ഏറ്റവും ആധുനിക ഭാഷകളുടെ സിന്റാക്സ് "അൾഗോളിനെപ്പോലെ"യാണ്,[3] ഏതാണ്ട് സമകാലീന ഭാഷകളായ ഫോർട്രാൻ, ലിസ്പ്, കോബോൾ എന്നീ നാല് ഉന്നതതല പ്രോഗ്രാമിങ് ഭാഷകളിൽ ഏറ്റവും സ്വാധീനം ചെലുത്തിയതായി കണക്കാക്കാം.[4] ഫോർട്രാൻ ഉപയോഗിച്ചപ്പോഴുണ്ടായ ചില പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ ഇത് രൂപകൽപ്പന ചെയ്തിരുന്നു. പി.എൽ. / ഐ, സിമുല, ബിസിഎൽ, ബി, പാസ്കൽ, സി എന്നിവയുൾപ്പെടെ മറ്റു പല പ്രോഗ്രാമിങ് ഭാഷകളും ഇത് വികസിപ്പിച്ചെടുത്തു.

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

അവ ആദ്യം പ്രസിദ്ധീകരിച്ച വർഷം മൂന്നു പ്രധാന സൂചനകൾ ഉണ്ടായിരുന്നു:

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

അൽഗോൾ 68 അൽഗോൾ 60 ൽ നിന്നും വളരെ വ്യത്യസ്തമാണ്, മാത്രമല്ല അത് നന്നായി സ്വീകരിക്കപ്പെട്ടില്ല അതിനാൽ പൊതുവായി "അൽഗോൾ" എന്നാൽ അൽഗോൾ 60 ഉം അതിന്റെ വകഭേദങ്ങളും ആണ്.

പ്രധാന ന‌ടപ്പിലാക്കലുകൾ

തിരുത്തുക

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

ചരിത്രം

തിരുത്തുക

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

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

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

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

പാരീസിലെ (1 മുതൽ 16 വരെ) യോഗത്തിൽ താഴെപ്പറയുന്നവർ പങ്കെടുത്തു:

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

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

അൽഗോൾ 60 അതിനു പിന്നാലെ വന്ന പല ഭാഷകളെയും പ്രചോദിപ്പിച്ചു. ടോണി ഹോറേ പറഞ്ഞു: "ഇവിടെ ഒരു ഭാഷ വരാനുള്ള സമയം ഇതാണ് അത് മുൻഗാമികളെക്കാൾ മുൻപന്തിയിൽ മാത്രമല്ല അതിന്റെ എല്ലാ പിന്തുടർച്ചക്കാരും."[10] സ്കീം പ്രോഗ്രാമിങ് ഭാഷ, അൽഗോളിന്റെ ബ്ളോക്ക് ഘടനയും ലക്ചറൽ സ്കോപ്പും സ്വീകരിച്ച ലിപ്സിന്റെ ഒരു രൂപാന്തരം, അൽഗോളിനോടുള്ള ആദരസൂചകമായി നിലവാരമുള്ള ഡോക്യുമെൻറുകൾക്കായി "അൽഗോരിറ്റിക് ഭാഷാ സ്കീമിലെ പരിഷ്കരിച്ച റിപ്പോർട്ട്" എന്ന വാക്കും സ്വീകരിച്ചു.[11]

അൽഗോളും പ്രോഗ്രാമിങ് ഭാഷാ ഗവേഷണവും

തിരുത്തുക

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

  1. The name of this language family is sometimes given in mixed case (Algol 60 Archived 25 June 2007 at the Wayback Machine.), and sometimes in all uppercase (ALGOL68 Archived 13 September 2014 at the Wayback Machine.). For simplicity this article uses ALGOL.
  2. Collected Algorithms of the ACM Archived 17 October 2011 at Wikiwix Compressed archives of the algorithms. ACM.
  3. O'Hearn, P. W.; Tennent, R. D. (September 1996). "Algol-like languages, Introduction". Archived from the original on 14 November 2011.
  4. "The ALGOL Programming Language" Archived 6 October 2016 at the Wayback Machine., University of Michigan-Dearborn
  5. Backus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K.; Vauquois, B.; Wegstein, J. H.; van Wijngaarden, A.; Woodger, M. (May 1960). Naur, Peter (ed.). Report on the Algorithmic Language ALGOL 60. Copenhagen. doi:10.1145/367236.367262. ISSN 0001-0782.{{cite book}}: CS1 maint: location missing publisher (link)
  6. "Revised Report on the Algorithmic Language Algol 60". 1963. Archived from the original on 25 June 2007. Retrieved 8 June 2007.
  7. "Revised Report on the Algorithmic Language ALGOL 68" (PDF). 1973. Archived (PDF) from the original on 13 സെപ്റ്റംബർ 2014. Retrieved 13 സെപ്റ്റംബർ 2014.
  8. Knuth, Donald E. (1964). "Backus Normal Form vs Backus Naur Form". Communications of the ACM. 7 (12): 735–736. doi:10.1145/355588.365140.
  9. ACM Award Citation / Peter Naur Archived 2 April 2012 at Archive-It, 2005
  10. "Hints on Programming Language Design" Archived 15 September 2009 at the Wayback Machine., 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.)
  11. R. K. Dybvig; et al. Jonathan Rees; William Clinger Hal Abelson (eds.). "Revised(3) Report on the Algorithmic Language Scheme, (Dedicated to the Memory of ALGOL 60)". Archived from the original on 14 ജനുവരി 2010. Retrieved 20 ഒക്ടോബർ 2009.
  12. Peter O'Hearn and Robert D. Tennent. 1996. Algol-Like Languages. Birkhauser Boston Inc., Cambridge, MA, USA.