"ഇംപെറേറ്റീവ് പ്രോഗ്രാമിംഗ്" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം

No edit summary
വരി 5:
പ്രസ്താവന പ്രോഗ്രാമിന്(declarative programming) വിപരീതമായി ഈ പദം ഉപയോഗിക്കാറുണ്ട്. പ്രോഗ്രാമിന്റെ ഫലം എങ്ങനെ നേടാം എന്ന് വ്യക്തമാക്കാതെ പ്രോഗ്രാമിന് വേണ്ടി എന്തെല്ലാം ചെയ്യണം എന്നാണ് ഇവിടെ ഊന്നിപ്പറയുന്നത്.
==ഇംപെറേറ്റീവ് പ്രോഗ്രാമിംഗും, പ്രോസീജറൽ പ്രോഗ്രാമിംഗും==
പ്രൊസീജറൽ പ്രോഗ്രാമിംഗ് എന്നത് പ്രോഗ്രാമുകൾ ഒന്നോ അതിലധികമോ നടപടിക്രമങ്ങളിൽ നിർമ്മിക്കപ്പെടുന്നനിന്ന് ഒരുപ്രോഗ്രാം പ്രോഗ്രാമിംഗ്നിർമ്മിച്ചിരിക്കുന്ന രീതിയാണ്ഒരുതരം ഇത്അവശ്യ പ്രോഗ്രാമിംഗാണ് പ്രൊസീഡ്യൂറൽ പ്രോഗ്രാമിംഗ്.([[Subroutine|സബ്റൂട്ടീനുകൾ]] അല്ലെങ്കിൽ ഫങ്ഷനുകൾ എന്നും വിളിക്കുന്നു). പദങ്ങൾ പലപ്പോഴും പര്യായങ്ങളായി ഉപയോഗിക്കുന്നു,. എന്നാൽ നടപടിക്രമങ്ങൾനടപടിക്രമങ്ങളുടെ ഉപയോഗപ്പെടുത്തുന്നു,ഉപയോഗം നിർദ്ദിഷ്ടഅവശ്യ പ്രോഗ്രാമുകൾപ്രോഗ്രാമുകളിൽ എങ്ങനെയാണ്എങ്ങനെ പ്രദർശിപ്പിക്കപ്പെടുന്നത്,പ്രത്യക്ഷപ്പെടുന്നുവെന്നും അവ എങ്ങനെയാണ്എങ്ങനെ നിർമ്മിക്കുന്നതെന്നതിനെനിർമ്മിക്കപ്പെടുന്നു സംബന്ധിച്ച് നാടകീയമായ ഒരുഎന്നതിനെ പ്രഭാവമുണ്ട്സ്വാധീനിക്കുന്നു. ക്രമാനുഗതമായഹെവി പ്രോഗ്രാമിംഗ്,പ്രൊസീജറൽ അതിൽപ്രോഗ്രാമിംഗിൽ സ്ഥാന മാറ്റങ്ങളിലുള്ളത്മാറ്റങ്ങൾ നടപടിക്രമങ്ങളിലേക്ക് പ്രാദേശിക വൽക്കരിച്ചിരിക്കുന്നുപ്രാദേശികവൽക്കരിക്കപ്പെടുന്നു അല്ലെങ്കിൽ നടപടിക്രമങ്ങളിൽ നിന്നും വ്യക്തമായ വാദങ്ങളിൽവാദഗതികളിലേക്കും നിന്നും റിട്ടേണുകൾനടപടിക്രമങ്ങളിലേക്കും പരിമിതപ്പെടുത്തിയിരിക്കുന്നു,. ഇത് ഘടനാപരമായ പ്രോഗ്രാമിംഗിന്റെ ഒരു രൂപമാണ്. 1960 കളിൽ, നിർമ്മിത പരിപാടികളുടെ മൊത്തത്തിലുള്ള നിലവാരം മെച്ചപ്പെടുത്തുന്നതിനുള്ള സാങ്കേതിക വിദ്യയായി ഘടനാപരമായ പ്രോഗ്രാമിങ്, മോഡുലാർ പ്രോഗ്രാമിംഗ് എന്നിവഎന്നിവയെ പ്രോത്സാഹിപ്പിച്ചു. [[ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ|ഒബ്ജക്റ്റ് ഓറിയെന്റഡ് പ്രോഗ്രാമിങ്ങിന്റെ]] പിന്നിലെ ആശയങ്ങൾ ഈ സമീപനം വിപുലീകരിക്കാൻ ശ്രമിക്കുന്നു.
 
ഡിക്ലറേറ്റീവ് പ്രോഗ്രാമിന്റെ ചുവട് വെയ്പായി പ്രോസീജറൽ പ്രോഗ്രാമിംഗ് പരിഗണിക്കാം. പേരുകൾ, ആർഗ്യുമെന്റ്സ്, റിട്ടേൺ രീതികൾ (ബന്ധപ്പെട്ട അഭിപ്രായങ്ങളും) എന്നിവ പരിശോധിച്ചുകൊണ്ട് പ്രോഗ്രാമർമാർക്ക് പറയാം, ഒരു പ്രത്യേക നടപടിക്രമം ചെയ്യേണ്ടത്, അതിന്റെ ഫലം എങ്ങനെ നേടാം എന്നതിന്റെ വിശദാംശങ്ങൾ ആവശ്യമില്ല. അതേ സമയംഅതേസമയം, പ്രസ്താവനകളുടെനടപ്പിലാക്കേണ്ട പരിഹാരംപ്രസ്താവനകളും മുതൽഅവയുടെ പൂർണ്ണമായനിർവ്വഹണ പ്രോഗ്രാമുകൾക്രമവും ഇന്നുംഒരു പ്രാധാന്യംപരിധി അർഹിക്കുന്നുവരെ എക്സിക്യൂട്ട് ചെയ്യുകയുംശരിയാക്കുന്നതിനാൽ ഒരു വലിയ അളവിൽപൂർണ്ണ എക്സിക്യൂട്ട്പ്രോഗ്രാം നടപ്പാക്കുകയുംഎപ്പോഴും ചെയ്യുംഅത്യന്താപേക്ഷിതമാണ്.
 
ഡിക്ലറേറ്റീവ് പ്രോഗ്രാമിന്റെ ചുവട് വെയ്പായി പ്രോസീജറൽ പ്രോഗ്രാമിംഗ് പരിഗണിക്കാം. പേരുകൾ, ആർഗ്യുമെന്റ്സ്, റിട്ടേൺ രീതികൾ (ബന്ധപ്പെട്ട അഭിപ്രായങ്ങളും) എന്നിവ പരിശോധിച്ചുകൊണ്ട് പ്രോഗ്രാമർമാർക്ക് പറയാം, ഒരു പ്രത്യേക നടപടിക്രമം ചെയ്യേണ്ടത്, അതിന്റെ ഫലം എങ്ങനെ നേടാം എന്നതിന്റെ വിശദാംശങ്ങൾ ആവശ്യമില്ല. അതേ സമയം, പ്രസ്താവനകളുടെ പരിഹാരം മുതൽ പൂർണ്ണമായ പ്രോഗ്രാമുകൾ ഇന്നും പ്രാധാന്യം അർഹിക്കുന്നു എക്സിക്യൂട്ട് ചെയ്യുകയും ഒരു വലിയ അളവിൽ എക്സിക്യൂട്ട് നടപ്പാക്കുകയും ചെയ്യും.
==ഇംപെറേറ്റീവ് പ്രോഗ്രാമിന്റെ ന്യായവാദവും അടിസ്ഥാനവും==
മിക്കവാറും എല്ലാ കമ്പ്യൂട്ടറുകളുടെയും ഹാർഡ്വെയർ നടപ്പിലാക്കേണ്ടത് അനിവാര്യമാണ്(imperative). ഏതാണ്ട് എല്ലാ കമ്പ്യൂട്ടർ ഹാർഡ്വെയറുകളും [[യന്ത്രഭാഷ|മെഷീൻ കോഡ്]] നടപ്പിലാക്കാൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്, ഇത് കമ്പ്യൂട്ടറിനോടനുബന്ധിച്ചാണ്, അത് ഇംപെറേറ്റീവ് ശൈലിയിൽ എഴുതിയിരിക്കുന്നു. നിമ്ന തലത്തിൽ(low-level)നിന്നുള്ള വീക്ഷണത്തിൽ നിന്ന്, മെമ്മറി ഉള്ളടക്കം പ്രോഗ്രാം സ്റ്റേറ്റിനാൽ നിർവചിക്കപ്പെടുന്നു, കൂടാതെ കമ്പ്യൂട്ടറിന്റെ നൈസർഗ്ഗികമായ യന്ത്ര ഭാഷയിലും നിർദ്ദേശങ്ങൾ നൽകുന്നു. ഉയർന്ന തലത്തിലുള്ള നിർദ്ദിഷ്ട ഭാഷകൾ വേരിയബിളുകളും കൂടുതൽ സങ്കീർണ്ണമായ പ്രസ്താവനകളും ഉപയോഗിക്കുന്നു, പക്ഷേ ഇപ്പോഴും അതേ മാതൃക പിന്തുടരുന്നു. കാര്യനിർവ്വഹണമാർഗ്ഗങ്ങൾ, പ്രോസസ് ചെക്ക് ലിസ്റ്റുകൾ, കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകൾ ഇല്ലാത്തപ്പോൾ, ഇംപെറേറ്റീവ് പ്രോഗ്രാമിങ് രീതിയിൽ സമാനമായ പരിചിതമായ ആശയങ്ങളാണിവ. ഓരോ ചുവടിലും നിർദ്ദേശങ്ങൾ അടങ്ങിയിട്ടുണ്ട്, ഭൗതിക ലോകം ഈ അവസ്ഥയെ നിലനിർത്തുന്നു. ഇംപെറേറ്റീവ് പ്രോഗ്രാമിംഗിന്റെ അടിസ്ഥാന ആശയങ്ങൾ മുതൽ രണ്ടും ആശയപരമായി സുപരിചിതങ്ങളാണ്, നേരിട്ട് ഹാർഡ്വെയർ തത്ത്വങ്ങളെ പ്രവർത്തനങ്ങളിലൂടെ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, മാത്രമല്ല മിക്ക കമ്പ്യൂട്ടർ ഭാഷകളും ഇംപെറേറ്റീവ് ശൈലിയിലാണ് തുടർന്നുപോരുന്നത്. അസൈൻമെന്റ് പ്രസ്താവനകൾ, ഇംപെറേറ്റീവ് ശൈലിയിൽ, മെമ്മറിയിൽ ലഭ്യമായിട്ടുള്ള വിവരങ്ങളിൽ ഒരു പ്രവർത്തനം നടത്തുകയും, പിന്നീട് ഉപയോഗത്തിനായി മെമ്മറിയിൽ സൂക്ഷിക്കുകയും ചെയ്യുന്നു. ഉയർന്ന തലത്തിലുള്ള ഇംപെറേറ്റീവ് ഭാഷകൾ കൂടാതെ, സങ്കീർണ്ണമായ എക്സ്പ്രഷനുകളുടെ വിലയിരുത്തൽ അനുവദിക്കുന്നു, അരിത്മെറ്റിക് പ്രവർത്തനവും ഫങ്ഷൻ മൂല്യനിർണ്ണയവും ചേർന്ന ഒരു സംഖ്യയും, കൂടാതെ മെമ്മറിയിലേക്കുള്ള തൽസമയ മൂല്യത്തിന്റെ അസൈൻമെന്റും ഉൾപ്പെടുന്നു. ലൂപ്പുചെയ്യുന്ന സ്റ്റേറ്റ്മെന്റുകൾ (വൈയിൽ ലൂപ്പ്(while loop), ഡു വൈൽ ലൂപ്പ്(do while loop), ഫോർ ലൂപ്പ്(for loop))ഒന്നിലധികം തവണ സ്റ്റേറ്റ്മെന്റിന്റെ ശ്രേണി എക്സിക്യൂട്ട് ചെയ്യാൻ അനുവദിക്കുന്നു. ലൂപ്പിന് ഒന്നുകിൽ മുൻനിർവചിച്ച തവണവരെ സ്റ്റേറ്റ്മെന്റ് എക്സിക്യൂട്ട് ചെയ്യാം അല്ലെങ്കിൽ ചില വ്യവസ്ഥകൾ മാറ്റുന്നതുവരെ അവ ആവർത്തിച്ചു നിർവ്വഹിക്കാൻ കഴിയും. ചില വ്യവസ്ഥകൾ പാലിക്കപ്പെട്ടിട്ടുണ്ടെങ്കിൽ മാത്രമേ വ്യവസ്ഥാപിത ബ്രാഞ്ചിംഗ് പ്രസ്താവനകൾ നടപ്പിലാക്കാൻ അനുമതിയുള്ളൂ. അല്ലെങ്കിൽ, പ്രസ്താവനകൾ ഒഴിവാക്കിയശേഷം, സ്റ്റേറ്റ്മെന്റ് അവയെ പിന്തുടരുകയും നിർവഹണ ശ്രേണി തുടർന്നുവരുകയും ചെയ്യുന്നു. ഒരു പ്രോഗ്രാമിന്റെ മറ്റൊരു ഭാഗം കൈമാറുന്ന നിർവഹണ ശ്രേണി നിരുപാധിക ബ്രാഞ്ചിംഗ് പ്രസ്താവനകൾ അനുവദിക്കുന്നു. ഇവിടെ ജമ്പ് ഉൾപ്പെടുന്നു(പല ഭാഷകളിലും ഗോടു(goto) എന്നു വിളിക്കുന്നു), സ്വിച്ചുപ്രോഗ്രാം, അതിന്റെ ഉപപ്രോഗ്രാം സബ്റൂട്ടീൻ, അല്ലെങ്കിൽ പ്രൊസീജർ കോൾ (കോൾ കഴിഞ്ഞാൽ ഇത് സാധാരണയായി അടുത്ത പ്രസ്താവനയിലേക്ക് മടങ്ങുന്നു). ഉയർന്ന നിലവാരമുള്ള പ്രോഗ്രാമിങ് ഭാഷകളുടെ തുടക്കത്തിൽ, ബ്ളോക്കിലെ ആമുഖം ഒരു കൂട്ടം സ്റ്റേറ്റ്മെൻറുകളും പ്രഖ്യാപനങ്ങളും ഒറ്റ പ്രസ്താവനയായി കണക്കാക്കിയിരുന്ന പ്രോഗ്രാമുകളുടെ നിർമ്മാണത്തെ സഹായിച്ചു. സബ്റൂട്ടീനുകളുടെ മുഖവുരയോടൊപ്പം, ലളിതമായ പ്രക്രിയാപരമായ ഘടനയിലേക്ക് ഹയറാജിക്കൽ സിദ്ധാന്തം അവതരിപ്പിക്കുന്നതിന് സങ്കീർണ ഘടനകളെ പ്രാപ്തമാക്കി. പല ഇംപെറേറ്റീവ് പ്രോഗ്രാമിങ് ഭാഷകളും ([[ഫോർട്രാൻ]], [[ബേസിക്]], [[സി (പ്രോഗ്രാമിങ് ഭാഷ)|സി ]]എന്നിവ പോലുള്ളവ) [[അസെംബ്ലി ഭാഷ|അസംബ്ലിഭാഷയുടെ]] അമൂർത്തമാണ്.<ref>{{cite book|author=Bruce Eckel|title=Thinking in Java|url=https://books.google.com/?id=bQVvAQAAQBAJ&pg=PA24&lpg=PA24&dq=imperative#v=onepage&q=imperative&f=false|publisher=[[Pearson Education]]|year=2006|isbn=978-0-13-187248-6|page=24}}</ref>
"https://ml.wikipedia.org/wiki/ഇംപെറേറ്റീവ്_പ്രോഗ്രാമിംഗ്" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്