Sobes.tech
Junior

Ինչ է թարգմանիչը?

sobes.tech AI

Պատասխան AI-ից

Թարգմանիչը ծրագրային կամ սարքավորումն է, որը փոխում է ծրագրավորող լեզվով (մեկնաբանի լեզու) գրված ծրագիրը մյուս լեզվով (նպատակային լեզու) հավասար ծրագրի:

Հիմնական տիպի թարգմանիչներ՝

  • Կոմպիլատոր: Փոխում է ամբողջ աղբյուրային կոդը մեքենայական կամ միջնորդական կոդի՝ մեկ անցումով:
    • Օրինակներ՝ GCC, Clang, Javac:
    • Առավելություններ՝ բարձր արագությամբ կատարում:
    • Թերություններ՝ պահանջում է բացահայտ կոմպիլացիայի քայլ՝ նախքան գործարկումը:
  • Ինտերպրետատոր: Կատարում է աղբյուրային կոդը տող առ տող կամ բլոկներով՝ առանց ամբողջ կոդի նախնական կոմպիլացիայի:
    • Օրինակներ՝ Python, Ruby, JavaScript (շատ հաճախ օգտագործում է JIT-կոմպիլացիա, բայց հիմնական մոդելը մեկնաբանությունն է):
    • Առավելություններ՝ արագ զարգացման ցիկլ (փոփոխություն-կատարում):
    • Թերություններ՝ սովորաբար ավելի դանդաղ է, քան կոմպիլացված կոդը, սխալները հայտնաբերվում են միայն գործարկման ժամանակ:

Կատարում է մի քանի փուլերով՝

  1. Լեքսիկական վերլուծություն (սքենինգ): Բաժանում է աղբյուրային կոդը տոքենների (լեքսեմների):
  2. Սինտակսական վերլուծություն (Parsing): Կառուցում է ծառային կառուցվածք (սինտակսական ծառ) տոքեններից, ստուգում լեզվի գրամատիկայի համապատասխանությունը:
  3. Սեմանտիկ վերլուծություն: Ստուգում է կոդի իմաստային ամբողջականությունը (տվյալների տեսակներ, փոփոխականների հայտարարություններ և այլն):
  4. Միջնորդական կոդի գեներացում: Ստեղծում է կոդ միջնորդական ներկայացումներում:
  5. Կոդի օպտիմալացում: Բարելավում է միջնորդական կամ վերջնական կոդը՝ կատարողականությունը բարձրացնելու համար:
  6. Նպատակային կոդի գեներացում: Թարգմանում է միջնորդական կոդը նպատակային լեզվին (օրինակ՝ մեքենայական կոդ):

QA կոնտեքստում կարևոր է հասկանալ, թե ինչպես են աշխատում թարգմանիչները՝

  • Դիտարկել ծրագրի վարքը և հայտնաբերել սխալներ, որոնք կապված են կոմպիլացիայի կամ մեկնաբանության հետ:
  • Թեստավորել ինքնին թարգմանչի աշխատանքը (զարգացման գործիքների թեստավորման ժամանակ):
  • Հասկացողություն ունենալ տարբեր հարթակներում և տարբեր թարգմանիչներով ծրագրերի կատարողականության և վարքի տարբերությունները։