സിഎൽയു (പ്രോഗ്രാമിങ് ഭാഷ)
മസ്സാചുസെറ്റ്സ് ഇൻസ്റ്റിറ്റ്യൂട്ട് ഓഫ് ടെക്നോളജിയിൽ (എം.ഐ.ടി) സ്ഥാപിച്ച പ്രോഗ്രാമിങ് ഭാഷയാണ് സിഎൽയു(CLU). 1974 നും 1975 നും ഇടയിൽ ബാർബറ ലിൽക്കോവും അവരുടെ വിദ്യാർത്ഥികളും ചേർന്നാണ് ഇത് രൂപപ്പെടുത്തിയെടുത്തത്. ഇത് വിപുലമായ ഉപയോഗത്തിലില്ലെങ്കിലും, ഇപ്പോൾ അത് വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്ന പല സവിശേഷതകളും അവതരിപ്പിച്ചു, ഒബ്ജക്റ്റ് ഓറിയെൻറഡ് പ്രോഗ്രാമിങ്ങിൻറെ (OOP) വികസനത്തിൽ ഒരു ഘട്ടം എന്ന നിലയിലാണ് ഇത് കാണുന്നത്. അമൂർത്തമായ ഡാറ്റ തരങ്ങൾ, [4] കോൾ-ബൈ-ഷെയറിംഗ്, ഇറ്റേറ്റെർസ്, മൾട്ടിപ്പിൾ റിട്ടേൺ വാല്യൂസ് (ഒരു സമാന്തര അസൈൻമെൻറ്), ടൈപ്പ്-സുരക്ഷിതമായ പാരാമീറ്ററൈസ്ഡ് തരങ്ങൾ, ടൈപ്പ്-സേഫ് വേരിയൻറ് തരങ്ങൾ എന്നിവയാണ് പ്രധാന സംഭാവനകൾ. കൺസ്ട്രറ്ററുകളും രീതികളും ഉപയോഗിക്കുന്നതും, എന്നാൽ ഇൻഹെറിറ്റെൻസ് (Inheritance) ഇല്ലാത്തതുമാണ്. ക്ലസ്റ്ററുകൾഏറ്റവും പുതിയ ഭാഷാ രൂപകൽപ്പനകൾക്ക് തുടക്കമിടാൻ ആൽഗോൾ(ALGOL) അടിസ്ഥാനമാക്കിയുള്ളതാണ് സിഎൽയുടെ സിൻറാക്സ്. ഒരു കൂട്ടം ക്ലസ്റ്റർ എന്ന ആശയം, സിഎൽയുടെ ടൈപ്പുചെയ്യൽ വിപുലീകരണവും ഭാഷയുടെ പേരിൻറെ റൂട്ട് (CLUster) ആണ്.[5]ക്ലസ്റ്ററുകൾ ഒരു ഒഒ (OO) ഭാഷയിലെ "ക്ലാസ്" എന്ന സങ്കല്പത്തിന് സാധാരണയായി യോജിക്കുന്നു, സമാന സിന്റാക്സ് ഉണ്ട്. ഉദാഹരണത്തിന്, സങ്കീർണ്ണ സംഖ്യകൾ കൊണ്ടുവരുന്ന ഒരു ക്ലസ്റ്ററിനായുള്ള സിഎൽയു സിൻറാക്സ് ഇതാണ്: complex_number = cluster is add, subtract, multiply, ... rep = record [ real_part: real, imag_part: real ] add = proc ... end add; subtract = proc ... end subtract; multiply = proc ... end multiply; ... end complex_number; ഒരു ക്ലസ്റ്റർ എന്നത് ഒരു മൊഡ്യൂളാണ്, അതിൻറെ എല്ലാ ഘടകങ്ങളും സംഗ്രഹിക്കുന്നു, "is" ക്ലോസിൽ സ്പഷ്ടമായി പേരുള്ളത് ഒഴികെ. ഇത് സമീപകാല ഒഒ (OO) ഭാഷകളിൽ ഒരു ക്ലാസിലെ പൊതു ഘടകങ്ങളെ സൂചിപ്പിക്കുന്നു. ഒരു ക്ലസ്റ്റർ ക്ലസ്റ്ററിനു പുറത്ത് പേരുനൽകുന്ന ഒരു തരം ക്ലസ്റ്റർ കൂടി നിർവ്വചിക്കുന്നു (ഇവിടെ, "complex_number"), എന്നാൽ അതിൻറെ റെപ്രസെൻറേഷൻ ടൈപ്പ് (rep) ബാഹ്യ ക്ലയൻറുകളിൽ നിന്ന് മറഞ്ഞിരിക്കുകയാണ്. ക്ലസ്റ്റർ പേരുകൾ ആഗോളമാണ്, മറ്റ് ക്ലസ്റ്ററുകൾക്കുള്ളിൽ "പ്രാദേശിക" ഗ്രൂപ്പുകൾ സൃഷ്ടിക്കാൻ നാമസ്പെയ്സ് സംവിധാനം ഏർപ്പെടുത്തിയിരുന്നില്ല. സിഎൽയുവിന് ഇതര തരത്തിലുള്ള പരിവർത്തനങ്ങൾ സാധ്യമല്ല. ഒരു ക്ലസ്റ്ററിൽ, സ്പഷ്ട തരത്തിനും (explicit type) അവതരണത്തിനും ഇടയിലുള്ള വ്യതിരിക്തമായ തരങ്ങൾക്ക് (abstract type) വ്യത്യാസങ്ങൾ ഉണ്ടാകുന്നു. ഒരു സാർവത്രിക തരം ഉണ്ട്, ഒരു വസ്തു പ്രത്യേക തരം ആണെന്ന് പരിശോധിക്കാൻ force[] എന്ന നടപടിക്രമം ഉപയോഗിക്കുന്നു. ഒബ്ജക്ടുകൾ മൂട്ടബിൾ (mutable) അല്ലെങ്കിൽ ഇംമൂട്ടബിൾ (immutable) ആകാം, രണ്ടാമത്തേത്, ബേസ്, ബൂളിയനുകൾ, പ്രതീകങ്ങൾ, സ്ട്രിങ്ങുകൾ തുടങ്ങിയ അടിസ്ഥാന ഘടകങ്ങളാണ്.[5] മറ്റ് സവിശേഷതകൾസിഎൽയു ടൈപ്പ്സിസ്റ്റത്തിൻറെ മറ്റൊരു പ്രധാന സവിശേഷത ഇറ്ററേറ്റുകൾ (iterators) ആണ്, അവ സീരിയലിൽ നിന്ന് ഒബ്ജക്റ്റുകൾ തിരികെ നൽകുന്നു, ഒന്നിനുപുറകെ ഒന്നായി.[5] ഒരേപോലുള്ള ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻറർഫേസ് (എപിഐ) ഇറ്റർറേറ്ററുകൾ വാഗ്ദാനം ചെയ്യുന്നു, അവ ഉപയോഗിക്കുന്ന ഡാറ്റ എന്തുതന്നെയായാലും. അങ്ങനെ സങ്കീർണ്ണമായ_ സംഖ്യകളുടെ ശേഖരത്തിനായി ഇറ്ററേറ്ററുകൾ പൂർണ്ണസംഖ്യകളുടെ ഒരു അറേയ്ക്കായി അവയ്ക്ക് പരസ്പരം ഉപയോഗിക്കാനാകും. സിഎൽയു ഇറ്ററേറ്ററുകളുടെ ഒരു പ്രത്യേക സവിശേഷത അവ കോറൻഡീസിനെ പ്പോലെയാണ് നടപ്പാക്കപ്പെടുന്നത്, യീൽഡ് (yield) പ്രസ്താവന വഴി കോളറിനായി ഓരോ മൂല്യവും നൽകപ്പെടുന്നു. സിഎൽയുവിയിൽ ഉള്ള ഇറ്ററേറ്ററുകൾ ഇന്ന് പല ആധുനിക ഭാഷകളുടെ ഒരു പൊതു സവിശേഷതയാണ്, സി#, റൂബി, പൈത്തൺ എന്നീ പ്രോഗ്രാമിംഗ് ഭാഷകളിലും ഉപയോഗിക്കുന്നു, ഈയിടെയായി അവ പലപ്പോഴും ജനറേറ്ററായി അറിയപ്പെടുന്നു.
ടൈപ്പ്-സുരക്ഷിത വേരിയൻറ് തരം ഉള്ള ആദ്യത്തെ ഭാഷയായി സിഎൽയു ഉപയോഗിക്കപ്പെടുന്നു, എംഎൽ(ML) ഭാഷക്ക് മുൻപുണ്ടായിരുന്നതിനെ വൺഓഫ്സ് (oneofs) എന്ന് വിളിച്ചിരുന്നു. സിഎൽയുവിലെ അന്തിമ സവിശേഷത സമാന്തര കർത്തവ്യം (ഒന്നിലധികം അസൈൻമെൻറ്) ആണ്, ഇവിടെ ഒരു അസൈൻമെൻറ് ഓപ്പറേഷൻറെ ഇടത് വശത്ത് ഒന്നിൽ കൂടുതൽ വേരിയബിളുകൾ ദൃശ്യമാകും. ഉദാഹരണത്തിന്, എഴുതുന്നത് ഇപ്രകാരമാണ് ഒരു സിഎൽയു പ്രോഗ്രാമിലെ എല്ലാ വസ്തുക്കളുടെയും നിലനിൽപ് ഹീപ്പിലാണ്(program live in the heap), ഓട്ടോമാറ്റിക്കായി മെമ്മറി മാനേജ് ചെയ്യുന്നു. പരാമീറ്ററൈസ് തരത്തെ ഉപയോക്താവ് നിർവ്വചിച്ച ഡാറ്റ അബ്സ്ട്രാഷൻസ് സിഎൽയു പിന്തുണയ്ക്കുന്നു. യഥാർത്ഥ തരം ആർഗ്യുമെൻറുകളിൽ നിയന്ത്രണങ്ങൾ പ്രകടിപ്പിക്കുന്ന ഘടന ഉപയോഗിച്ച് ടൈപ്പ്-സുരക്ഷിതമായ നിയന്ത്രണമുള്ള പാരാമീറ്ററൈസ്ഡ് തരങ്ങൾ വാഗ്ദാനം ചെയ്യുന്ന ആദ്യത്തെ ഭാഷയായിരുന്നു ഇത്. മറ്റ് പ്രോഗ്രാമിങ് ഭാഷകളിൽ മേലുള്ള സ്വാധീനംപല ഭാഷകളിലും സിഎൽയു സ്വാധീനിച്ചിരിക്കുന്നു. ഏകദേശ കണക്ക് അനുസരിച്ച് അവയിൽ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുന്നു:
അവലംബം
|
Portal di Ensiklopedia Dunia