Atšķirība starp fāzi un pāreju kompilatorā

Atšķirība starp fāzi un pāreju kompilatorā
Atšķirība starp fāzi un pāreju kompilatorā

Video: Atšķirība starp fāzi un pāreju kompilatorā

Video: Atšķirība starp fāzi un pāreju kompilatorā
Video: Conjunctions – English Grammar Lessons 2024, Jūlijs
Anonim

Fāze pret izturēšanu kompilatorā

Kopumā kompilators ir datorprogramma, kas nolasa programmu, kas rakstīta vienā valodā, ko sauc par avota valodu, un pārtulko to citā valodā, ko sauc par mērķa valodu. Tradicionāli avota valoda bija augsta līmeņa valoda, piemēram, C++, un mērķa valoda bija zema līmeņa valoda, piemēram, montāžas valoda. Tātad kopumā kompilatorus var uzskatīt par tulkotājiem, kas tulko no vienas valodas uz citu. Pass un Phase ir divi termini, ko bieži lieto kompilatoros. Kompilatora piegājienu skaits ir reižu skaits, kad tas iet pa avotu (vai kādu tā attēlojuma veidu). Kompilators ir sadalīts daļās būvniecības ērtībai. Fāze bieži tiek izmantota, lai izsauktu šādu atsevišķu neatkarīgu kompilatora daļu.

Kas ir caurlaide kompilatorā?

Standarta veids, kā klasificēt kompilatorus, ir pēc “ielaižu” skaita. Parasti kompilēšana ir salīdzinoši resursietilpīgs process, un sākotnēji datoriem nebija pietiekami daudz atmiņas, lai turētu šādu programmu, kas paveica visu darbu. Sakarā ar šo aparatūras resursu ierobežojumu agrīnajos datoros, kompilatori tika sadalīti mazākās apakšprogrammās, kuras veica savu daļēju darbu, pārmeklējot avota kodu (pārlaida avotu vai kādu citu tā veidu) un veica analīzi., transformācijas un tulkošanas uzdevumi atsevišķi. Tātad, atkarībā no šīs klasifikācijas, kompilatori tiek identificēti kā vienas vai vairāku gājienu kompilatori.

Kā norāda nosaukums, vienas rindas kompilatori apkopo vienā piegājienā. Vienkāršāk ir uzrakstīt vienkāršās kompilatorus, kā arī tie darbojas ātrāk nekā vairākkārtēju kompilatori. Tāpēc pat tajā laikā, kad jums bija resursu ierobežojumi, valodas tika izstrādātas tā, lai tās varētu apkopot vienā piegājienā (piemēram, Pascal). No otras puses, tipisks daudzpakāpju kompilators sastāv no vairākiem galvenajiem posmiem. Pirmais posms ir skeneris (pazīstams arī kā leksiskais analizators). Skeneris nolasa programmu un pārvērš to par žetonu virkni. Otrais posms ir parsētājs. Tas pārveido marķieru virkni parsēšanas kokā (vai abstraktā sintakses kokā), kas atspoguļo programmas sintaktisko struktūru. Nākamais posms ir sintaktiskās struktūras semantikas interpretācija. Tālāk seko koda optimizācijas posmi un pēdējais koda ģenerēšanas posms.

Kas ir kompilatora fāze?

Termina fāze bieži parādās, kad runājat par kompilatora uzbūvi. Sākotnēji kompilatori bija ikviena vienkārša monolīta programmatūra, ko rakstīja viena persona vienkāršas valodas apkopošanai. Bet, kad tulkojamās valodas pirmkods kļūst sarežģīts un liels, kompilators tika sadalīts vairākās (salīdzinoši neatkarīgās) fāzēs. Dažādu posmu priekšrocība ir tāda, ka kompilatora izstrādi var sadalīt starp izstrādātāju komandu. Turklāt tas uzlabo modularitāti un atkārtotu izmantošanu, ļaujot fāzes aizstāt ar uzlabotām vai kompilatoram pievienot papildu fāzes (piemēram, papildu optimizācijas). Kompilācijas sadalīšanas fāzēs procesu ieviesa PQCC (Production Quality Compiler-Compiler Project) Kārnegija Melonas universitātē. Viņi ieviesa terminus priekšgals, vidus gals un aizmugure. Lielākajai daļai kompilatoru ir vismaz divas fāzes. Taču parasti šīs fāzes ietver aizmugures daļu un priekšējo daļu.

Kāda ir atšķirība starp Phase un Pass kompilatorā?

Phase un Pass ir divi termini, ko izmanto kompilatoru jomā. Iziet ir vienreizēja reize, kad kompilators nodod (iziet) avota kodu vai kādu citu tā attēlojumu. Parasti lielākajai daļai kompilatoru ir vismaz divas fāzes, ko sauc par priekšējo daļu un aizmugures daļu, savukārt tās var būt vienas vai vairāku gājienu. Fāze tiek izmantota, lai klasificētu kompilatorus pēc konstrukcijas, savukārt pass tiek izmantota, lai klasificētu kompilatorus pēc to darbības veida.

Ieteicams: