Տարբերություն Կոմպիլյատորում փուլի և անցման միջև

Տարբերություն Կոմպիլյատորում փուլի և անցման միջև
Տարբերություն Կոմպիլյատորում փուլի և անցման միջև

Video: Տարբերություն Կոմպիլյատորում փուլի և անցման միջև

Video: Տարբերություն Կոմպիլյատորում փուլի և անցման միջև
Video: Բարդ ստորադասական նախադասություն․ 9-րդ դասարան 2024, Հուլիսի
Anonim

Phase vs Pass Կազմողի մեջ

Ընդհանուր առմամբ, կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր, որը կոչվում է սկզբնաղբյուր, և այն թարգմանում է մեկ այլ լեզվով, որը կոչվում է նպատակային լեզու: Ավանդաբար, սկզբնաղբյուր լեզուն բարձր մակարդակի լեզու էր, ինչպիսին է C++-ը, իսկ թիրախային լեզուն ցածր մակարդակի լեզու էր, ինչպիսին է ասամբլեայի լեզուն: Այսպիսով, ընդհանուր առմամբ, կազմողները կարող են դիտվել որպես թարգմանիչներ, որոնք թարգմանում են մի լեզվից մյուսը: Pass և Phase երկու տերմիններ են, որոնք հաճախ օգտագործվում են կոմպիլյատորների հետ: Կոմպիլյատորի անցումների քանակն այն է, թե քանի անգամ է այն անցնում աղբյուրի վրայով (կամ դրա ներկայացման որևէ ձև):Կառուցման հարմարության համար կոմպիլյատորը բաժանվում է մասերի: Փուլը հաճախ օգտագործվում է կոմպիլյատորի նման մեկ անկախ մաս կանչելու համար:

Ի՞նչ է անցաթուղթը կոմպիլյատորում:

Կոմպիլյատորների դասակարգման ստանդարտ եղանակը «անցումների» քանակն է: Սովորաբար, կոմպիլյացիան համեմատաբար ռեսուրսային գործընթաց է, և սկզբնական շրջանում համակարգիչները բավարար հիշողություն չունեին նման ծրագիր պահելու համար, որն ամբողջությամբ կատարում էր աշխատանքը: Վաղ համակարգիչների ապարատային ռեսուրսների այս սահմանափակման պատճառով կոմպիլյատորները բաժանվեցին ավելի փոքր ենթածրագրերի, որոնք իրենց մասնակի աշխատանքն էին կատարում՝ անցնելով սկզբնաղբյուրի կոդի վրայով («անցում» կատարեցին աղբյուրի կամ դրա որևէ այլ ձևով) և կատարեցին վերլուծություն։, փոխակերպումներ և թարգմանչական առաջադրանքներ՝ առանձին։ Այսպիսով, կախված այս դասակարգումից, կոմպիլյատորները ճանաչվում են որպես մեկ անցումով կամ բազմանցում կատարողներ:

Ինչպես անունն է հուշում, մեկ անցումով կոմպիլյատորները կազմում են մեկ անցումով: Ավելի հեշտ է գրել մեկ անցումով կոմպիլյատոր, ինչպես նաև նրանք ավելի արագ են գործում, քան բազմաբաց կոմպիլյատորները:Հետևաբար, նույնիսկ այն ժամանակ, երբ դուք ունեիք ռեսուրսների սահմանափակումներ, լեզուները նախագծված էին այնպես, որ դրանք կարող էին կազմվել մեկ անցումով (օրինակ՝ Պասկալ): Մյուս կողմից, տիպիկ բազմապատիկ կոմպիլյատորը բաղկացած է մի քանի հիմնական փուլերից: Առաջին փուլը սկաներն է (հայտնի է նաև որպես բառապաշարային անալիզատոր): Սկաները կարդում է ծրագիրը և այն վերածում նշանների շարքի: Երկրորդ փուլը վերլուծիչն է: Այն փոխակերպում է նշանների տողը վերլուծական ծառի (կամ վերացական շարահյուսական ծառի), որն արտացոլում է ծրագրի շարահյուսական կառուցվածքը: Հաջորդ փուլը շարահյուսական կառուցվածքի իմաստաբանությունն է: Կոդի օպտիմալացման փուլերը և կոդերի ստեղծման վերջնական փուլերը հաջորդում են դրան:

Ի՞նչ է փուլը կոմպիլյատորում:

Տերմինի փուլը հաճախ է առաջանում, երբ խոսում եք կոմպիլյատորների կառուցման մասին: Ի սկզբանե, կոմպիլյատորները եզակի, մոնոլիտ ծրագրաշարի յուրաքանչյուր հասարակ կտոր էին, որը գրված էր մեկ անձի կողմից՝ պարզ լեզվի կազմման համար: Բայց երբ թարգմանվող լեզվի սկզբնական կոդը դառնում է բարդ և մեծ, կոմպիլյատորը բաժանվում է մի քանի (համեմատաբար անկախ) փուլերի:Տարբեր փուլեր ունենալու առավելությունն այն է, որ կոմպիլյատորի մշակումը կարող է բաշխվել ծրագրավորողների թիմի միջև: Ավելին, այն բարելավում է մոդուլյարությունը և կրկնակի օգտագործումը՝ թույլ տալով փուլերը փոխարինել բարելավվածներով կամ լրացուցիչ փուլեր (օրինակ՝ հետագա օպտիմալացումները) ավելացնել կոմպիլյատորին։ Կոմպիլյացիան փուլերի բաժանելու գործընթացը ներդրվել է PQCC (Production Quality Compiler-Compiler Project) կողմից Carnegie Melon համալսարանում: Նրանք ներկայացրեցին front end, middle end և back end տերմինները։ Կոմպիլյատորների մեծ մասն ունի առնվազն երկու փուլ: Բայց սովորաբար, հետևի և առջևի ծայրերը ներառում են այս փուլերը:

Ո՞րն է տարբերությունը Phase-ի և Pass-ի միջև Compiler-ում:

Phase և Pass երկու տերմիններ են, որոնք օգտագործվում են կոմպիլյատորների տարածքում: Անցումն այն մեկ դեպքն է, երբ կոմպիլյատորը անցնում է (անցնում է) սկզբնաղբյուրի կոդը կամ դրա որևէ այլ ներկայացում: Սովորաբար, կոմպիլյատորներից շատերն ունեն առնվազն երկու փուլ, որոնք կոչվում են առջևի վերջ և հետևի վերջ, մինչդեռ դրանք կարող են լինել կամ մեկ անցումային կամ բազմապատիկ:Phase-ն օգտագործվում է կոմպիլյատորները դասակարգելու համար՝ ըստ կառուցվածքի, մինչդեռ անցումը օգտագործվում է դասակարգելու համար՝ ըստ նրանց աշխատանքի:

Խորհուրդ ենք տալիս: