Assembler vs Compiler
Ընդհանուր առմամբ, կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր, որը կոչվում է սկզբնաղբյուր, և այն թարգմանում է մեկ այլ լեզվով, որը կոչվում է նպատակային լեզու: Ավանդաբար, սկզբնաղբյուր լեզուն բարձր մակարդակի լեզու էր, ինչպիսին է C++-ը, իսկ թիրախային լեզուն ցածր մակարդակի լեզու էր, ինչպիսին է ասամբլեայի լեզուն: Այնուամենայնիվ, կան կոմպիլյատորներ, որոնք կարող են փոխակերպել սկզբնաղբյուր ծրագիրը, որը գրված է Assembly լեզվով և այն վերածել մեքենայի կոդի կամ օբյեկտի կոդի։ Նման գործիքներ են հավաքողները: Այսպիսով, և՛ հավաքողները, և՛ կոմպիլյատորները, ի վերջո, արտադրում են կոդ, որը կարող է ուղղակիորեն գործարկվել մեքենայի վրա:
Ի՞նչ է կոմպիլյատորը:
Կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր, որը կոչվում է սկզբնաղբյուր, և այն թարգմանում է մեկ այլ լեզվով, որը կոչվում է նպատակային լեզու: Ամենից հաճախ սկզբնաղբյուրը բարձր մակարդակի լեզու է, իսկ թիրախային լեզուն ցածր մակարդակի լեզու է: Այսպիսով, ընդհանուր առմամբ, կազմողները կարող են դիտվել որպես թարգմանիչներ, որոնք թարգմանում են մի լեզվից մյուսը: Բացի այդ, կոմպիլյատորները կատարում են կոդի որոշ օպտիմալացումներ: Տիպիկ կոմպիլյատորը կազմված է մի քանի հիմնական բաղադրիչներից։ Առաջին բաղադրիչը սկաներն է (հայտնի է նաև որպես բառապաշարի անալիզատոր): Սկաները կարդում է ծրագիրը և այն վերածում նշանների շարքի: Երկրորդ բաղադրիչը վերլուծիչն է: Այն փոխակերպում է նշանների տողը վերլուծական ծառի (կամ վերացական շարահյուսական ծառի), որն արտացոլում է ծրագրի շարահյուսական կառուցվածքը: Հաջորդ բաղադրիչը իմաստային առօրյաներն են, որոնք մեկնաբանում են շարահյուսական կառուցվածքի իմաստաբանությունը: Կոդի օպտիմալացումները և վերջնական կոդի ստեղծումը հետևում են դրան:
Ի՞նչ է Ասեմբլերը:
Assembler-ը ծրագրաշար է կամ գործիք, որը թարգմանում է Assembly լեզուն մեքենայի կոդ: Այսպիսով, assembler-ը կոմպիլյատորի տեսակ է, և սկզբնական կոդը գրված է Assembly լեզվով։ Ասամբլեան մարդու համար ընթեռնելի լեզու է, բայց այն սովորաբար մեկ առ մեկ կապ ունի մեքենայի համապատասխան կոդի հետ: Հետևաբար ասեմբլերը կատարում է իզոմորֆ (մեկից մեկ քարտեզագրում) թարգմանություն: Ընդլայնված հավաքիչներն ապահովում են լրացուցիչ հնարավորություններ, որոնք աջակցում են ծրագրի մշակմանը և վրիպազերծման գործընթացներին: Օրինակ, մակրոհավաքիչներ կոչվող անսամբլների տեսակը ապահովում է մակրո հնարավորություն:
Ո՞րն է տարբերությունը Assembler-ի և Compiler-ի միջև:
Կոմպիլյատորը համակարգչային ծրագիր է, որը կարդում է մի լեզվով գրված ծրագիր և այն թարգմանում մեկ այլ լեզվով, մինչդեռ ասեմբլերը կարելի է համարել կոմպիլյատորի հատուկ տեսակ, որը թարգմանում է միայն Assembly լեզուն մեքենայի կոդ: Կոմպիլյատորները սովորաբար արտադրում են մեքենայի գործարկվող կոդը անմիջապես բարձր մակարդակի լեզվից, բայց հավաքողները արտադրում են օբյեկտի կոդ, որը կարող է կապված լինել կապող ծրագրերի միջոցով՝ մեքենայի վրա գործելու համար:Քանի որ ասամբլեայի լեզուն ունի մեկից մեկ քարտեզագրում մեքենայական կոդով, ասեմբլերը կարող է օգտագործվել կոդ ստեղծելու համար, որն աշխատում է շատ արդյունավետ այն դեպքերում, երբ կատարումը շատ կարևոր է (օրինակ՝ գրաֆիկական շարժիչների, սահմանափակ ապարատային ռեսուրսներով ներդրված համակարգերի համար՝ համեմատած անհատական համակարգչի հետ։ ինչպես միկրոալիքային վառարաններ, լվացքի մեքենաներ և այլն):