Qhov txawv ntawm Phase thiab Pass hauv Compiler

Qhov txawv ntawm Phase thiab Pass hauv Compiler
Qhov txawv ntawm Phase thiab Pass hauv Compiler

Video: Qhov txawv ntawm Phase thiab Pass hauv Compiler

Video: Qhov txawv ntawm Phase thiab Pass hauv Compiler
Video: Qhov Tseeb Yog Li Cas Tiag 22/8/2021 2024, Lub Xya hli ntuj
Anonim

Phase vs Pass hauv Compiler

Feem ntau, compiler yog ib qho khoos phis tawj uas nyeem cov program sau ua ib hom lus, uas yog hu ua hom lus, thiab txhais ua lwm hom lus, uas yog hu ua hom lus. Kev lig kev cai, hom lus yog hom lus siab xws li C ++ thiab hom lus yog hom lus qis xws li Lus Sib Tham. Yog li, feem ntau compilers tuaj yeem pom tau tias yog cov neeg txhais lus uas txhais los ntawm ib hom lus mus rau lwm tus. Pass thiab Phase yog ob nqe lus uas feem ntau siv nrog compilers. Number of passes of a compiler is the number of times it goes over the source (los yog ib co kev sawv cev ntawm nws). Lub compiler tau tawg rau hauv qhov chaw kom yooj yim ntawm kev tsim kho. Theem feem ntau yog siv los hu xws li ib qho kev ywj pheej ntawm ib qho compiler.

Pass hauv Compiler yog dab tsi?

Ib txoj hauv kev los faib cov compilers yog los ntawm tus lej ntawm "dhau". Feem ntau, kev sau ua ke yog cov txheej txheem siv nyiaj ntau heev thiab thaum xub thawj cov khoos phis tawj tsis muaj lub cim xeeb txaus los tuav cov haujlwm zoo li no uas ua tiav txoj haujlwm. Vim qhov kev txwv no ntawm cov khoom siv kho vajtse hauv cov khoos phis tawj thaum ntxov, compilers tau tawg rau hauv cov kev pab cuam me me uas ua nws txoj haujlwm ib nrab los ntawm kev hla dhau qhov chaws (ua "dhau" dhau qhov chaw lossis lwm yam ntawm nws) thiab ua kev soj ntsuam., kev hloov pauv thiab kev txhais lus sib cais. Yog li, nyob ntawm qhov kev faib tawm no, cov neeg suav sau tau txheeb xyuas tias yog ib qho dhau los lossis ntau qhov kev sib tw.

Raws li lub npe qhia, one-pass compilers compiles nyob rau hauv ib qho pass. Nws yooj yim dua los sau ib-pass compiler thiab lawv tseem ua tau sai dua li multi-pass compilers. Yog li ntawd, txawm tias thaum lub sijhawm koj muaj kev txwv tsis pub siv, cov lus tau tsim los kom lawv tuaj yeem muab tso ua ke hauv ib qho (piv txwv li Pascal). Ntawm qhov tod tes, ib tug raug multi-pass compiler yog tsim los ntawm ob peb theem tseem ceeb. Thawj theem yog lub scanner (tseem hu ua lexical analyzer). Scanner nyeem qhov program thiab hloov nws mus rau ib txoj hlua ntawm tokens. Qhov thib ob theem yog parser. Nws hloov cov hlua ntawm tokens rau hauv ib tsob ntoo parse (lossis ib tsob ntoo paub daws teeb), uas ntes cov qauv syntactic ntawm qhov program. Cov theem tom ntej yog qhov uas txhais cov semantics ntawm cov qauv syntactic. Txoj cai optimizations theem thiab kawg code tiam theem ua raws li qhov no.

Phase hauv Compiler yog dab tsi?

Lub sij hawm theem feem ntau tuaj thaum koj tham txog kev tsim kho compiler. Thaum pib, compilers yog txhua daim ntawv yooj yim ntawm ib leeg, monolithic software sau los ntawm ib tus neeg rau kev sau cov lus yooj yim. Tab sis thaum lub hauv paus code ntawm cov lus yuav tsum tau muab txhais ua complex thiab loj, lub compiler tau tawg mus rau ntau yam (kuj ywj siab) theem. Qhov kom zoo dua ntawm muaj cov theem sib txawv yog tias txoj kev loj hlob ntawm cov compiler tuaj yeem muab faib ua pawg ntawm cov neeg tsim tawm. Tsis tas li ntawd, nws txhim kho cov modularity thiab rov siv dua los ntawm kev tso cai rau cov theem hloov los ntawm kev txhim kho los yog cov theem ntxiv (xws li kev ua kom zoo ntxiv) ntxiv rau lub compiler. Cov txheej txheem ntawm kev faib cov muab tso ua ke rau theem tau qhia los ntawm PQCC (Production Quality Compiler-Compiler Project) ntawm Carnegie Melon University. Lawv qhia cov ntsiab lus pem hauv ntej kawg, nruab nrab kawg thiab rov qab kawg. Feem ntau compilers muaj tsawg kawg yog ob theem. Tab sis feem ntau, rov qab kawg thiab pem hauv ntej kawg encapsulate cov theem no.

Qhov txawv ntawm Phase thiab Pass hauv Compiler yog dab tsi?

Phase thiab Pass yog ob nqe lus siv nyob rau hauv thaj tsam ntawm kev sau ntawv. Ib qho dhau los yog ib zaug uas tus neeg sau ntawv hla dhau (mus dhau) cov cai los yog qee qhov kev sawv cev ntawm nws. Feem ntau, feem ntau compilers muaj tsawg kawg yog ob theem hu ua pem hauv ntej kawg thiab rov qab kawg, thaum lawv tuaj yeem yog ib qho dhau los lossis ntau dhau. Theem yog siv los faib cov compilers raws li kev tsim kho, thaum pass yog siv los faib cov compilers raws li lawv ua haujlwm li cas.

Pom zoo: