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