Разлика између фазе и пролаза у компајлеру

Фаза вс Пролаз у састављачу

Генерално, преводилац је рачунарски програм који чита програм написан на једном језику, који се зове изворни језик, и преводи га у други језик, који се зове циљни језик. Традиционално, изворни језик је био језик високог нивоа, као што је Ц ++, а циљни језик је био језик ниског нивоа, као што је скупштински језик. Дакле, уопштено преводиоци се могу посматрати као преводиоци који преводе с једног језика на други. Пасс и Пхасе су два термина која се често користе са преводиоцима. Број пролаза компајлера је колико пута пређе преко извора (или неког облика његовог представљања). Компајлер је подељен на делове ради практичности конструкције. Фаза се често користи за позивање таквог једног независног дела преводиоца.

Шта је пропусница у компајлеру?

Стандардни начин класификације компајлера је према броју „пролазака“. Обично је састављање релативно интензиван процес и почетно рачунари нису имали довољно меморије за одржавање таквог програма који је обавио комплетан посао. Због овог ограничења хардверских ресурса у раним рачунарима, преводиоци су подељени на мање подпрограме који су свој делимични посао урадили тако што су прешли изворни код (направили „пролаз“ преко извора или неког другог његовог облика) и извршили анализу , трансформације и превођење засебно. Дакле, у зависности од ове класификације, преводиоци се означавају као једнопролазни или вишепролазни преводиоци.

Као што име говори, преводиоци са једним пролазом састављају се у једном пролазу. Лакше је написати једнопролазни преводилац, аи они раде брже него мултипропусни преводиоци. Стога су чак и у време када сте имали ограничења ресурса дизајнирани тако да се могу саставити у једном пролазу (нпр. Пасцал). С друге стране, типични мулти-пасс преводилац састоји се од неколико главних фаза. Прва фаза је скенер (познат и као лексички анализатор). Скенер чита програм и претвара га у низ токена. Друга фаза је парсер. Претвара низ токена у стабло рашчлањивања (или апстрактно синтаксичко стабло), које биљежи синтактичку структуру програма. Следећа фаза је она која тумачи семантику синтактичке структуре. Следе фазе оптимизације кода и фаза коначног генерисања кода.

Шта је фаза у компајлеру?

Термин фаза се често јавља када говорите о конструкцији преводилаца. У почетку су преводиоци били сваки једноставни комади једног, монолитног софтвера који је написала једна особа за састављање једноставног језика. Али кад изворни код језика који се преводи постаје сложен и велик, преводилац је подељен на више (релативно независних) фаза. Предност различитих фаза је та што се развој компајлера може дистрибуирати међу тим програмера. Надаље, побољшава модуларност и поновну употребу тако што омогућава да се фазе замене побољшаним или додатним фазама (као што су додатне оптимизације) додају се преводиоцу. Процес поделе компилације на фазе увео је ПКЦЦ (Пројект квалитета компилера-компајлера) на Универзитету Царнегие Мелон. Увели су појмове предњи, средњи и задњи крај. Већина преводилаца има најмање две фазе. Али обично, задње и предње стране инкапсулирају ове фазе.

Која је разлика између фазе и пролаза у компајлеру?

Пхасе анд Пасс су два термина који се користе у области преводилаца. Пропус је појединачни пут када преводилац пређе (прође) изворни код или неко друго представљање истог. Обично већина компајлера има најмање две фазе које се називају предњи и задњи крај, док би оне могле бити или пролазне или вишепролазне. Фаза се користи за класификацију преводилаца према конструкцији, док се пролаз користи за класификовање преводилаца према начину на који раде.