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

Ավելացվել է 32 բայտ ,  6 տարի առաջ
չ
փոխարինվեց: [[File: → [[Պատկեր: (4)
չ (oգտվելով ԱՎԲ)
չ (փոխարինվեց: [[File: → [[Պատկեր: (4))
Երկուսն էլ՝ կոմպիլյատորները և ինտերպրետատորները հիմնականում սկզբնական կոդը վերածում են թոքենների ({{lang-en| token}}), երկուսն էլ կարող են գեներացնել վերլուծության ծառ({{lang-en| parse tree}}),և երկուսն էլ կարող են գեներացնել անմիջական հրահանգներ (ստեկային մեքենայի համար, կամ այլ  միջոցներով): Հիմնական տարբերությունը այն է, որ կոմպիլյացվող համկարգերը, այդ թվում լինկերը, գեներացնում են ակախ գործող մեքենայական կոդի  ծրագիր, մինչ դեռ ինտերպրետացվող համակարգերը դրա փոխարեն իրականցնում են գործողություններ նկարագրված բարձր մակարդակի լեզուներով։
 
[[FileՊատկեր:kaantotulkkaus.png|thumb|upright=1.87 | Կոմպիլյացում և ինտերպրետացում]]
 
Կոմպիլյատորը փոխակերպում  է միանգամից ամբողջ սկզբնական կոդը։ Արդյունքը ստացվում է մեկ կամ մի քանի օբյեկտային կոդի ֆայլեր։ Իտերպրետատորը նույնպես փոխակերպում է սկզբանական կոդը, սակայն տող առ տող։ Երբ առաջին տողը արդեն փոխակերպված է, այն միանգամից  կատարվում է։
 
=== Բաշխման սկզբունք ===
[[FileՊատկեր: Скриншот 2015-12-02 21.52.29.png|thumb|center|upright=3.0]]
Կոմպիլյատորը սկզբնական կոդը փոխակերպում է բինար ինստրուկցիաների, հատուկ պրոցեսսորի համար, դարձնելով այն ավելի քիչ դյուրակիր({{lang-en| portable}})։ Այդ փոխակերպումը տեղի է ունենում միայն մեկ անգամ և դրանից հետո նույն բինար ինստրուկցիաները տեղաբաշխում են օգտագործողի մեքենայում, որտեղ այն կարողանում է կատարվել առանց հետգա թարգմանությունների։ [[Խաչաձև կազմարկիչ|Կրոսս կոմպիլյատորներ]]ը կարողանում են գեներացնել բինար կոդ օգտագործողի մեքենայի համար, անգամ եթե այն ունի այլ պրոցոսսոր քան մեքենան, որտեղ կոդը կոմպիլյացվում է։
 
 
Ինտերպրետատորը կարող է օգտագործել նույն [[Լեքսիկական վերլուծություն|լեքսիական անալիզատորը]] և շարահյուսական վելուծություն, ինչպես կոմպիլյատորը և հետո ինտերպրետացնում է արդյուքը աբստրակտ շարահյուսության ծառի տեսքով({{lang-en| abstract syntax tree }})։
[[FileՊատկեր:building_blocks.png|thumb|center|upright=2.0| Կոմպիլյացում և ինտերպրետացում]]
 
=== Ռեգրեսիա ===
 
=== JIT կոմպիլյացիան (Just-in-time compilation) ===
[[FileՊատկեր:Compile.PNG|thumb|upright=1.87 |.NET կոպիլյատորով սկզբնական կոդը կոմպիլայցվում է ՛՛exe՛՛-ի կամ ՛՛dll՛՛-ի]]
{{main|JIT կոմպիլյացիան}}