Jump to content

എബിസി (പ്രോഗ്രാമിങ് ഭാഷ)

വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.
എബിസി
ശൈലി:multi-paradigm: imperative, procedural, structured
രൂപകൽപ്പന ചെയ്തത്:Leo Geurts, Lambert Meertens, Steven Pemberton
വികസിപ്പിച്ചത്:CWI
ഡാറ്റാടൈപ്പ് ചിട്ട:strong, polymorphic
സ്വാധീനിക്കപ്പെട്ടത്:SETL & ALGOL 68[1]
സ്വാധീനിച്ചത്:Python

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

പൈത്തൺ പ്രോഗ്രാമിങ് ഭാഷയുടെ രൂപകൽപ്പനയിൽ എബിസി ഭാഷക്ക് വലിയ സ്വാധീനമുണ്ടായിരുന്നു; പൈത്തൺ വികസിപ്പിച്ച ഗൈഡോ വാൻ റോസ്സം, 1980 കളുടെ തുടക്കത്തിൽ എബിസി (ABC) സിസ്റ്റത്തിൽ നിരവധി വർഷങ്ങൾ പ്രവർത്തിച്ചു.[2][3]

സവിശേഷതകൾ

[തിരുത്തുക]

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

  • അഞ്ച് അടിസ്ഥാന വിവര തരങ്ങൾ മാത്രം.
  • പരിവർത്തിത വസ്തു പ്രഖ്യാപനം(variable declaration)ആവശ്യമില്ല.
  • ടോപ്-ഡൗൺ പ്രോഗ്രാമിനുള്ള വ്യക്തമായ പിന്തുണ.
  • ഓഫ്-സൈഡ് റൂൾ വഴി പ്രസ്താവന അധികരിക്കുകയും, അതിനെ സൂചിപ്പിക്കുകയും ചെയ്യുന്നു.
  • അനന്തമായ കൃത്യയുള്ള ഗണിതവും, പരിമിതികളില്ലാത്ത വലിപ്പത്തിലുള്ള ലിസ്റ്റുകളും സ്ട്രിംഗുകളും, ഓർത്തോഗൊനാലിറ്റിയെ പിന്തുണയ്ക്കുന്ന മറ്റു സവിശേഷതകൾ ഉണ്ട്.

എബിസി യഥാർത്ഥത്തിൽ ഒരു ഏകീകൃതമായ നടപ്പാക്കൽ ആയിരുന്നു, അത് ഒരു പുതിയ ഗ്രാഫിക്കൽ യൂസർ ഇൻറർഫേസ് സൃഷ്ടിക്കൽ പോലുള്ള പുതിയ ആവശ്യങ്ങൾക്ക് ഉതകുന്ന കഴിവില്ല. നേരിട്ടുളള ഫയൽ സിസ്റ്റത്തിലും ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിലും നേരിട്ട് എബിസിയ്ക്ക് പ്രവേശിക്കാൻ കഴിഞ്ഞില്ല.

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

ഉദാഹരണം

[തിരുത്തുക]

ഒരു പ്രമാണത്തിലെ എല്ലാ വാക്കുകളുടെയും സെറ്റ് ശേഖരിക്കാൻ ഒരു ഉദാഹരണ ഘടകം താഴെകൊടുക്കുന്നു:

 HOW TO RETURN words document:
   PUT {} IN collection
   FOR line IN document:
      FOR word IN split line:
         IF word not.in collection:
            INSERT word IN collection
   RETURN collection

അവലംബം

[തിരുത്തുക]
  1. "He was clearly influenced by ALGOL 68's philosophy of providing constructs that can be combined in many different ways to produce all sorts of different data structures or ways of structuring a program." - Guido van Rossum Federico Biancuzzi; Shane Warden (April 2009). Masterminds of Programming: Conversations with the Creators of Major Programming Languages. O'Reilly Media. p. 32. ISBN 0-596-51517-0. Retrieved December 14, 2009.
  2. The A-Z of Programming Languages: Python Archived 2008-12-29 at the Wayback Machine.. "...I figured I could design and implement a language 'almost, but not quite, entirely unlike' ABC, improving upon ABC's deficiencies...", Computerworld (2008-08-05). Retrieved on 2014-07-08.
  3. An Interview with Guido van Rossum Archived 2013-03-13 at the Wayback Machine.. "... in my head I had analyzed some of the reasons it had failed..." ONLamp.com. Retrieved on 2013-07-08.