Sisu
- Mis on Single Pass Compiler
- Mis on Multipass Compiler
- Erinevus ühekordse ja mitmekordse kompilaatori vahel
The peamine erinevus ühekordse ja mitme läbipääsu kompilaatori vahel on see ühekäiguline kompilaator on kompilaator, mis edastab lähtekoodi iga kompileerimisüksuse kaudu ainult üks kord, samal ajal kui multipass kompilaator eraldab kompileerimise mitmeks läbipääsuks, kus iga pass jätkub eelmise passi tulemusega.
Arvutiprogramm on juhiste kogum arvuti jaoks teatud ülesande täitmiseks. Tavaliselt kirjutavad programmeerijad programme, kasutades kõrgetasemelisi programmeerimiskeeli. Siiski ei mõista arvuti neid juhiseid. Seetõttu on vaja lähtekoodi muuta masinloetavaks masina koodiks. Kompilaator on tarkvara, mis teisendab lähtekoodi masina koodiks ja ühe ja mitme ülekande kompilaator on kahte tüüpi kompilaatorid.
Kaetud peamised valdkonnad
1. Mis on Single Pass Compiler
- Mõiste, funktsionaalsus
2. Mis on mitmeastmeline kompilaator
- Mõiste, funktsionaalsus
3. Milline on erinevus ühe passi ja mitmeastmelise kompilaatori vahel
- peamiste erinevuste võrdlus
Võtmesõnad
Single Pass kompilaator, Multipass kompilaator
Mis on Single Pass Compiler
Koostamisprotsessis on mitmeid etappe. Ühe läbipääsu kompilaator teeb ühekordse läbipääsu lähtetekstis, analüüsides, analüüsides ja genereerides koodi ainult üks kord. Teisisõnu võimaldab see lähtekoodi läbida iga koostamisüksuse ainult üks kord. See tõlgib kohe iga koodiosa oma masina lõplikuks koodiks.
Joonis 1: kompilaator
Ühekordse kompilaatori põhietapid on leksikaalne analüüs, süntaktiline analüüs ja koodigeneraator. Esiteks skaneerib leksiline analüüs lähtekoodi ja jagab selle märgideks. Igal programmeerimiskeelel on grammatika. See esindab keele süntaksit ja õiguslikke avaldusi. Seejärel määrab süntaktiline analüüs grammatika poolt kirjeldatud keelekonstruktid. Lõpuks genereerib koodigeneraator sihtkoodi. Üldiselt ei optimeeri ühekordne kompilaator koodi. Lisaks sellele puudub vahepealne koodide genereerimine.
Mis on Multipass Compiler
Mitmeülekande kompilaator muudab lähtekoodi parsimiseks, analüüsimiseks, genereerimiseks jne mitu korda, luues iga etapi järel vahekoodi. See teisendab programmi üheks või mitmeks vaheesitluseks lähtekoodi ja masina koodi vahel. See töötleb ümber kogu koostamisüksuse igas järjestikuses passis.
Iga läbisõit võtab sisendina eelmise passi tulemuse ja loob vaheväljundi. Samamoodi paraneb kood iga läbipääsu puhul, kuni lõplik pass genereerib lõpliku koodi. Mitmeülekandega kompilaator täidab täiendavaid ülesandeid, nagu näiteks vahesaadete koodide genereerimine, masinast sõltuv koodide optimeerimine ja masina sõltumatu koodi optimeerimine.
Joonis 2: Multipass kompilaator
Mitmekordsete kompilaatorite jaoks on mitmeid eeliseid. Nad on masinast sõltumatud ja sisaldavad moodulstruktuuri. Koodi genereerimine eraldub teistest kompileerimise etappidest. Seetõttu saab läbipääsu kasutada erinevate masinate või seadmete jaoks. Lisaks on see keerukam ja väljendusrikkam keel.
Erinevus ühekordse ja mitmekordse kompilaatori vahel
Määratlus
Ühekordne kompilaator on kompilaatori tüüp, mis läbib iga koostamisüksuse osi ainult üks kord, tõlkides iga koodiosa kohe oma lõppmasina koodiks. Mitmeülekande kompilaator on kompilaatori tüüp, mis töötleb programmi lähtekoodi või abstraktset süntaksipuu mitu korda. Seega selgitavad need definitsioonid peamist erinevust ühekordse ja mitmeastmelise kompilaatori vahel.
Kiirus
Kiirus on peamine erinevus ühekordse ja mitme läbilaskevõimega kompilaatori vahel. Mitme läbilaskega kompilaator on aeglasem kui ühe läbipääsuga kompilaator, sest iga läbipääs loeb ja kirjutab vahefaili.
Sünonüümid
Ühe passi kompilaatorit nimetatakse ka kitsaks kompilaatoriks, samas kui multipass kompilaatorit nimetatakse laia kompilaatoriks.
Reguleerimisala
Lisaks on ühekäigulisel kompilaatoril piiratud ulatus, samas kui mitme läbilaskevõimega kompilaatoril on suurem ulatus.
Koodi optimeerimine
Teine erinevus ühekordse ja mitme läbilaskevõimega kompilaatori vahel on see, et erinevalt mitmeotstarbelisest kompilaatorist, millel on koodide optimeerimine, ei ole ühe passi kompilaatoris koodi optimeerimist.
Vahekoodid
Vahepealsed koodid muudavad ka ühekordse ja mitmekordse kompilaatori vahel vahet. Vahekoodi genereerimine ühekäigulistes kompilaatorites puudub. Mitme läbilaskevõimega kompilaatorites on siiski vahekoodi genereerimine.
Koostamise aeg
Lisaks võtab ühekäiguline kompilaator kompakteerimiseks minimaalse aja, võrreldes mitme ülekandega kompilaatoriga.
Mälu tarbimine
Samuti on mälu tarbimine mitme läbilaskevõimega kompilaatoris suurem kui ühekordse kompilaatori puhul. Seega on see veel üks vahe ühekordse ja mitme läbilaskevõimega kompilaatori vahel.
Programmeerimiskeeled
Selliseid programmeerimiskeeli nagu Pascal saab rakendada ühe passi kompilaatori abil, samas kui programmeerimiskeeli, nagu näiteks Java, saab rakendada mitmepunktilise kompilaatori abil. Seega on see veel üks erinevus ühekordse ja mitme läbilaskevõimega kompilaatori vahel.
Järeldus
Ühekäigulised ja mitmeastmelised kompilaatorid on kahte tüüpi kompilaatorid. Erinevus ühekordse ja mitme läbilaskevõimega kompilaatori vahel on see, et ühekäiguline kompilaator on kompilaator, mis edastab lähtekoodi iga koostamisüksuse kaudu ainult üks kord, samal ajal kui multipass-kompilaator eraldab kompileerimise mitmeks läbipääsuks, kus iga läbipääs jätkub eelmise edastusega .
Viide:
1. “pass1 ja 2 kompilaator”. Scribd, Scribd,