Verskil tussen fase en slaag in samesteller

Verskil tussen fase en slaag in samesteller
Verskil tussen fase en slaag in samesteller

Video: Verskil tussen fase en slaag in samesteller

Video: Verskil tussen fase en slaag in samesteller
Video: Onderschikkende voegwoorden en verbindende bijwoorden/adverbia/conjuncties 2024, Julie
Anonim

Phase vs Pass in Compiler

In die algemeen is samesteller 'n rekenaarprogram wat 'n program lees wat in een taal geskryf is, wat die brontaal genoem word, en dit vertaal in 'n ander taal, wat die doeltaal genoem word. Tradisioneel was brontaal 'n hoëvlaktaal soos C++ en doeltaal was 'n laevlaktaal soos Assembly-taal. Dus, oor die algemeen kan samestellers gesien word as vertalers wat van een taal na 'n ander vertaal. Slaag en Fase is twee terme wat dikwels met samestellers gebruik word. Aantal deure van 'n samesteller is die aantal kere wat dit oor die bron gaan (of een of ander vorm van voorstelling daarvan).'n Samesteller word in dele opgebreek vir die gerief van konstruksie. Fase word dikwels gebruik om so 'n enkele onafhanklike deel van 'n samesteller te noem.

Wat is 'n slaag in 'n samesteller?

'n Standaard manier om samestellers te klassifiseer is volgens die aantal "passe". Gewoonlik is samestelling 'n relatief hulpbronintensiewe proses en aanvanklik het rekenaars nie genoeg geheue gehad om so 'n program te hou wat die volledige werk gedoen het nie. As gevolg van hierdie beperking van hardewarehulpbronne in vroeë rekenaars, is samestellers in kleiner subprogramme afgebreek wat sy gedeeltelike werk gedoen het deur oor die bronkode te gaan ('n "pass" oor die bron of 'n ander vorm daarvan gemaak) en analise uitgevoer, transformasies en verta altake afsonderlik. Dus, afhangende van hierdie klassifikasie, word samestellers geïdentifiseer as eendeurlaat- of meerdeurgangsamestellers.

Soos die naam aandui, word een-pas samestellers saamgestel in 'n enkele pas. Dit is makliker om 'n eendeurgangsamesteller te skryf en hulle werk ook vinniger as multi-pass samestellers. Daarom, selfs in die tyd toe jy hulpbronbeperkings gehad het, is tale ontwerp sodat dit in 'n een-pas saamgestel kon word (bv. Pascal). Aan die ander kant bestaan 'n tipiese multi-pass samesteller uit verskeie hoofstadia. Die eerste fase is die skandeerder (ook bekend as die leksikale ontleder). Skandeerder lees die program en skakel dit om na 'n string tokens. Die tweede fase is die ontleder. Dit skakel die string tokens om na 'n ontledingsboom (of 'n abstrakte sintaksboom), wat die sintaktiese struktuur van die program vasvang. Volgende stadium is die wat die semantiek van die sintaktiese struktuur interpreteer. Die kode-optimeringsstadiums en finale kodegenereringstadium volg hierop.

Wat is 'n fase in 'n samesteller?

Die termfase kom dikwels voor wanneer jy oor samestellerkonstruksie praat. Aanvanklik was samestellers elke eenvoudige stukke enkele, monolitiese sagteware wat deur een persoon geskryf is vir die samestelling van 'n eenvoudige taal. Maar wanneer die bronkode van die taal wat vertaal moet word kompleks en groot word, is die samesteller in verskeie (relatief onafhanklike) fases opgebreek. Die voordeel van verskillende fases is dat die ontwikkeling van die samesteller onder 'n span ontwikkelaars versprei kan word. Verder verbeter dit die modulariteit en hergebruik deur toe te laat dat fases vervang word deur verbeterde of bykomende fases (soos verdere optimaliserings) om by die samesteller gevoeg te word. Die proses om die samestelling in fases te verdeel, is deur die PQCC (Production Quality Compiler-Compiler Project) by Carnegie Melon Universiteit ingestel. Hulle het die terme voorkant, middelkant en agterkant bekendgestel. Die meeste samestellers het ten minste twee fases. Maar gewoonlik omhul agterkant en voorkant hierdie fases.

Wat is die verskil tussen Fase en Slaag in samesteller?

Fase en Slaag is twee terme wat op die gebied van samestellers gebruik word. 'n Slaag is 'n enkele keer wat die samesteller die bronkode of 'n ander voorstelling daarvan oorgaan (deurgaan). Tipies het die meeste samestellers ten minste twee fases wat voorkant en agterkant genoem word, terwyl hulle óf een- of multi-pass kan wees. Fase word gebruik om samestellers volgens die konstruksie te klassifiseer, terwyl slaag gebruik word om samestellers te klassifiseer volgens hoe hulle werk.

Aanbeveel: