Junior
Ինչ է թարգմանիչը?
sobes.tech AI
Պատասխան AI-ից
Թարգմանիչը ծրագրային կամ սարքավորումն է, որը փոխում է ծրագրավորող լեզվով (մեկնաբանի լեզու) գրված ծրագիրը մյուս լեզվով (նպատակային լեզու) հավասար ծրագրի:
Հիմնական տիպի թարգմանիչներ՝
- Կոմպիլատոր: Փոխում է ամբողջ աղբյուրային կոդը մեքենայական կամ միջնորդական կոդի՝ մեկ անցումով:
- Օրինակներ՝ GCC, Clang, Javac:
- Առավելություններ՝ բարձր արագությամբ կատարում:
- Թերություններ՝ պահանջում է բացահայտ կոմպիլացիայի քայլ՝ նախքան գործարկումը:
- Ինտերպրետատոր: Կատարում է աղբյուրային կոդը տող առ տող կամ բլոկներով՝ առանց ամբողջ կոդի նախնական կոմպիլացիայի:
- Օրինակներ՝ Python, Ruby, JavaScript (շատ հաճախ օգտագործում է JIT-կոմպիլացիա, բայց հիմնական մոդելը մեկնաբանությունն է):
- Առավելություններ՝ արագ զարգացման ցիկլ (փոփոխություն-կատարում):
- Թերություններ՝ սովորաբար ավելի դանդաղ է, քան կոմպիլացված կոդը, սխալները հայտնաբերվում են միայն գործարկման ժամանակ:
Կատարում է մի քանի փուլերով՝
- Լեքսիկական վերլուծություն (սքենինգ): Բաժանում է աղբյուրային կոդը տոքենների (լեքսեմների):
- Սինտակսական վերլուծություն (Parsing): Կառուցում է ծառային կառուցվածք (սինտակսական ծառ) տոքեններից, ստուգում լեզվի գրամատիկայի համապատասխանությունը:
- Սեմանտիկ վերլուծություն: Ստուգում է կոդի իմաստային ամբողջականությունը (տվյալների տեսակներ, փոփոխականների հայտարարություններ և այլն):
- Միջնորդական կոդի գեներացում: Ստեղծում է կոդ միջնորդական ներկայացումներում:
- Կոդի օպտիմալացում: Բարելավում է միջնորդական կամ վերջնական կոդը՝ կատարողականությունը բարձրացնելու համար:
- Նպատակային կոդի գեներացում: Թարգմանում է միջնորդական կոդը նպատակային լեզվին (օրինակ՝ մեքենայական կոդ):
QA կոնտեքստում կարևոր է հասկանալ, թե ինչպես են աշխատում թարգմանիչները՝
- Դիտարկել ծրագրի վարքը և հայտնաբերել սխալներ, որոնք կապված են կոմպիլացիայի կամ մեկնաբանության հետ:
- Թեստավորել ինքնին թարգմանչի աշխատանքը (զարգացման գործիքների թեստավորման ժամանակ):
- Հասկացողություն ունենալ տարբեր հարթակներում և տարբեր թարգմանիչներով ծրագրերի կատարողականության և վարքի տարբերությունները։