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

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

edits

Նավարկման ցանկ