Կազմող ընդդեմ թարգմանիչ
Կազմող և թարգմանիչ, երկուսն էլ հիմնականում ծառայում են նույն նպատակին: Նրանք լեզվի մի մակարդակը փոխարկում են մեկ այլ մակարդակի: Կոմպիլյատորը վերափոխում է բարձր մակարդակի հրահանգները մեքենայական լեզվի, մինչդեռ թարգմանիչը բարձր մակարդակի հրահանգը փոխակերպում է ինչ-որ միջանկյալ ձևի և դրանից հետո հրահանգը կատարվում է:
Կազմող
Կոմպիլյատորը սահմանվում է որպես համակարգչային ծրագիր, որն օգտագործվում է բարձր մակարդակի հրահանգները կամ լեզուն համակարգչի համար հասկանալի ձևի փոխակերպելու համար: Քանի որ համակարգիչը կարող է հասկանալ միայն երկուական թվերով, ուստի կոմպիլյատորն օգտագործվում է բացը լրացնելու համար, հակառակ դեպքում մարդու համար դժվար կլիներ տեղեկատվություն գտնել 0 և 1 ձևերով:
Ավելի վաղ կոմպիլյատորները պարզ ծրագրեր էին, որոնք օգտագործվում էին սիմվոլները բիթերի վերածելու համար: Ծրագրերը նույնպես շատ պարզ էին և պարունակում էին մի շարք քայլեր, որոնք ձեռքով թարգմանվում էին տվյալների մեջ: Այնուամենայնիվ, սա շատ ժամանակատար գործընթաց էր: Այսպիսով, որոշ մասեր ծրագրավորված կամ ավտոմատացված էին: Սա ձևավորեց առաջին կոմպիլյատորը։
Ավելի բարդ համադրիչներ են ստեղծվում՝ օգտագործելով ավելի պարզերը: Ամեն նոր տարբերակով դրան ավելացվում են ավելի շատ կանոններ և ավելի բնական լեզվական միջավայր է ստեղծվում մարդ ծրագրավորողի համար: Համապատասխան ծրագրերը զարգանում են այս կերպ, ինչը բարելավում է դրանց օգտագործման հեշտությունը:
Կան հատուկ համապատասխանողներ որոշակի հատուկ լեզուների կամ առաջադրանքների համար: Համապատասխանիչները կարող են լինել բազմաստիճան կամ բազմաստիճան անցուղի: Առաջին անցումը կարող է վերափոխել բարձր մակարդակի լեզուն համակարգչային լեզվին ավելի մոտ լեզվի: Այնուհետև հետագա անցումները կարող են այն վերածել վերջնական փուլի` կատարման նպատակով:
Թարգմանիչ
Բարձր մակարդակի լեզուներով ստեղծված ծրագրերը կարող են իրականացվել երկու տարբեր եղանակներով:Առաջինը կոմպիլյատորի օգտագործումն է, իսկ մյուս մեթոդը թարգմանիչի օգտագործումն է: Բարձր մակարդակի ուսուցումը կամ լեզուն թարգմանչի կողմից վերածվում է միջանկյալի: Թարգմանիչ օգտագործելու առավելությունն այն է, որ բարձր մակարդակի հրահանգը չի անցնում կոմպիլյացիայի փուլ, ինչը կարող է ժամանակատար մեթոդ լինել: Այսպիսով, օգտագործելով թարգմանիչ, բարձր մակարդակի ծրագիրը կատարվում է ուղղակիորեն: Դա է պատճառը, որ որոշ ծրագրավորողներ օգտագործում են թարգմանիչներ փոքր հատվածներ կազմելիս, քանի որ դա ժամանակ է խնայում:
Գրեթե բոլոր բարձր մակարդակի ծրագրավորման լեզուներն ունեն կոմպիլյատորներ և թարգմանիչներ: Բայց որոշ լեզուներ, ինչպիսիք են LISP-ը և BASIC-ը, նախագծված են այնպես, որ դրանց օգտագործմամբ ստեղծված ծրագրերը գործարկվեն թարգմանչի կողմից:
Տարբերությունը կոմպիլյատորի և թարգմանչի միջև
• Համապատասխանիչը փոխակերպում է բարձր մակարդակի հրահանգը մեքենայական լեզվի, մինչդեռ թարգմանիչը բարձր մակարդակի հրահանգը փոխակերպում է միջանկյալ ձևի:
• Կատարումից առաջ ամբողջ ծրագիրը կատարվում է կոմպիլյատորի կողմից, մինչդեռ առաջին տողը թարգմանելուց հետո թարգմանիչը կատարում է այն և այլն:
• Սխալների ցանկը ստեղծվում է կոմպիլյատորի կողմից կոմպիլյացիայի գործընթացից հետո, մինչդեռ թարգմանիչը դադարում է թարգմանել առաջին սխալից հետո:
• Անկախ գործարկվող ֆայլ ստեղծվում է կոմպիլյատորի կողմից, մինչդեռ թարգմանիչը պահանջվում է մեկնաբանվող ծրագրի կողմից ամեն անգամ: