Razlika Između Faze I Prolaska U Kompajleru

Razlika Između Faze I Prolaska U Kompajleru
Razlika Između Faze I Prolaska U Kompajleru

Video: Razlika Između Faze I Prolaska U Kompajleru

Video: Razlika Između Faze I Prolaska U Kompajleru
Video: LOSER IS OUT!! - FaZe vs Spirit - IEM Cologne 2021 - HIGHLIGHTS | CSGO 2024, Travanj
Anonim

Faza vs Pass u kompajleru

Općenito, kompajler je računalni program koji čita program napisan na jednom jeziku, koji se naziva izvornim jezikom, i prevodi ga u drugi jezik, koji se naziva ciljnim jezikom. Tradicionalno je izvorni jezik bio jezik visoke razine kao što je C ++, a ciljni jezik jezik niske razine kao što je skupštinski jezik. Dakle, općenito se na sastavljače može gledati kao na prevoditelje koji prevode s jednog jezika na drugi. Pass i Phase dva su pojma koja se često koriste s kompajlerima. Broj prolaza kompajlera je koliko je puta prešao izvor (ili neki njegov oblik predstavljanja). Prevodnik je raščlanjen na dijelove radi praktičnosti izrade. Faza se često koristi za nazivanje takvog jednog neovisnog dijela kompajlera.

Što je prolaz u kompajleru?

Standardni način klasificiranja sastavljača je po broju "prolaza". Obično je kompajliranje relativno resursno potreban postupak, a računala u početku nisu imala dovoljno memorije da drže takav program koji je obavio kompletan posao. Zbog ovog ograničenja hardverskih resursa u ranim računalima, kompajleri su raščlanjeni na manje potprograme koji su djelomično obavili svoj posao prelazeći preko izvornog koda (izvršavajući "prijelaz" preko izvora ili nekog drugog oblika) i provodeći analizu, transformacije i prevoditeljske zadatke zasebno. Dakle, ovisno o ovoj klasifikaciji, kompajleri su identificirani kao jednoprolazni ili višeprolazni sastavljači.

Kao što i samo ime govori, jednoprolazni kompajleri sastavljaju se u jednom prolazu. Lakše je napisati jednoprolazni kompajler, a također rade i brže od višepropusnih kompajlera. Stoga su čak i u vrijeme kad ste imali ograničenja resursa jezici dizajnirani tako da se mogu kompilirati u jednom prolazu (npr. Pascal). S druge strane, tipični višepropusni kompajler sastoji se od nekoliko glavnih faza. Prva faza je skener (poznat i kao leksički analizator). Skener čita program i pretvara ga u niz tokena. Druga faza je parser. Pretvara niz tokena u stablo raščlanjivanja (ili apstraktno stablo sintakse), koje bilježi sintaktičku strukturu programa. Sljedeća je faza interpretacija semantike sintaktičke strukture. Slijede faze optimizacije koda i završna faza generiranja koda.

Što je faza u kompajleru?

Termin faza često se javlja kada govorite o konstrukciji kompajlera. U početku su sastavljači bili svi jednostavni dijelovi pojedinačnog monolitnog softvera koje je napisala jedna osoba za sastavljanje jednostavnog jezika. Ali kad izvorni kod jezika koji se prevodi postane složen i velik, kompajler je raščlanjen na više (relativno neovisnih) faza. Prednost različitih faza je u tome što se razvoj kompajlera može distribuirati među tim programera. Nadalje, poboljšava modularnost i ponovnu upotrebu dopuštajući da se faze zamjenjuju poboljšanima ili da se dodatnim fazama (kao što su daljnje optimizacije) dodaje u kompajler. Proces podjele kompilacije na faze uveo je PQCC (Project Quality Compiler-Compiler Project) na Sveučilištu Carnegie Melon. Uveli su pojmove prednji kraj, srednji kraj i stražnji kraj. Većina kompajlera ima najmanje dvije faze. Ali obično stražnji i prednji kraj inkapsuliraju ove faze.

Koja je razlika između Phase i Pass u Compileru?

Phase i Pass dva su pojma koja se koriste u području sastavljača. Prolazak je jednokratno prevođenje kompajlera (prolazak) kroz izvorni kod ili neki drugi njegov prikaz. Tipično, većina kompajlera ima najmanje dvije faze koje se nazivaju prednji kraj i stražnji kraj, dok mogu biti jednoprolazni ili višeprolazni. Faza se koristi za klasifikaciju sastavljača prema konstrukciji, dok se pass koristi za klasifikaciju sastavljača prema načinu na koji rade.

Preporučeno: