പ്രോഗ്രാമിങ് ഭാഷകളെ അവയിലുള്ള സൗകര്യങ്ങളെ അടിസ്ഥാനമാക്കി തരംതിരിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു മാധ്യമം ആണ് പ്രോഗ്രാമിങ് ശൈലികൾ. പ്രോഗ്രാമിങ് ഭാഷകളെ പല ശൈലികളായി വേർതിരിക്കാം. ചില ശൈലികൾ ഭാഷയുടെ പ്രവർത്തന മാതൃക അടിസ്ഥാനമാക്കി ചിട്ടപ്പെടുത്തിയവയാണ്. അവ പ്രവർത്തന മാതൃകയാണോ പ്രോഗ്രാമിലെ പ്രവൃത്തികളുടെ ക്രമം നിശ്ചയിക്കുന്നത് എന്നോ അല്ലെങ്കിൽ പ്രവർത്തനത്തിനിടയിൽ ബാഹ്യലോകവുമായി സംവദിക്കാൻ അനുവദിക്കുന്നുണ്ടോ എന്നെല്ലാം അടിസ്ഥാനമാക്കിയുള്ളവയാണ്. ചില ശൈലികൾ പ്രോഗ്രാമിനെ എങ്ങനെ ചെറിയ ഘടകങ്ങൾ ആയി കൂട്ടംചേർക്കുന്നു എന്നും അവ എങ്ങനെ പരസ്പരം സംവദിക്കുന്നു എന്നതിനെയും അടിസ്ഥാനമാക്കിയുള്ളവയാണ്. മറ്റു ശൈലികൾ എങ്ങനെ പ്രോഗ്രാം നിർദ്ദേശങ്ങൾ ചിട്ടപ്പെടുത്തിയിരിക്കുന്നു എന്നതിനെ മാത്രം അടിസ്ഥാനമാക്കുന്നു.
സർവസാധാരണമായ പ്രോഗ്രാമിങ് ശൈലികളാണ്[1][2][3]
- ഇംപെറേറ്റീവ് പ്രോഗ്രാമിംഗ് അഥവാ ആജ്ഞാസ്വഭാവമുള്ള ശൈലി ഇതിൽ പ്രോഗ്രാമർ കംപ്യൂട്ടറിനോട് എങ്ങനെ അതിന്റെ അവസ്ഥ വ്യത്യാസപ്പെടുത്തണമെന്ന് നിർദ്ദേശിക്കുന്നു. ഇതിനെ രണ്ടാക്കി തിരിച്ചിരിക്കുന്നു.
- പ്രോസീജറൽ പ്രോഗ്രാമിംഗ് - നിർദ്ദേശങ്ങളെ പ്രൊസീജ്യർ എന്ന ചെറിയ ഘടകങ്ങളാക്കുന്നു.
- ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ - നിർദ്ദേശങ്ങളെ ബാഹ്യലോകത്തുള്ള വസ്തുക്കളായി കാണുകയും. അവയുടെ സ്വഭാവത്തിനനുസരിച്ചുള്ള വിവരങ്ങളും പ്രവർത്തനങ്ങളും കല്പിച്ചുകൊടുക്കുകയും ചെയുന്നു.
- ഡിക്ലറേറ്റീവ് ശൈലി അഥവാ പ്രഖ്യാപന ശൈലി, ഈ ശൈലിയിൽ പ്രോഗ്രാമർ ഉദ്ദിഷ്ട ഫലത്തിന്റെ ഗുണവിശേഷങ്ങൾ പ്രഖ്യാപിക്കുന്നു എന്നാൽ എങ്ങനെ അത് കണക്കുകൂട്ടണം എന്ന് നിര്ദേശിക്കുന്നില്ല. ഈ ശൈലിയുടെ പ്രധാന ശാഖകൾ താഴെ പറയുന്നവയാണ്.
- ഫങ്ഷണൽ പ്രോഗ്രാമിംഗ് - ഫലനങ്ങളുടെ ഒരു നിരയുടെ മൂല്യമായി ഉദ്ദിഷ്ട ഫലത്തിനെ പ്രഖ്യാപിക്കുന്ന ശൈലി.
- ലോജിക് പ്രോഗ്രാമിങ് - വസ്തുതകളുടെയും നിയമങ്ങളുടെയും ഒരു വ്യവസ്ഥയെക്കുറിച്ചുള്ള ചോദ്യത്തിന്റെ ഉത്തരമായി ഉദ്ദിഷ്ട ഫലത്തെ പ്രഖ്യാപിക്കുന്നു.
- മാത്തമാറ്റിക്കൽ പ്രോഗ്രാമിങ് - ഒരു ഉത്തമീകരണ പ്രശ്നത്തിന്റെ പ്രതിവിധിയായി ഉദ്ദിഷ്ട ഫലത്തെ പ്രഖ്യാപിക്കുന്നു.
റിഫ്ലെക്ഷൻ പോലുള്ള, പ്രോഗ്രാമിനെ സ്വയം നിർദ്ദേശിക്കാൻ അനുവദിക്കുന്ന സിംബോളിക് സങ്കേതങ്ങളെയും പ്രോഗ്രാമിങ് ശൈലിയായി പരിഗണിക്കുന്നു.
ഉദാഹരണമായി ഇമ്പറേറ്റിവ് ശൈലിയിൽ വരുന്ന ഭാഷകൾ രണ്ട് പ്രധാന ലക്ഷണങ്ങൾ കാണിക്കുന്നു. ഒന്ന് അവ പ്രോഗ്രാമിലെ പ്രവൃത്തികളുടെ ക്രമം നിശ്ചയിക്കുന്നു. രണ്ടാമത് ഒരു സമയത്ത് ഒരു പ്രോഗ്രാം ഘടകം അതിനുള്ളിൽ എഴുതിയ മൂല്യം മറ്റൊരു സമയത്ത് മറ്റൊരു പ്രോഗ്രാം ഘടകത്തിനുള്ളിൽ നിന്ന് വായിച്ചെടുക്കാൻ സമ്മതിക്കുന്നു.ഇതിൽ ഘടകങ്ങൾ തമ്മിലുള്ള ആശയവിനിമയം സ്പഷ്ടമല്ല. ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങിൽ നിർദ്ദേശങ്ങൾ ഒബ്ജക്റ്റ്സ് അഥവാ വസ്തുക്കൾ ആയി സംഘടിപ്പിച്ചിരിക്കുന്നു. ഒരു ഒബ്ജക്റ്റിലെ മൂല്യങ്ങൾ അതിലെ നിർദ്ദേശങ്ങൾ കൊണ്ട് മാത്രമേ മാറ്റം വരുത്താൻ കഴിയൂ. ഒട്ടുമിക്ക ഒബ്ജക്റ്റ് ഓറിയന്റഡ് ഭാഷകളും ഇമ്പരേറ്റീവ് ശൈലിയിൽ വരുന്നു. എന്നാൽ ഡിക്ലറേറ്റീവ് ശൈലിയിലുള്ള ഭാഷകൾ പ്രവൃത്തികളുടെ ക്രമം നിജപ്പെടുത്തുന്നില്ല. പകരം അവ ചെയ്യാവുന്ന പ്രവൃത്തികളുടെ കൂട്ടവും എതൊക്കെ സാഹചര്യങ്ങളിൽ ഒരോ പ്രവൃത്തിയും ചെയ്യാമെന്നും പ്രഖ്യാപിക്കുന്നു. ഭാഷയുടെ പ്രവൃത്തി ഘടനയാണ് ഏതൊക്കെ പ്രവൃത്തികൾ ചെയ്യാം എന്നും ഏത് ക്രമത്തിൽ ചെയ്യണം എന്നും തീരുമാനിക്കുന്നത്.മൾട്ടി-പാരഡൈം പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ താരതമ്യം ചെയ്യുമ്പോഴാണ് ഇത് കൂടുതൽ സംഭവിക്കുന്നത്.
അവലോകനം
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Programming_paradigms.svg/640px-Programming_paradigms.svg.png)
സോഫ്റ്റ്വെയർ എഞ്ചിനീയറിംഗിനെ(ഒരു പ്രക്രിയ എന്ന നിലയിൽ) വ്യത്യസ്ത രീതിശാസ്ത്രങ്ങളാൽ(methodologies) നിർവചിച്ചിരിക്കുന്നതുപോലെ, പ്രോഗ്രാമിംഗ് ഭാഷകൾ (കമ്പ്യൂട്ടേഷന്റെ മാതൃകകളായി)വ്യത്യസ്ത മാതൃകകളാൽ നിർവചിക്കപ്പെടുന്നു. ചില ഭാഷകൾ ഒരു മാതൃകയെ പിന്തുണയ്ക്കുന്നതിനാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് (സ്മോൾടോക്ക് ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗിനെ പിന്തുണയ്ക്കുന്നു, ഹാസ്കെൽ ഫംഗ്ഷണൽ പ്രോഗ്രാമിംഗിനെ പിന്തുണയ്ക്കുന്നു), മറ്റ് പ്രോഗ്രാമിംഗ് ഭാഷകൾ ഒന്നിലധികം മാതൃകകളെ പിന്തുണയ്ക്കുന്നു (ഒബ്ജക്റ്റ് പാസ്കൽ, സി++, ജാവ, ജാവസ്ക്രിപറ്റ്, സിഷാർപ്, സ്കാല, വിഷ്വൽ ബേസിക്(Visual Basic), കോമൺ ലിപ്സ്, സ്കീം, പേൾ, പി.എച്ച്.പി., പൈത്തൺ, റൂബി, ഓസ്, എഫ്#).
അവലംബം
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.