«Ինտերպրետատոր»–ի խմբագրումների տարբերություն

չ
վերջակետների ուղղում, փոխարինվեց: լ: → լ։ (19)
(մանր-մունր, փոխարինվեց: → (19), ։Ի → ։ Ի, ը ։ → ը։ (2), վ ։ → վ։ oգտվելով ԱՎԲ)
չ (վերջակետների ուղղում, փոխարինվեց: լ: → լ։ (19))
Ինտերպրետատորը ծրագիր է, որը ուղղակիորեն [[Ծրագրի կատարում|կատարում]] է,[[Ծրագրավորման լեզու|ծրագրավորման]] կամ սկրիպտավորման լեզուներով գրված հրամաններ,առանց դրանք նախապես [[Կոմպիլայացիա|կոմպիլյացնոլով]] մեքենայական լեզվի ծրագրի։ ինտերպրետատորը ծրագրի կատարման համար  հիմանակնաում օգտագործում է հետևյալ ստրատեգիաներից մեկը՝
 
#վերլուծել ({{lang-en|parse}}) [[Ելակետային կոդ|սկզբանկան կոդը]]  և ուղղակիորեն կատարել:կատարել։
#թարգմանել [[Ելակետային կոդ|սկզբանկան կոդը]], ինչ որ միջանկյալ տեսքի և իրականցնել այն:այն։
#Հստակ իրականցնել պահպանված նախակոմպիլյացված({{lang-en| precompiled}}) կոդը՝ կոմպիլյատորի կողմից կազմված,որը հանդիսանում է ինտերպրետատորի համակարգի մի մաս:մաս։
 
Սկզբնական ծրագրերը կոմպիլյացվում են նախապես և մեքենայում պահվում որպես անկախ կոդ, որը հետո [[Կապերի խմբագրիչ|կապվում]] է կատարման ժամանակ և իրականացվում ինտերպրետատորի և/կամ կոմպիլյատորի կողմից({{lang-en| [[Just-in-time compilation|JIT]] }} կոմպիլյացիայի համակարգի համար):
 
Չնայած ինտերպրետացիան և կոմպիլյացիան համարվում են երկու հիմանական միջոց ծրագրավորման լեզուների իրականցման համար,դրանք չեն հակասում միմյանց,որովհետև ինտերպրետացվող համկարգերի մեծ մասը կատարում է նաև թարգմանչական աշխատանք, ինչպես կոմպիլյատորը:կոմպիլյատորը։ "Ինտերպրետացվող լեզու" կամ "կոմպիլյացվող լեզու" տերմինները նշանակում են որ տվյալ լեզվի իրականցումը տեղի է ունենում ինտերպրետատորի կամ կոմպիլյատորի միջոցով՝ համապատասխանաբար:համապատասխանաբար։
 
== Կոմպիլյատորների և ինտերպրետատորների համեմատումը ==
[[Պատկեր:Linker.svg|thumb|Կապերի խմբագրիչի  գործընթացը։]]
Բարձր մակարդակի լեզուներով գրված ծրագրերը,  կամ ուղղակիորեն իրականցվում են ինտերպրետատորի ինչ-որ մի տեսակով, կամ կոմպիլյատորի կողմից ձևափոխվում են [[Machine code|մեքենայական կոդի]]՝ պրոցեսորի համար,որպեսի այն կատարի:կատարի։ 
 
Չնայած կոմպիլյատորների հիմանկան արդյունքը հարդվերի կողմից գործարկվող մեքենայական կոդն է,դրանց արդյունքը հաճախ կարող է ընդունել միջանկյալ տեսք՝ [[Object code|օբյեկտային կոդ]]({{lang-en| object code }}) անվանմամբ:անվանմամբ։ Կոմպիլյացվող ծրագիրը սովորաբար օգտագործում է կառուցվող բլոկներ (ֆունկցիաներ) գրադարանում պահված այդպիսի օբյեկտային կոդի մոդուլներ. [[Կապերի խմբագրիչ]]ը ({{lang-en| linker }})օգտագործում է գրադարանային ֆայլերը օբյեկտային ֆայլերի հետ միավորելու համար  մեկ գործարկվող ({{lang-en| executable }}) ֆայլում:ֆայլում։
 
Երկուսն էլ՝ կոմպիլյատորները և ինտերպրետատորները հիմնականում սկզբնական կոդը վերածում են թոքենների ({{lang-en| token}}), երկուսն էլ կարող են գեներացնել վերլուծության ծառ({{lang-en| parse tree}}),և երկուսն էլ կարող են գեներացնել անմիջական հրահանգներ (ստեկային մեքենայի համար,կամ այլ  միջոցներով): Հիմնական տարբերությունը այն է, որ կոմպիլյացվող համկարգերը,այդ թվում լինկերը, գեներացնում են ակախ գործող մեքենայական կոդի  ծրագիր, մինչ դեռ ինտերպրետացվող համակարգերը դրա փոխարեն իրականցնում են գործողություններ նկարագրված բարձր մակարդակի լեզուներով:լեզուներով։
 
[[File:kaantotulkkaus.png|thumb|upright=1.87 | Կոմպիլյացում և ինտերպրետացում]]
 
Կոմպիլյատորը փոխակերպում  է միանգամից ամբողջ սկզբնական կոդը:Արդյունքըկոդը։Արդյունքը ստացվում է մեկ կամ մի քանի օբյեկտային կոդի ֆայլեր:ֆայլեր։ Իտերպրետատորը նույնպես փոխակերպում է սկզբանական կոդը,սակայն տող առ տող:Երբտող։Երբ առաջին տողը արդեն փոխակերպված է,այն միանգամից  կատարվում է:է։
 
Մեկ անգամ կոմպիլյացնել և  [[Ծրագրի կատարում|կատարել]]   ցանկացած ժամանակ:Կոմպիլյացվողժամանակ։Կոմպիլյացվող ծրագիրերն ամեն անգամ չեն կոմպիլյացվում:կոմպիլյացվում։ Ինտերպրետացվող ծրագրերը ինտերպրետացվում են տող առ տող ամեն անգամ,երբ դրանք [[Ծրագրի կատարում|կատարում]] են:են։
 
Կոմպիլյաորը չի թույլատրում գործարկել ծրագիրը,քանի դեռ այն լիովին անսխալ է:է։ Ինտերպրետատորը [[Ծրագրի կատարում|կատարում]]  է ծրագիրը առաջին տողից սկսած և դադարում է միայն այն դեպքում, երբ հանդիպում է սխալ:սխալ։ 
 
=== Մշակման ցիկլ ===
* '''Ինքնաձևափոխվող կոդը''' ( {{lang-en | Self-modifying code }}) կարող է հեշտությամբ իրականցվել ինտերպրետացվող լեզուներում։ Դա վերաբերվում է Լիսպի ինտերպրետացիային և [[Արհեստական բանականություն|արհեստական բանականության]] հետազոտմանը։
* '''Վիրտուալիզացիա'''( {{lang-en | Virtualization }}):''Վիրտուալիզացիան վերաբերվում է ինչ-որ բանի վիրտուալ տարբերակի ստեղծմանը,ներառած վիրտուալ հարդվերի պլատֆորմներ, օպերացիան համակարգեր, [[հիշող սարք]]եր, [[համակարգչային ցանց]]ի ռեսուրսներ։''։[[Մեքենայական կոդ]]ը նախատեսված մեկ հարդվերի ճարտարապետության համար, կարող է աշխատել մեկ ուրշներում, օգտագործոլով վիրտուալ մեքենա։
* '''Ավազաման''' ( {{lang-en | Sandboxing }}): ''Ավազամանը համակարգչային անվտանգությունում հատուկ մշակված միջոց է, համակարգչային ծրագրերի անվտանգ կատարման համար։''։ Ինտերպրեատատորը կամ վիրտուալ մեքնենան իրականում ստիված չեն կատարել սկզբանական կոդի բոլոր հրամանները, դա մշակվում է։ Մասնավորապես, այն կարող է հրաժարվել կարարել կոդը, որը խախտում է որևէ ապահովության սահմանները:սահմանները։
 
== Հղումներ ==
167 013

edits