കമ്പ്യൂട്ടറുകൾ, പ്രോഗ്രാമിംഗ്
"എന്താണ് ഈ" സ്റ്റാക്കിൽ വന്നത്, "എന്താണ് അത്" വന്നത്: യാഥാർത്ഥ്യങ്ങളുടെ അമൂർത്ത അടിസ്ഥാനം
ചില ഭാവിയിൽ കമ്പ്യൂട്ടിംഗ് ബിസിനസ്സ് പൂജ്യങ്ങളെപ്പറ്റിയും മറ്റും മറക്കും, പ്രോസസ്സർമാർ ബൈറ്റുകളും വാക്കുകളും പ്രവർത്തിക്കില്ല, പക്ഷെ ഇതെല്ലാം ബൈനറി ലോകം പ്രതിനിധാനം ചെയ്യുകയും അതിന്റെ നിയമങ്ങൾ അനുസരിക്കുകയും ചെയ്യുന്നു. എന്താണ് സ്റ്റാക്ക്, എങ്ങനെയാണ് ഇത് പ്രയോഗിക്കപ്പെടാറ് - മിക്കതും വ്യക്തമാവില്ല. തുടക്കത്തിൽ തന്നെ, ആദ്യ പ്രോസസ്സർ റജിസ്റ്റർ ചെയ്തിരുന്നു, അതിന്റെ പ്രവർത്തനത്തിന്റെ യുക്തിക്ക് മെമ്മറി ആവശ്യമാണ്. ലളിതമായ ആശയങ്ങൾ നടപ്പാക്കുന്നതിന്റെ ഫലമായി, "എന്തൊക്കെ" എന്ന സ്റ്റാക്ക് യഥാർത്ഥത്തിൽ "അത്യാവശ്യമാണ്".
പ്രവർത്തനങ്ങൾ, പ്രൊസസ്സർ, ബൈനറി ലോജിക്
പ്രൊസസ്സർ മെമ്മറി കൈകാര്യം ചെയ്യുകയും സൈക്ലിക് കോഡ് എക്സിക്യൂഷൻ യുക്തിപ്പെടുത്തുകയും ചെയ്യുന്നു. ഒരു പ്രോഗ്രാം എന്നത് ഒരു കൂട്ടം പ്രവർത്തനങ്ങൾ പ്രതിനിധീകരിക്കുന്ന ഒന്നോ അതിലധികമോ പ്രവർത്തനങ്ങൾ ആണ്: എന്തെങ്കിലും തിരഞ്ഞെടുക്കുക, അങ്ങനെ ചെയ്യുക, അവിടെ എന്തെങ്കിലും ഇടുക. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഒരു ഉത്തരവാദിത്തവും ഒരു ഉത്തരവാദിത്തമല്ല. മറ്റ് പ്രോഗ്രാമുകൾ എക്സിക്യൂട്ട് ചെയ്യുന്നതിനും നിരീക്ഷിക്കുന്നതിനും നിർദ്ദേശിക്കപ്പെട്ടിട്ടുണ്ട്.
യഥാർത്ഥത്തിൽ, ഫങ്ഷൻ (അൽഗോരിതം സ്വതന്ത്ര ഘടകം) ബൈനറി പ്രവർത്തനങ്ങളുടെ ഒരു ശ്രേണിയാണ്. പരിപാടിയിൽ നിന്ന് വ്യത്യസ്തമായി, പ്രോഗ്രാമിൽ നിന്ന് വ്യത്യസ്തമായി, പ്രോഗ്രാമിൽ നിന്ന് വ്യത്യസ്തമായി, കോഡിന്റെ മറ്റ് ഭാഗങ്ങളെ ഏകോപിപ്പിക്കുകയും ചെയ്യുന്നു.
അൽഗോരിതം പ്രത്യേക സ്വതന്ത്ര ഘടകങ്ങളുടെ ഒരു ശ്രേണിയായി വികസിപ്പിച്ചാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. ഓരോരുത്തരും സ്വന്തമായി (സാധാരണയായി ഒരേയൊരു) ഫംഗ്ഷൻ നൽകുന്നു - ഡീബഗ്ഗിങ്ങിനും, ഗ്രാഫിക്കിനും, പ്രായോഗികമായിമായി ഇത് സൗകര്യപ്രദമാണ്. അത്തരം പ്രോഗ്രാമിങ്, വികസന പ്രക്രിയ ലഘൂകരിക്കുന്നതിനും, അൽഗോരിതം ലൈബ്രറികൾ ഉണ്ടാക്കുന്നതിനും, മറ്റ് പ്രോജക്ടുകളിൽ അവ ഉപയോഗിക്കാനും സഹായിക്കുന്നു.
ട്രാൻസ്ഫർ ആൻഡ് റിട്ടേൺ മാനേജ്മെന്റ്
പ്രോഗ്രാം ഫങ്ഷൻ വിളിക്കുകയും ഡാറ്റ കൈമാറ്റം ചെയ്യുക വഴി ഫലം ലഭിക്കാൻ പ്രതീക്ഷിക്കുകയും ചെയ്യുന്നു. കോഡിലെ മറ്റൊരു ഭാഗം നടപ്പാക്കുന്നത് പുറത്തുവരുന്നു, അതിനാൽ കോൾ കഴിഞ്ഞ് അടുത്ത ഓപ്പറേഷനിൽ നിയന്ത്രണം തിരികെ നൽകണം. ഈ സംവിധാനം കോഡ് നടപ്പിലാക്കുന്നതിനുള്ള ഉത്തരവും പ്രോഗ്രാം ഫലത്തിന്റെ ഫലമായ നേട്ടവും ഉറപ്പ് വരുത്തുന്നു.
കോഡ് മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്ത് തുടർച്ചയായി എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഒരു ഫങ്ഷൻ (കോഡിന്റെ മറ്റൊരു ഭാഗം) വിളിക്കാൻ ഒരു സ്റ്റാക്ക് ഉപയോഗിക്കുന്നു. ഇത് എന്താണ്? മെമ്മറി (അതിനു് പോയിന്റർ), അത് സാധാരണ മറ്റൊന്നുമല്ലെങ്കിൽ, ഓരോ അടുത്ത മൂലകവും മുമ്പത്തെക്കാൾ മുകളിലായി കിടക്കുന്നു. അതുകൊണ്ട്, താഴെ കൊടുത്തിരിക്കുന്ന എല്ലാവരേയും ലഭിക്കാൻ, അതിനപ്പുറമുള്ള എല്ലാ കാര്യങ്ങളും നിങ്ങൾ എടുത്ത് പ്രവർത്തിക്കുകയും വേണം. പോയിന്റർ എല്ലായ്പ്പോഴും സ്റ്റാക്കിലെ നിലവിലെ സ്ഥാനം ചൂണ്ടിക്കാണിക്കുന്നു.
തുടക്കത്തിൽ, തിരികെ ലഭിക്കുന്ന വിലാസം സ്റ്റാക്കിലുണ്ട് - കോളിനുശേഷം അടുത്ത പ്രവർത്തനത്തിന്റെ വിലാസം. തുടർന്ന്, ഫങ്ഷൻ നിർവ്വഹിക്കേണ്ട എല്ലാ ഡേറ്റായും അവിടെ സ്ഥാപിക്കുന്നു. വിളിക്കപ്പെട്ട ഫംഗ്ഷൻ ഡാറ്റ തിരഞ്ഞെടുക്കുകയും പ്രക്രിയപ്പെടുത്തുകയും സ്റ്റാമ്പിന്റെ അവസാന ഘടകത്തെ നിയന്ത്രണം നൽകുകയും ചെയ്യുന്നു. കമാൻഡ്: "ഇതു്" മുമ്പത്തെ സൂചികയിലേക്ക് പോയിന്റിലേക്കു് നീക്കുന്നു, തിരഞ്ഞെടുത്തതു് "ഇതു്" പ്രക്രിയയിലേക്കു് പോകുന്നു.
വിവരശേഖരണം ആരംഭിക്കുന്ന കാലഘട്ടത്തിലെ ഒരു തരം പ്രതീകമായി AX, BX, CX, DX, EX എന്നിവ രജിസ്റ്റർ ചെയ്യുന്നു, എന്നാൽ SP ഉം SS ഉം അതിന്റെ പ്രധാന ടാലിൽമാൻ ആണ്. പ്രോഗ്രാമിങ്ങിൽ സ്റ്റാക്കുകൾ എങ്ങനെയാണ് ഉപയോഗിക്കുന്നത്? ഭൂതകാലത്തിന്റെ ഉദാഹരണങ്ങൾ യുഗത്തിന്റെ ആരംഭത്തിന്റെ ഘടനയുടെ സ്മാരകങ്ങളായി തീരുന്നില്ല. "ഫങ്ഷൻ", "റീചർഷൻ" എന്നീ വാക്കുകൾക്കൊപ്പം ബിനാലെ വേൾഡ് സ്റ്റാക്കിൽ പ്രോഗ്രാക്ക് പരിശീലന പരിപാടിയുടെ പൊതുവായ യുക്തിയിൽ അപ്രത്യക്ഷമായി.
എന്ത് ചെയ്യണമെന്ന് തീരുമാനിക്കുന്നതിന് ഡാറ്റ നൽകൽ
റിക്കറിഷൻ ഉൾപ്പെടെ കോഡുകളുടെ വിവിധ ഭാഗങ്ങളിലേക്ക് ഒന്നിലധികം കോളുകൾ സ്റ്റാക്കിംഗ് സംവിധാനം അനുവദിക്കുന്നു: ഒരു ഫങ്ഷൻ തന്നെ വിളിക്കുക. സ്വാഭാവിക പരിമിതികൾ ഉണ്ട്: സ്റ്റാക്ക് മെമ്മറിയുടെ വലുപ്പം, കോഡ് എന്നിവ മതിയാകും. പ്രോഗ്രാം ശരിയാണെങ്കിൽ, അതിന്റെ പ്രവർത്തനം സുസ്ഥിരമായിരിക്കും, ട്രാൻസ്ഫർ / റിട്ടേൺ നിയന്ത്രണം - കൃത്യമായത്.
സ്റ്റേക്ക് പൂശിയ വീണതുപോലെ, സ്റ്റാക്ക് നിറഞ്ഞു, അത് പട്ടികയെ സേവിക്കാൻ അയയ്ക്കപ്പെടുന്നു. അവയുടെ സ്ഥാനങ്ങൾ, അതായത്, അവരുടെ നിറച്ചിൽ, അതു മാറ്റുന്ന സ്ഥലത്ത് നിശ്ചയിക്കപ്പെടുന്നു. ഇടപെടലിന്റെ യുക്തിയുടെ അടിസ്ഥാനത്തിൽ, സംഘം "എന്താണെന്നു കൽപ്പിക്കുക" എന്ന് വിളിക്കുകയും, ആരെയാണ് വിളിച്ചതെന്ന് വിളിക്കുകയും ചെയ്തയാൾ തമ്മിലുള്ള ബന്ധം മുൻകൂട്ടി നിശ്ചയിക്കുകയും ചെയ്തു. പ്രക്രിയ പൂർത്തിയാക്കിയ ശേഷം, പട്ടികയിലേക്ക് സ്റ്റാക്ക് അയയ്ക്കുന്നതിനുള്ള അടുത്ത അക്കത്തിലേക്ക് കൺട്രോൾ വീണ്ടും സൂക്ഷിക്കേണ്ടത് പ്രധാനമാണ്.
വളരെ ലളിതവും ഫലപ്രദവുമായ ലോജിക്. മേശപ്പുറത്ത് എന്ത് സംഭവിക്കുന്നു, എങ്ങനെ തീരുമാനമെടുക്കുന്നു - ഫംഗ്ഷന്റെ ഫംഗ്ഷൻ, അത് എങ്ങനെയാണ് കൈമാറ്റം ചെയ്യപ്പെട്ട ഡാറ്റയെ കൈകാര്യം ചെയ്യേണ്ടതെന്നത് - അതിന്റെ ആശങ്ക, ഏത് ടേബിളിൽ അതിന്റെ സ്റ്റാക്ക് അയയ്ക്കണം - അതിന്റെ ആശങ്ക, പ്രധാന കാര്യം, കോൾ കഴിഞ്ഞാൽ അടുത്ത ഓപ്പറേഷനിലേക്ക് മാനേജ്മെൻറ് എപ്പോഴും തിരിച്ചെത്തുന്നു എന്നതാണ്. റിക്കോർഷൻ അനുവദിച്ചാൽ മാത്രം ഒരു ഫങ്ഷൻ തന്നെ വിളിക്കാൻ കഴിയും, കൂടാതെ സ്റ്റാക്കിൽ ഡാറ്റ സൂക്ഷിക്കുകയാണെങ്കിൽ മാത്രമേ റിക്കർഷൻ സാധ്യമാകൂ.
അടിസ്ഥാനപരമായ അമൂർത്തത
ദൈനംദിനവും പ്രായോഗികവുമായ ഒരു വിർച്വൽ വീക്ഷണത്തിന്റെ അടിത്തറയായിത്തീരുമ്പോൾ, ഒരാളുടെ ഉർവശിവാസിക്കും ദീർഘായുസ്സിനും ന്യായമായും ആശ്രയിക്കാവുന്നതാണ്. കൈത്തറകളുടെ ഒരു ശേഖരം സ്റ്റാക്കിലേക്ക് ജീവൻ തന്നു. സ്റ്റാക്ക്, ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾ, പരിപാടികൾ, പ്രവർത്തനങ്ങൾ, ഹൈ ടെക്നോളജികളുടെ സാദ്ധ്യതകൾ എന്നിവയെല്ലാം സ്റ്റാക്ക് നൽകി.
ലളിതമായ അടിസ്ഥാനം അടിസ്ഥാനമാക്കിയുള്ള ഒരു ക്ലാസിക് കേസ്, എന്നാൽ അപൂർവ സാഹചര്യങ്ങളിൽ, വാക്യഘടന, സെമന്റിക്കുകൾ, പ്രോഗ്രാമിങ് രീതികൾ, മുൻഗണനകൾ എന്നിവയെക്കുറിച്ച് നിലനിൽക്കുന്ന ഭാഷകളിലെ പോരാട്ടങ്ങളിൽ ഒഴിഞ്ഞ വാദങ്ങളില്ലാതെ കണക്കാക്കാൻ കഴിയുന്നത് എപ്പോഴാണെന്നത്.
ഒരു മെമ്മറി സെൽ എന്ന പോലെ വേരിയബിൾ ഇന്നും തുടർന്നു. ഇപ്പോൾ അതിനെക്കുറിച്ചുള്ള ആശയങ്ങൾ മാറിയിട്ടുണ്ട്. കർശനമായ ടൈപ്പിക്കലിനുള്ള ആത്മകഥയിലൂടെ ആത്മവിശ്വാസത്തോടെ കടന്നുവന്നിരുന്ന അവർ ഇപ്പോൾ ഇങ്ങനെ പറയുന്നു: എന്തെങ്കിലും എന്തെങ്കിലും ഉണ്ടാവുകയും യഥാർത്ഥ മെമ്മറിയിൽ എടുക്കുകയും ചെയ്യാം, കാരണം അത് പ്രധാനപ്പെട്ടതല്ല.
അസൈൻമെന്റ്, കണ്ടീഷൻ, ലൂപ്പ്, ബ്ളോക്ക് ... ഓപ്പറേറ്റർമാർ സെമാന്റിക് പ്ലാനിൽ വളരെ കുറവുള്ളവരാണ്, പക്ഷേ സിന്റാക്സ് നീണ്ട അപ്രസക്തമാണ്. പ്രോഗ്രാമിങ് ഭാഷാ ആശയങ്ങളുടെ ആശയങ്ങൾ അവയിൽ ഒരെണ്ണം നേടിയെടുക്കാൻ അവസരം ലഭിച്ചില്ല. ഉപകരണം (കംപൈലർ / ഇന്റർപ്രെറ്റർ / ഷെൽ) പ്രവർത്തിക്കണം, സുസ്ഥിരവും പൂർണ്ണമായും പ്രവർത്തിക്കണം, എങ്ങനെ എഴുതണം / ഉപയോഗിക്കേണ്ടത് പ്രോഗ്രാമറുടെ ആശയം അല്ല, ഭാഷാ എഴുത്തുകാരനല്ല.
വികസിക്കുന്ന പ്രാതിനിധ്യങ്ങളും സാങ്കേതികവിദ്യകളും ഈ ആഗോള പ്രക്രിയയിൽ സ്റ്റാക്ക് ഒരു പുതിയ അർത്ഥം നേടി. അവർ സൗകര്യപ്രദമായിട്ടുള്ള രൂപങ്ങളിൽ വേരിയബിളുകൾ പരസ്പരം പിളർന്നിരിക്കുന്നു, ഒപ്പം അൽഗോരിതങ്ങളും ഓപ്പറേറ്റർമാരും പരസ്പരം ഉൾപ്പെടുത്തുന്നു. പലപ്പോഴും പ്രോട്ടോകോൾ സ്റ്റാക്കിനെക്കുറിച്ച് നിങ്ങൾക്ക് കേൾക്കാൻ കഴിയും, ഒരാൾ മറ്റൊരാളുടെ ജോലി നൽകുന്നു.
സ്റ്റാക്ക്, ഫംഗ്ഷണാലിറ്റി, റിക്കറിഷൻ എന്നിവ പരസ്പരം സമാനമല്ലെങ്കിലും അവ പരസ്പരം പൂർണമായി പര്യവസാനിക്കുന്നു, വിവരങ്ങൾ പ്രദർശിപ്പിച്ച് പ്രക്രിയപ്പെടുത്തുന്നതിന് നിങ്ങൾക്ക് അദ്വിതീയ ഓപ്ഷനുകൾ സൃഷ്ടിക്കാൻ ഇത് അനുവദിക്കുന്നു.
Similar articles
Trending Now