കമ്പ്യൂട്ടറുകൾ, പ്രോഗ്രാമിംഗ്
പ്രക്ഷേപണം - ആണ് ... കമ്പൈലറുകളിലെ തരം. പരിവർത്തനം പ്രക്ഷേപണം പരിപാടികൾ
തമ്മിൽ ഒരു ഭാഷയിൽ നിന്ന് വിവർത്തനം ചെയ്യാൻ പ്രോഗ്രാമുകൾ, അതുപോലെ ആളുകൾ വ്യാഖ്യാതാവിനെ, തര്ജ്ജമ ആവശ്യമാണ്.
അടിസ്ഥാന ആശയങ്ങൾ
പ്രോഗ്രാം കണക്കുകൾ ഭാഷാപരമായും പ്രാതിനിധ്യം; ഞാൻ → പി → പി (ഐ). ഒരു ഇന്റർപ്രറ്റർ ഇൻപുട്ട് പ്രോഗ്രാം പി ചില ഇൻപുട്ട് x വിതരണം ഒരു പ്രോഗ്രാം ആണ്. ഇത് പി X ന് നടപ്പിലാക്കിയ: ഞാൻ (പി, X) = പി (X). ഒരേയൊരു വിവർത്തകൻ അവിടെ (ഔദ്യോഗിക സിസ്റ്റം പ്രാതിനിധ്യം കഴിയും) എല്ലാ പരിപാടികളും പ്രകടനം കഴിവുള്ള വസ്തുത വളരെ അഗാധമായ ഗണ്യമായി കണ്ടെത്തൽ ട്യൂറിംഗ് ആണ്.
പ്രോസസർ മെഷീൻ ഭാഷയിൽ പരിപാടികൾ ഒരു ഇന്റെർപ്രെറ്റർ. സാധാരണയായി ഉന്നതതലഭാഷകളിൽ വേണ്ടി വ്യാഖ്യാതാക്കൾ എഴുതാൻ വളരെ ചെലവേറിയ, അവർ വ്യാഖ്യാനിക്കാൻ എളുപ്പം ഒരു ഫോം വിവർത്തനം.
പരിഭാഷകരുടെ ചില തരത്തിലുള്ള വളരെ വിചിത്രമായ പേരുകൾ:
- അസെംബ്ലറിൽ മെഷീൻ ഭാഷയിലേക്ക് അസംബ്ലി ഭാഷ പരിപാടികൾ വിവർത്തനം.
- കംപൈലർ ഒരു താഴ്ന്ന ഭാഷ ഒരു ഉന്നതതല ഭാഷ വിവർത്തനം.
പി → എക്സ് →, ∀ക്സ അത് ചോദ്യം: - പ്രക്ഷേപണം ചില ഭാഷ എസ് പ്രോഗ്രാം ഇൻപുട്ട് ഡാറ്റ എടുത്ത് അവർ ഇരുവരും ഒരേ സെമാന്റിക്കുകൾക്കും ഉണ്ടെന്ന് വിധത്തിൽ ടി പ്രോഗ്രാം ഉളവാക്കുന്നു ഒരു പ്രോഗ്രാമാണ്. പി (X) = Q, (x).
ഇംതെര്പ്രെതബ്ലെ എന്തെങ്കിലും മുഴുവൻ പ്രോഗ്രാം പ്രക്ഷേപണം, അത് വധശിക്ഷ, അല്ലെങ്കിൽ Aot സമാഹരിക്കുന്നതിനിടെ മുമ്പ് സമാഹാരമാണ് വിളിക്കുന്നു. Aot കംപൈലർ ഉദാഹരണത്തിന്, പരമ്പര ഉപയോഗിക്കാൻ കഴിയും പലപ്പോഴും അസെംബ്ലറിൽ ആണ് പിന്നത്തെ:
സോഴ്സ് കോഡ് കമ്പൈലർ → (പരിഭാഷകൻ) → → നിയമസഭാ കോഡ് അസെംബ്ലറിൽ (കമ്പൈലർ) → → സിപിയു മെഷീൻ കോഡ് (ദ്വിഭാഷിയായിരുന്ന).
നേരത്തെ സമാഹരിച്ച ഭാഗം വധിക്കുകയുണ്ടായി വരുമ്പോൾ എങ്കിൽ, പ്രോഗ്രാം പ്രക്ഷേപണമാണ് പ്രവർത്തന അല്ലെങ്കിൽ ഡൈനമിക് കമ്പൈലുചെയ്യൽ സംഭവിക്കുന്നത്. ജെഐടി-കമ്പൈലറുകൾ അവർ ഇതിനകം വീണ്ടും വീണ്ടും സോഴ്സ് കോഡ് ആവർത്തിക്കാതിരിക്കാൻ അങ്ങനെ ചെയ്തതു ഇന്നതു ഓർക്കുക. അവർ പോലും പ്രോഗ്രാം എക്സിക്യൂഷൻ പരിസ്ഥിതി പെരുമാറ്റത്തെ അടിസ്ഥാനമാക്കി അഡാപ്റ്റീവ് കമ്പൈലിങ്, രെചൊംപിലതിഒന് ഉത്പാദിപ്പിക്കാൻ കഴിയും.
പല ഭാഷകളിൽ കമ്പൈൽ കോഡ് നിർവ്വഹിച്ച് പ്രവർത്തന പുതിയ കോഡ് സമാഹരിക്കാൻ അനുവദിക്കുന്നു.
വിവർത്തന ഘട്ടത്തിൽ
ബ്രോഡ്കാസ്റ്റ് വിശകലനം സ്യ്ംഥെസിജിന്ഗ് എന്ന നടപടികൾ അടങ്ങുന്നതാണ്:
സോഴ്സ് കോഡ് അനലൈസർ → ലക്ഷ്യം കോഡ് → → → സങ്കൽപ്പവും പ്രാതിനിധ്യം ജനറേറ്റർ (സിന്തസൈസർ).
ഈ കാരണങ്ങൾ കാരണം:
- മറ്റേതെങ്കിലും രീതി അനുയോജ്യമല്ലാത്ത. വാക്കിന് വിവർത്തനം ലളിതമായി പ്രവർത്തിക്കുന്നില്ല.
- നല്ല എഞ്ചിനീയറിംഗ് പരിഹാരം: നിങ്ങൾ എം, എൻ സോഴ്സ് ഭാഷകളിൽ പരിഭാഷകരേയും എഴുതണമെങ്കിൽ ലക്ഷ്യം പകരം എം × എൻ സങ്കീർണ്ണമായ (പരിഭാഷകരുടെ മൊത്തം) അധികം മാത്രം എം + N ലളിതമായ പരിപാടികൾ (പൊലുകൊംപില്യതൊരൊവ്) ആവശ്യമുണ്ടെങ്കിൽ.
എന്നാൽ, പ്രാക്ടീസ്, വളരെ കൂടക്കൂടെ മതി വികാരാധീനനും ലഭ്യമായ എല്ലാ ഉറവിട, ടാർഗെറ്റ് ഭാഷകൾ മൂടി മാത്രം ശക്തമായിരുന്നില്ല ഒരു പഠനവിഷയം കാഴ്ചയിൽ. ചില അടുത്ത ഈ വരാൻ സാധിച്ചു സമയത്ത്.
റിയൽ കമ്പൈലറുകൾ പല ഘട്ടങ്ങളിലായി കടന്നു. നിങ്ങളുടെ സ്വന്തം കമ്പൈലർ സൃഷ്ടിക്കുമ്പോൾ ജനം പ്രതിനിധാനങ്ങളും ജനറേറ്ററുകൾ സൃഷ്ടിക്കാൻ ചെയ്തതു എല്ലാ കഠിനാധ്വാനവും ആവർത്തിക്കാൻ ആവശ്യമില്ല. നിങ്ങൾ ജാവാസ്ക്രിപ്റ്റ് സി നേരിട്ട് നിങ്ങളുടെ ഭാഷ വിവർത്തനം ബാക്കി ചെയ്യാൻ നിലവിലുള്ള ജാവാസ്ക്രിപ്റ്റ്-എഞ്ചിൻ, C കമ്പൈലർ മുതലെടുക്കാൻ കഴിയും. നിങ്ങൾക്ക് നിലവിലുള്ള ഇന്റർമീഡിയറ്റ് പ്രാതിനിധ്യം ഉപയോഗിക്കാനും കഴിയുന്ന വെർച്വൽ മെഷീനുകൾ.
റെക്കോർഡ് പരിഭാഷകൻ
ഉറവിടം, ലക്ഷ്യസ്ഥാനം, അടിസ്ഥാന: - പ്രക്ഷേപണം മൂന്ന് ഭാഷകളിൽ ഉൾപ്പെട്ട ഒരു പ്രോഗ്രാം അല്ലെങ്കിൽ ഹാർഡ്വെയർ, ആണ്. അവർ ഒരു ടി-ആകൃതിയിൽ എഴുതിയ കഴിയും യഥാർത്ഥ ഇടത് നല്കുന്നതിനു ശരിയും താഴെ അടിസ്ഥാന ടാർഗെറ്റുചെയ്യുന്നില്ല.
കമ്പൈലറുകളിലെ മൂന്ന് തരം ഉണ്ട്:
- പ്രക്ഷേപണം - അത് അടിസ്ഥാന ഉറവിട ഭാഷ യോജിക്കുന്നുവോ എന്ന് സമൊകൊംപില്യതൊര് ആണ്.
- ഭാഷ ലക്ഷ്യമിട്ടതെന്ന് ഏത് കമ്പൈലർ സമൊരെജിദെംത്ംയ്മ് വിളിച്ചു, രേഖയെ ആണ്.
- പ്രക്ഷേപണം - ഒരു ക്രോസ്-കംപൈലർ, അവൻ ലക്ഷ്യം അടിസ്ഥാന വിവിധ ഭാഷകളിൽ എങ്കിൽ.
എന്തുകൊണ്ട് ഈ പ്രധാനമാണ്?
: ഉപയോഗിച്ചത് ആശയം ഉദാഹരണത്തിന്, പരക്കെ ഉപയോഗിക്കുന്ന കാരണം നിങ്ങൾ ഒരു യഥാർത്ഥ കമ്പൈലർ, അതിന്റെ സൃഷ്ടിയുടെ സാങ്കേതികവിദ്യ ഒരു നല്ല അറിവ് ഒരിക്കലും പോലും
- ടെക്സ്റ്റ് ഫോർമാറ്റിംഗ്;
- ഭാഷാ അന്വേഷണങ്ങൾ ഡാറ്റബേസുകളിലേക്ക്;
- വിപുലമായ രീതികൾക്ക്;
- സഹചര ഒപ്റ്റിമൈസേഷൻ പ്രശ്നങ്ങൾ;
- ചിലതെല്ലാം;
- സ്ക്രിപ്റ്റിംഗ് ഭാഷകൾ;
- കണ്ട്രോളറുകൾ;
- വെർച്വൽ മെഷീനുകൾ;
- യാന്ത്രിക വിവർത്തനം.
കൂടാതെ, നിങ്ങൾ വന്നെങ്കിലും, ലിന്കെര്സ്, ലോഡറുകളും ഡീബഗേഴ്സിനെ ആൻഡ് പ്രൊഫിലെര്സ് എഴുതാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾ ഒരു കമ്പൈലർ എഴുതുമ്പോൾ അതേ ഘട്ടങ്ങളിലൂടെ പോയി വേണം.
നിങ്ങൾക്ക് ഭാഷയ്ക്കുള്ള വിവർത്തകൻ സൃഷ്ടി അതിന്റെ െൻ ആൻഡ് നാട്ടുരാജ്യങ്ങളെയും മികച്ച ധാരണ എന്നാണ് ശേഷം എങ്ങനെ, മെച്ചപ്പെട്ട പ്രോഗ്രാമുകൾ എഴുതാൻ പഠിക്കാം. പ്രക്ഷേപണ പൊതു തത്ത്വങ്ങൾ കുറിച്ചുള്ള പഠനവും നിങ്ങൾ ഒരു നല്ല ഡിസൈനർ ഭാഷ ആകാൻ അനുവദിക്കുന്നു. അങ്ങനെ അത് ഫലപ്രദമായി നടപ്പിൽ കഴിയില്ല എങ്ങനെ കുത്തനെയുള്ള ഭാഷ എങ്കിൽ അല്ലേ?
സമഗ്രമായ സാങ്കേതിക
കമ്പൈലറുകളുടെ കമ്പ്യൂട്ടർ സയൻസ് വിവിധ മൂടുന്നു:
- ഭാഷ ഔദ്യോഗിക സിദ്ധാന്തം: വ്യാകരണം, അംഗങ്ങളുടെ പട്ടിക, ചൊംപുതബിലിത്യ്;
- രീതികൾക്ക്: നിർദ്ദേശസഞ്ചയം, RISC അല്ലെങ്കിൽ ചിസ്ച്, പ്രോസസ്സിംഗ് കോർ ക്ലോക്ക് സൈക്കിളിൽ പിപെലിനെദ് തുടങ്ങിയവ.
- പ്രോഗ്രാമിങ് ഭാഷകളുടെ ആശയങ്ങൾ, ഉദാഹരണത്തിന്, ഒരു കൂട്ടം നിയന്ത്രണം പ്രകടനം, സോപാധിക വധശിക്ഷ, ആവർത്തന, ആവർത്തനത്തിന്റെ, ഫങ്ഷണൽ താത്ക്കാലികമായ, മൊദുലരിത്യ്, സമന്വയം, മെറ്റാ-പ്രോഗ്രാമിംഗ്, സ്കോപ്പ്, നിരന്തരമായ സബ്-തരം, ടെംപ്ലേറ്റുകൾ, ഔട്ട്പുട്ട് തരം, വഴിത്താരകളുടെ, വ്യാഖ്യാനങ്ങൾ, ഒഴുക്ക്, മൊനദ്സ്, മെയിൽ, തുടരുക , വൈൽഡ്കാർഡുകൾ സാധാരണ പദപ്രയോഗം ഇടപാടുകൾക്കുള്ള മെമ്മറി,, പോളിമോർഫിസം, മോഡ് ക്രമീകരണങ്ങൾ, ഇത്യാദി തുടങ്ങിയവ..;
- അമൂർത്തമായ ഭാഷകളിൽ വെർച്വൽ മെഷീനുകൾ;
- അൽഗോരിതങ്ങളും ഡേറ്റാസ്ട്രക്ച്ചറുകളേയുമാണ്: റെഗുലർ എക്സ്പ്രഷൻ, parsing അൽഗോരിതങ്ങൾ, ഗ്രാഫിക്സ് അൽഗോരിതങ്ങൾ, ഡൈനാമിക് പ്രോഗ്രാമിങ്, പരിശീലനം;
- പ്രോഗ്രാമിങ് ഭാഷകൾ: വാക്യഘടന, സെമാന്റിക്കുകൾക്കും (സ്റ്റാറ്റിക് ആൻഡ് ഡൈനാമിക്), പിന്തുണ പരദിഗ്മ്സ് (ഘടനാപരമായ, മൊബൈല്, ഫങ്ഷണൽ, ലോജിക്കൽ, സ്റ്റാക്ക്, സമാന്തരവർണനകളും, മെറ്റാ-പ്രോഗ്രാമിംഗ്);
- സൃഷ്ടി സോഫ്റ്റ്വെയർ (കമ്പൈലറുകൾ, സാധാരണയായി വലിയ സങ്കീർണ്ണവുമായ): പ്രാദേശികവത്കരണ, കാഷെചെയ്യൽ, ചൊംപൊനെംതിജെ, എപിഐ-ഇന്റർഫെയിസുകൾ, പുനരുപയോഗം, സമന്വയം.
കംപൈലർ ഡിസൈൻ
യഥാർത്ഥ വിവർത്തകൻ വികസനത്തിന് നേരിട്ടു പ്രശ്നങ്ങൾ ചില:
- ഉറവിട ഭാഷ പ്രശ്നങ്ങൾ. അത് സമാഹരിക്കാൻ എളുപ്പമാണ്? പ്രീപ്രോസസറുകളുടെയും ഉണ്ടോ? എങ്ങനെ തരം? ഒരു ലൈബ്രറി ഉണ്ടോ?
- ഗ്രൂപ്പുചെയ്യൽ കംപൈലർ അന്തരിച്ചു: ഒറ്റ അല്ലെങ്കിൽ മൾട്ടി-വഴി?
- ഒപ്റ്റിമൈസേഷൻ ബിരുദം ആവശ്യമുള്ള. കാര്യമായ ഒപ്റ്റിമൈസേഷൻ വേഗത്തിൽ അശുദ്ധനായിരിക്കേണം പ്രക്ഷേപണം പ്രോഗ്രാമുകൾ സാധാരണ കഴിയും. ഓവർ-ഒപ്റ്റിമൈസേഷൻ കംപൈലർ മന്ദഗതിയിലാക്കും, എന്നാൽ പ്രവർത്തന മെച്ചപ്പെട്ട കോഡ് ബോധ്യമാകും വേണ്ടി.
- പിശക് കണ്ടെത്തൽ ആവശ്യമാണ് ബിരുദം. ഒരു പരിഭാഷകൻ ആദ്യ പിശക് നിർത്തും കഴിയുമോ? നിർത്താൻ എപ്പോൾ? കംപൈലർ പിശക് തിരുത്തൽ വിശ്വസിക്കാൻ എന്നു്?
- ഉപകരണങ്ങൾ ലഭ്യത. യഥാർത്ഥ ഭാഷ വളരെ ചെറിയ അല്ല എങ്കിൽ, സ്കാനർ എന്നിവ ജനറേറ്റർ അനല്യ്ജെര്സ് ആവശ്യമാണ്. ജനറേറ്ററുകൾ, കോഡ് ജനറേറ്ററുകൾ ഉണ്ട് എന്നാൽ അവർ സാധാരണ അല്ല.
- ലക്ഷ്യം കോഡ് തരം സൃഷ്ടിക്കണം. ശുദ്ധമായ അനുബന്ധമായ വെർച്വൽ മെഷീൻ കോഡ് നിന്ന് തിരഞ്ഞെടുക്കും. അല്ലെങ്കിൽ അത്തരം ല്ല്വ്മ്, ഇവരുടെ, അല്ലെങ്കിൽ ജെവിഎം ഒരു പ്രശസ്തമായ ഇന്റർമീഡിയറ്റ് പ്രാതിനിധ്യം സൃഷ്ടിക്കുന്ന ഒരു എൻട്രി ഭാഗം എഴുതുക. അതല്ല സി അല്ലെങ്കിൽ JavaScript ഉറവിട കോഡ് യഥാർത്ഥ വിവർത്തനം ഉണ്ടാക്കേണം.
- ലക്ഷ്യം കോഡ് ഫോർമാറ്റ്. നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം ഒരു അസംബ്ലി ഭാഷ, ഒരു പോർട്ടബിൾ മെഷീൻ കോഡ്, മെഷീൻ കോഡ് മെമ്മറി ചിത്രം.
- റീറ്റാർജെറ്റിങ്ങ്. ജനറേറ്ററുകൾ ഗണം ഒരു സാധാരണ Inlet ഭാഗം തന്നെ നന്നായിരിക്കുമ്പോൾ. ആകയാൽ പല ഭാഗങ്ങളിൽ ഇൻപുട്ട് ഒരു ജനറേറ്റർ തന്നെ നല്ലത്.
കംപൈലർ വാസ്തുവിദ്യ: ഘടകങ്ങൾ
ഈ പ്രാദേശിക കോഡ് സൃഷ്ടിക്കുന്നത് കമ്പൈലർ പ്രധാന ഫങ്ഷണൽ ഘടകങ്ങൾ (ഔട്ട്പുട്ട് പ്രോഗ്രാം C അല്ലെങ്കിൽ ഒരു വിർച്ച്വൽ മെഷീനിൽ ഒരു പ്രോഗ്രാം എങ്കിൽ, നിങ്ങൾ പല ഘട്ടങ്ങൾ ആവശ്യമില്ല) ഇവയാണ്:
- ഇൻപുട്ട് പ്രോഗ്രാം (ഒഴുക്ക് മാർക്ക്) ടോക്കണുകൾ ഒരു അരുവി അതു ആക്കാനുള്ള സ്കാനർ (.ഫീസിന്റെ അനലൈസർ), കയറി ആഹാരം ആണ്.
- പാർസർ (പാഴ്സർ) ഒരു അമൂർത്തമായ സിന്റാക്സ് ട്രീ നിർമിക്കാൻ.
- സെമാന്റിക് അനലൈസർ വേറൊരു വിവരങ്ങൾ ദെചൊംപൊസെസ് പിശകുകളും വൃക്ഷം റോഡുകളുണ്ട് പരിശോധിക്കുന്നു. അധിക സ്വത്തുക്കളും സ്ഥാപിച്ച കണ്ണികൾ കൊണ്ട് അമൂർത്ത സിന്റാക്സ് മരം - ഫലമായി, വേറൊരു ഗ്രാഫ് പണിതു.
- ഇന്റർമീഡിയറ്റ് കോഡ് ജനറേറ്റർ ഒരു ഒഴുക്ക് ഗ്രാഫ് (തുപ്ലെസ് പ്രധാന ബ്ലോക്കുകൾ മേഖലകൾ) പണിയുന്നു.
- മെഷീൻ-സ്വതന്ത്ര കോഡ് ഒപ്റ്റിമൈസര് അടിസ്ഥാനപരമായി റൂട്ടീനുകളിലൂടെ ഉള്ളിൽ ബാക്കി പ്രാദേശിക (അടിസ്ഥാന യൂണിറ്റ് ഉള്ളിൽ) ഉം (എല്ലാ ബ്ലോക്കുകൾ വരെ) ആഗോള ഓപ്റ്റിമൈസേഷൻ സംഘടിപ്പിക്കുന്നുണ്ട്. അനാവശ്യ കോഡ് കുറയ്ക്കുന്നു കണക്കുകൂട്ടലുകളും ലഘൂകരിക്കുന്നു. ഫലം ഒരു പരിഷ്കരിച്ച ഒഴുക്ക് ഗ്രാഫ് ആണ്.
- ജനറേറ്റർ ഒരു വസ്തു ഫയൽ അസെംബ്ലറിൽ വെർച്വൽ രജിസ്റ്ററുകൾ (ഒരുപക്ഷേ നിഷ്ഫലമായ) സൃഷ്ടിക്കുന്നു ഒരു ഇക്കയെ ട്രാൻസ്മിഷൻ കൺട്രോൾ കോഡ് ലക്ഷ്യം കോഡ് അടിസ്ഥാന ബ്ലോക്കുകൾ കെട്ടുന്നു.
- മെഷീൻ-ആശ്രിത ഒപ്റ്റിമൈസര്, ജിഎഎസ് രജിസ്റ്റർ തമ്മിലുള്ള മെമ്മറി വിഹിതം ടീമുകളേയും ആസൂത്രണം ചെയ്യുന്നു. ഇത് പൈപ്പ്ലൈനിംഗ് ഒരു നല്ല ഉപയോഗം ഈ സമ്മേളനത്തിൽ നിയമസഭാ ഭാഷയിൽ പരിവർത്തന പ്രോഗ്രാം നടത്തുന്നു.
കൂടാതെ, പിശക് കണ്ടെത്തൽ സബ്സിസ്റ്റവും മാനേജരും ചിഹ്നം പട്ടികകൾ ഉപയോഗം.
.ഫീസിന്റെ വിശകലനം (സ്കാനിംഗ്)
സ്കാനർ വൈറ്റ്സ്പേസ് അഭിപ്രായങ്ങളും വികസിച്ചുകൊണ്ടിരിക്കുന്ന മാക്രോകൾ നീക്കം ടോക്കണുകൾ ഒരു സ്ട്രീമിൽ സ്ട്രീമെങ്കിലും പ്രതീകങ്ങൾ പരിവർത്തനം.
സ്കാനറുകൾ പലപ്പോഴും അക്കൗണ്ടിലേക്ക് കേസ്, അരികുകളിൽ ലൈൻ ബ്രേക്കുകൾ എംബെഡഡ് അഭിപ്രായങ്ങൾ എടുക്കാൻ വേണ്ടയോ അല്ല പ്രശ്നങ്ങൾ, നേരിടുമ്പോൾ.
സ്കാൻ സമയത്ത് സംഭവിക്കാനിടയുള്ള പിശകുകൾ, .ഫീസിന്റെ വിളിച്ച് ഉൾപ്പെടുന്നു:
- അക്ഷരമാലയിലെ അക്ഷരങ്ങൾ;
- ഒരു വാക്ക് അല്ലെങ്കിൽ വരിയിൽ അക്ഷരങ്ങളുടെ എണ്ണം അമിത;
- ഒരു അടച്ച അടയാളം ഒരു സ്ട്രിംഗ് അല്ല;
- അഭിപ്രായം ഫയൽ അവസാനം.
(അംഗങ്ങളുടെ പട്ടിക) പാഴ്സുചെയ്യുന്നു
പാഴ്സർ അമൂർത്തമായ സിന്റാക്സ് ട്രീ അടയാളങ്ങളും കാര്യങ്ങളാണ് പരിവർത്തനം. മരം ഓരോ നോഡ് എന്ന നിലങ്ങളും, പല ഇതിൽ സ്വയം വൃക്ഷം നോഡുകൾ ഉണ്ട് ഒരു വസ്തുവായി ശേഖരിക്കും. ഈ ഘട്ടത്തിൽ ഒരു സൈക്കിളുകള്. നിങ്ങൾ ഒരു പാഴ്സർ സൃഷ്ടിക്കുമ്പോൾ വ്യാകരണം സങ്കീർണ്ണത നില (ll അല്ലെങ്കിൽ LR) ശ്രദ്ധ ഏതെങ്കിലും നിയമങ്ങൾ വിവക്ഷകൾ ഉണ്ട് എന്ന് കണ്ടെത്താൻ അത്യാവശ്യമാണ്. ചില ഭാഷകളിൽ വേറൊരു വിശകലനം ആവശ്യപ്പെടും.
ഈ ഘട്ടത്തിൽ തകരാറുകള്കണ്ടെത്തിയിരിക്കുന്നു വാക്യഘടന വിളിക്കുന്നു. ഉദാഹരണത്തിന്:
- k = 5 * (7 - Y;
- ജെ = / 5;
- 56 = X * 4.
വേറൊരു വിശകലനം
സമയത്ത് വേറൊരു വിശകലനം വേറൊരു ഗ്രാഫ് രൂപീകരിക്കാൻ ചട്ടങ്ങളും പാഴ്സുചെയ്യൽ മരം അസോസിയേറ്റ് ഭാഗങ്ങളിൽ (അനുവദിക്കുന്ന റഫറൻസ് പേരുകൾ പാകമാക്കിയെടുത്തു തരം സംഭാഷണങ്ങളിൽ തിരുകിയ പ്രവർത്തനം തുടങ്ങിയവ. ഡി) എന്ന അനുവദനീയതയെപ്പറ്റിയും പരിശോധിക്കാൻ.
വ്യക്തമായും, വ്യത്യസ്ത വ്യത്യസ്ത ഭാഷകളിൽ നിയമങ്ങൾ അദ്മിഷിബിലിത്യ് എന്ന സെറ്റ്. നിങ്ങൾ ജാവ പോലുള്ള ഭാഷകളിൽ സമാഹരിക്കാൻ എങ്കിൽ കമ്പൈലറുകൾക്ക് കണ്ടെത്താം:
- അതിന്റെ സ്കോപ്പ് ഒന്നിലേറെ വേരിയബിൾ പ്രഖ്യാപനം;
- അതിന്റെ പ്രഖ്യാപനം മുമ്പ് ഒരു വേരിയബിൾ ഒരു റഫറൻസ്;
- കണക്കിൽപെടാത്ത പേർ പരാമർശങ്ങൾ;
- പേറ്റന്റ് ലംഘനം;
- ഒരു രീതി കോളിലെ വാദങ്ങൾ അമിതമായ അല്ലെങ്കിൽ അപര്യാപ്തമായ എണ്ണം;
- തരം പൊരുത്തപ്പെടുന്നില്ല.
തലമുറ
ഇന്റർമീഡിയറ്റ് കോഡ് ജനറേഷൻ തുപ്ലെസ് ഊർട്ട് ഒഴുക്ക് ഗ്രാഫ്, അടിസ്ഥാന ബ്ലോക്കുകൾ ഗ്രൂപ്പുചെയ്തിരിക്കുന്നു ഉത്പാദിപ്പിക്കുന്നത്.
കോഡ് തലമുറ ഒരു യഥാർത്ഥ മെഷീൻ കോഡ് ഉത്പാദിപ്പിക്കുന്നത്. ആദ്യ ഘട്ടത്തിൽ RISC-മെഷീനുകൾ പരമ്പരാഗത കമ്പൈലറുകൾ ൽ, വെർച്വൽ രജിസ്റ്ററുകൾ എണ്ണം അനന്തമാണ് ഒരു അസെംബ്ലറിൽ സൃഷ്ടിക്കുക. ചിസ്ച്-മെഷീനുകൾ ഒരുപക്ഷേ സാധിക്കുകയില്ല.
Similar articles
Trending Now