![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/C_Hello_World_Program.png/640px-C_Hello_World_Program.png&w=640&q=50)
പ്രോഗ്രാമിംഗ് ഭാഷ
ഒരു ഗണികാരത്തെ നിയന്ത്രിക്കാൻ ഉപയോഗിക്കുന്ന കൃത്രിമ ഭാഷ / From Wikipedia, the free encyclopedia
പ്രോഗ്രാമിംഗ് ഭാഷ ഒരു യന്ത്രത്തെ, പ്രത്യേകിച്ച് ഒരു ഗണികാരത്തെ (കമ്പ്യൂട്ടറിനെ) നിയന്ത്രിക്കാൻ ഉപയോഗിക്കുന്ന കൃത്രിമ ഭാഷയാണ്. ഓരോ പ്രോഗ്രാമിംഗ് ഭാഷയും മനുഷ്യർ സംവേദനത്തിന് ഉപയോഗിക്കുന്ന ഭാഷകൾ പോലെതന്നെ നിയതമായ വ്യാകരണ നിയമങ്ങളാൽ നിർവചിക്കപ്പെട്ടിരിക്കുന്നു.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/C_Hello_World_Program.png/640px-C_Hello_World_Program.png)
ശാസ്ത്രലോകത്തെ പല ചിന്തകരുടെയും നിലപാട് പ്രോഗ്രാമിംഗ് ഭാഷ എന്ന പദം എല്ലാത്തരം അൽഗൊരിതങ്ങളിലെ നിർദ്ദേശങ്ങളും വ്യക്തമാക്കാൻ സാധിക്കുന്ന ഭാഷകൾക്കു മാത്രമേ ഉപയോഗിക്കാവൂ എന്നാണ്. ഗണിതശാസ്ത്രപ്രകാരം ഇത്തരം ഭാഷകൾക്ക് അലൻ ടൂറിങ്ങിന്റെ യൂണിവേഴ്സൽ ടൂറിങ് മെഷീനു സമമായ ഗണികശേഷി ഉണ്ടാവും. [1] ശേഷി കുറഞ്ഞ ഭാഷകളെ കമ്പ്യൂട്ടർ ഭാഷകൾ എന്നു വിളിക്കുന്നു. ആയിരക്കണക്കിനു പ്രോഗ്രാമിംഗ് ഭാഷകൾ[2] നിലവിലുണ്ട്. ഓരോ വർഷവും ധാരാളം പുതിയവ സൃഷ്ടിക്കപ്പെട്ടുകൊണ്ടുമിരിക്കുന്നു.
മിക്ക പ്രോഗ്രാമിംഗ് ഭാഷകളും കമ്പ്യൂട്ടറുകൾക്കുള്ള നിർദ്ദേശങ്ങൾ ഉൾക്കൊള്ളുന്നു. പൊതുവായ പ്രോഗ്രാമിംഗ് ഭാഷകളേക്കാൾ ഒരു കൂട്ടം നിർദ്ദിഷ്ട നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കുന്ന പ്രോഗ്രാമബിൾ മെഷീനുകളുണ്ട്. 1800-കളുടെ തുടക്കം മുതൽ, ജാക്കാർഡ് ലൂമുകൾ, മ്യൂസിക് ബോക്സുകൾ, പ്ലെയർ പിയാനോകൾ തുടങ്ങിയ യന്ത്രങ്ങളുടെ പ്രവർത്തികൾ നിയന്ത്രിക്കാൻ പ്രോഗ്രാമുകൾ ഉപയോഗിച്ചു.[3]ഈ മെഷീനുകൾക്കായുള്ള പ്രോഗ്രാമുകൾ (ഒരു പ്ലെയർ പിയാനോയുടെ സ്ക്രോളുകൾ പോലെയുള്ളവ) വ്യത്യസ്ത ഇൻപുട്ടുകളിലേക്കോ സാഹചര്യങ്ങൾക്കനുസൃതമായോ പ്രതികരിക്കുന്ന വ്യത്യസ്ത സ്വഭാവം സൃഷ്ടിക്കാൻ സാധിച്ചില്ല.
ആയിരക്കണക്കിന് വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകൾ സൃഷ്ടിക്കപ്പെട്ടു, കൂടാതെ ഓരോ വർഷവും കൂടുതൽ സൃഷ്ടിക്കപ്പെടുന്നു. മറ്റ് ഭാഷകൾ ഡിക്ലറേറ്റീവ് ഫോം ഉപയോഗിക്കുമ്പോൾ (അതായത്, ചെയ്യാനുള്ള പ്രവർത്തനങ്ങളുടെ ഒരു ക്രമം) മറ്റ് പല പ്രോഗ്രാമിംഗ് ഭാഷകളും ഒരു ഇമ്പറേറ്റീവ് ഫോം(അതായത്, ആഗ്രഹിച്ച റിസൾട്ട് എങ്ങനെ കിട്ടും വ്യക്തമാക്കിയിരിക്കുന്നു, അത് എങ്ങനെ നേടാം എന്നല്ല) എഴുതിയിരിക്കുന്നത്.
ഒരു പ്രോഗ്രാമിംഗ് ഭാഷയുടെ വിവരണം സാധാരണയായി സിന്റാക്സ് (ഫോം), സെമാന്റിക്സ് (അർത്ഥം) എന്നീ രണ്ട് ഘടകങ്ങളായി വിഭജിക്കപ്പെടുന്നു, അവ സാധാരണയായി ഒരു ഔപചാരിക ഭാഷയാൽ നിർവചിക്കപ്പെടുന്നു. ചില ഭാഷകളെ ഒരു സ്പെസിഫിക്കേഷൻ ഡോക്യുമെന്റാണ് നിർവചിച്ചിരിക്കുന്നത് (ഉദാഹരണത്തിന്, സി പ്രോഗ്രാമിംഗ് ഭാഷ ഒരു ഐഎസ്ഒ സ്റ്റാൻഡേർഡ് വ്യക്തമാക്കുന്നു) മറ്റ് ഭാഷകൾ (പേൾ പോലുള്ളവ) ഒരു റഫറൻസായി പരിഗണിക്കപ്പെടുന്ന ഒരു പ്രബലമായ ഇമ്പ്ലിമെന്റേഷൻ ഉണ്ട്. ചില ഭാഷകൾക്ക് ഇവ രണ്ടും ഉണ്ട്, അടിസ്ഥാന ഭാഷയിൽ ഒരു സ്റ്റാൻഡേർഡ് നിർവചിച്ചിരിക്കുന്നതും ഇമ്പ്ലിമെന്റേഷനിൽ നിന്ന് എടുത്ത വിപുലീകരണങ്ങളും (extensions) സാധാരണമാണ്.
പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ രൂപകൽപ്പന, നടപ്പിലാക്കൽ, വിശകലനം, ക്യാരക്ടറൈസേഷൻ, വർഗ്ഗീകരണം എന്നിവ കൈകാര്യം ചെയ്യുന്ന കമ്പ്യൂട്ടർ സയൻസിന്റെ ഒരു ഉപമേഖലയാണ് പ്രോഗ്രാമിംഗ് ഭാഷാ സിദ്ധാന്തം.