"ഗ്നു കമ്പൈലർ ശേഖരം" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം

വരി 29:
 
=== മധ്യഭാഗം ===
മധ്യഭാഗം എല്ലാ പ്രോഗ്രാമിങ്ങ് ഭാഷകൾക്കും ഒന്നുതന്നെ. ഈ ഭാഗത്ത് വച്ച് പ്രോഗ്രാമുകളിൽ കമ്പൈലർ‌ പലവിധത്തിലും ഉള്ള മാറ്റങ്ങൾ വരുത്തുന്നു. അവസാനമായി ഉണ്ടാകുന്ന പ്രോഗ്രാമിന്റെ വലിപ്പം കുറക്കാനോ പ്രവർത്തന സമയത്തെ വേഗത വർദ്ധിപ്പിക്കാനോ ഒക്കെ ഉദ്ദേശിച്ചുള്ളവയാണ് ഈ മാറ്റങ്ങൾ‌. ഇതിനെ മെച്ചപ്പെടുത്തലുകൾ ([[compiler optimization|ഓപ്റ്റിമൈസേഷൻ]]) എന്ന് വിളിക്കുന്നു. ഇത്തരം മെച്ചപ്പെടുത്തലുകൾ എല്ലാ ഭാഗത്തുവച്ചും നടക്കാറുണ്ടെങ്കിലും മധ്യഭാഗത്ത് വച്ചാണ് ഏറ്റവുമധികമായി നടക്കുന്നത്. മുൻഭാഗത്തിന് പ്രോഗ്രാം എന്ത് എന്തുചെയ്യുന്നു, അതിലെ നിർദ്ദേശങ്ങൾ ഏത് ക്രമത്തിലാണ് പാലിക്കപ്പെടുക എന്നിങ്ങനെയുള്ള കാര്യങ്ങൾ അറിയാൻ സാധിക്കില്ല. നിർദ്ദേശങ്ങളെ ജെനറിക് രീതിയിലേക്ക് മാറ്റുക, പ്രോഗ്രാമിങ്ങ് ഭാഷയുടെ വ്യാകരണം പാലിക്കപ്പെട്ടിട്ടുണ്ടോ എന്നുറപ്പുവരുത്തുക എന്നിവ മാത്രമാണ് അതിന് ചെയ്യാൻ സാധിക്കുന്നത്. എന്നാൽ മധ്യഭാഗം കൂടുതൽ കാര്യക്ഷമമായ രീതിയിൽ തന്നെ പ്രോഗ്രാമിനെ അപഗ്രഥിക്കുന്നു. ഭാഷാ വ്യാകരണങ്ങൾ തുടങ്ങിയവയിൽ പ്രശ്നങ്ങൾ ഉണ്ടെങ്കിൽ ആദ്യ ഭാഗം തന്നെ ഉപഭോക്താവിന് സന്ദേശം നൽകി കമ്പൈലിങ്ങ് നിർത്തി വയ്ക്കും. ബീജഗണിത സമവാക്യങ്ങളെ ലളിതമാക്കുക മുതലായ നിരവധി മെച്ചപ്പെടുത്തലുകൾ മധ്യഭാഗം നടത്തുന്നു. ഉദാഹരണമായി, <code>a = a + 1 + 9</code> എന്ന പ്രസ്താവനയെ <code>a = a + 10</code> എന്നാക്കി മാറ്റുന്നു. പ്രോഗ്രാം പ്രവർത്തിക്കുന്ന സമയത്ത് നടക്കുമായിരുന്ന രണ്ട് സങ്കലന പ്രക്രിയകളെ ഒന്നാക്കി കുറക്കാൻ ഇതുകൊണ്ട് സാധിക്കും. മറ്റൊരു ഉദാഹരണത്തിന് ഒരു ലൂപ്പ് പരിഗണിക്കാം,
<source lang="cpp">
int a, b = 10;
"https://ml.wikipedia.org/wiki/ഗ്നു_കമ്പൈലർ_ശേഖരം" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്