ലിസ്പ്
പ്രോഗ്രാമിങ് ഭാഷ / From Wikipedia, the free encyclopedia
നീണ്ട ചരിത്രമുള്ളതും മറ്റു പ്രോഗ്രാമിങ് ഭാഷകളിൽ നിന്ന് വ്യത്യസ്തമായ ലേഖനവ്യവസ്ഥയോടുകൂടിയതുമായ പ്രോഗ്രാമിങ് ഭാഷാവിഭാഗമാണ് ലിസ്പ് (LISP).പൂർണ്ണമായും പരാൻതൈസ് ചെയ്ത പ്രിഫിക്സ് നൊട്ടേഷനാനുള്ളത്.[1] 1958-ലാണ് ഇത് പുറത്തിറങ്ങിയത്. 'ലിസ്റ്റ് പ്രൊസസ്സിങ് ലാംഗ്വേജ്' (LISt Processing language) എന്നതിൽ നിന്നാണ് പേരിന്റെ ഉൽഭവം. ഇന്ന് വ്യാപകമായ ഉപയോഗത്തിലുള്ള രണ്ടാമത്തെ ഏറ്റവും പഴയ ഹൈ-ലെവൽ പ്രോഗ്രാമിംഗ് ഭാഷയാണ് ലിസ്പ്. ഫോർട്രാൻ മാത്രമേ ഇതിലും പഴക്കമുള്ളത്, ഒരു വർഷം മാത്രം.[2][3] ഫോർട്രാനെ പോലെ തന്നെ ലിസ്പിനും തുടക്കത്തിൽ നിന്ന് ഒരുപാട് മാറ്റങ്ങൾ സംഭവിച്ചിട്ടുണ്ട്. ഇന്ന് നിലവിലുള്ള ലിസ്പിന്റെ പ്രചാരത്തിലുള്ള വകഭേദങ്ങളിൽ പ്രധാനപ്പെട്ടവ റാക്കറ്റ്(Racket), കോമൺ ലിസ്പും (Common Lisp) സ്കീം (Scheme) ക്ലോജുറും(Clojure) ആണ്.
ശൈലി: | multi-paradigm: functional, procedural, reflective |
---|---|
പുറത്തുവന്ന വർഷം: | 1958 |
രൂപകൽപ്പന ചെയ്തത്: | John McCarthy |
വികസിപ്പിച്ചത്: | Steve Russell, Timothy P. Hart, and Mike Levin |
ഡാറ്റാടൈപ്പ് ചിട്ട: | dynamic, strong |
വകഭേദങ്ങൾ: | Common Lisp, Emacs Lisp, ISLISP, Scheme |
സ്വാധീനിച്ചത്: | Logo, പേൾ, പൈത്തൺ, Smalltalk, റൂബി, Dylan, മാത്തമാറ്റിക്ക, Rebol |
അലോൺസോ ചർച്ചിന്റെ ലാംഡ കാൽകുലസിനെ അടിസ്ഥാനമാക്കി കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളിൽ ഗണിതസമവാക്യങ്ങൾ രേഖപ്പെടുത്തുന്നതിനുള്ള മാർഗ്ഗമായിട്ടായിരുന്നു ആദ്യം ലിസ്പ് രൂപംകൊണ്ടത്. പിന്നീട് പെട്ടെന്ന് തന്നെ കമ്പ്യൂട്ടറുകളിൽ കൃത്രിമബുദ്ധി പ്രായോഗികമാക്കാനുള്ള ഗവേഷണങ്ങൾക്കുള്ള പ്രോഗ്രാമിങ് ഭാഷ എന്ന നിലയിൽ പ്രചാരത്തിലാവുകയും ചെയ്തു. കമ്പ്യൂട്ടർ ശാസ്ത്രത്തിൽ പല തത്ത്വങ്ങളും ലിസ്പ് സംഭാവന ചെയ്തിട്ടുണ്ട്. ട്രീ ഡാറ്റാ സ്ട്രക്ച്ചർ, ഓട്ടോമാറ്റിക്ക് സ്റ്റോറേജ് മാനേജ്മെന്റ്, ഡൈനാമിക്ക് ടൈപ്പിങ്,കണ്ടീഷണൽസ്,ഹൈ ഓർഡർ ഫംഗ്ഷനുകൾ,റിക്കർഷൻസ്, സെൽഫ് ഹോസ്റ്റിങ് കംപൈലർ,റീഡ്-ഇവാൾ-പ്രിന്റ് ലൂപ്പ് എന്നിവ അവയിൽ ചിലതാണ്.[4]
"ലിസ്പ് പ്രോസസ്സർ" എന്നതിൽ നിന്നാണ് ലിസ്പ് എന്ന പേര് ഉരുത്തിരിഞ്ഞത്. [5] ലിസ്പിന്റെ പ്രധാന ഡാറ്റാ ഘടനകളിലൊന്നാണ് ലിങ്ക്ഡ് ലിസ്റ്റുകൾ, കൂടാതെ ലിസ്പ് സോഴ്സ് കോഡ് ലിസ്റ്റുകൾ കൊണ്ട് നിർമ്മിച്ചതാണ്. അതിനാൽ, ലിസ്പ് പ്രോഗ്രാമുകൾക്ക് സോഴ്സ് കോഡിനെ ഒരു ഡാറ്റാ സ്ട്രക്ചറായി കൈകാര്യം ചെയ്യാൻ കഴിയും, ഇത് പുതിയ സിന്റാക്സ് അല്ലെങ്കിൽ ലിസ്പിൽ ഉൾച്ചേർത്ത(embedded)പുതിയ ഡൊമെയ്ൻ നിർദ്ദിഷ്ട ഭാഷകൾ സൃഷ്ടിക്കാൻ പ്രോഗ്രാമർമാരെ അനുവദിക്കുന്ന മാക്രോ സിസ്റ്റങ്ങൾ ഉണ്ടാകുന്നു.
കോഡിന്റെയും ഡാറ്റയുടെയും പരസ്പര കൈമാറ്റം ലിസ്പിന് തൽക്ഷണം തിരിച്ചറിയാൻ കഴിയുന്ന വാക്യഘടന നൽകുന്നു. എല്ലാ പ്രോഗ്രാം കോഡുകളും എസ്-എക്സ്പ്രഷനുകൾ അല്ലെങ്കിൽ പരാൻതൈസ്ഡ് ലിസ്റ്റുകളായി എഴുതിയിരിക്കുന്നു. ഒരു ഫംഗ്ഷൻ കോൾ അല്ലെങ്കിൽ വാക്യഘടന ഫോം ആദ്യം ഫംഗ്ഷന്റെയോ ഓപ്പറേറ്ററുടെയോ പേരോടുകൂടിയ ഒരു ലിസ്റ്റായി എഴുതുന്നു, കൂടാതെ ഇനിപ്പറയുന്ന ആർഗ്യുമെന്റുകൾ; ഉദാഹരണത്തിന്, മൂന്ന് ആർഗ്യുമെന്റുകൾ എടുക്കുന്ന ഒരു ഫംഗ്ഷനെ (f arg1 arg2 arg3)
എന്ന് വിളിക്കും.