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

Content deleted Content added
մանր-մունր, փոխարինվեց: << → «, >> → » oգտվելով ԱՎԲ
չ →‎top: վերջակետների ուղղում, փոխարինվեց: ի: → ի։ (3)
Տող 1.
{{Ծրագրի իրականացում}}
'''Դեկոմպիլյատորը   '''ծրագիր է,որը [[Տրանսլյատոր|տրանսլյացվում]] է կատարվող մոդուլը ՝ (կոմպիլյացիայի ելքում ստացված ) սկզբանկան կոդը   բարձր մակարդակի ծրագրավորման լեզվի:լեզվի։
 
'''Դեկոմպիլյացիան, '''պրոցեսս է որը դեկոմպիլյատորով վերստեղծումն է սկզբնական կոդը :
Տող 6.
Դեկոմպիլյացիան մասնավորապես օգտագործում են ծրագրի հակառակ մշակաման(''Reverse engineering'') դեպքում։ 
 
Դեկոմպիլյացիայի «հաջողությունը» կախված է ներկայացված կոդի ինֆորմացիայի ծավալից:ծավալից։ [[Բայթկոդ]]ը,որը օգտագործվում է վիրտուալ մեքենաների մեծամասնության կողմից  (օր.`''Java Virtual Machine կամ  .NET Framework Common Language Runtime'') հաճախ պարունակում են լայն մետատվյալներ, մինչդեռ [[մեքենայական կոդ]]ը ավելի բարդ է դեկոմպիլացվում: Հիմնականում դժվար կարդացվող են համարվում այն կանչերը, որոնք կատարվում են ենթածրագրից կամ անուղղակի հասցեավորմամբ ( բարձր մակարդակի ծրագրավորման լեզուներում ֆունկցիայի կամ պրոցեդուրաների ցուչիրներ):
 
Եթե հայտնի է, թե որ լեզվով է գրված եղել դեկոմպիլացվող ծրագիրը, ապա առաջին հերթին հետազոտվում է [[Run-time գրադարան]]ը, քանի որ հիմնականում ծրագրի կոմպիլյացիան այդ գրադարանում պրոցեդուրաների կանչերի հետ է կապվում: Բացի դրանից շատ [[կոմպիլյատոր]]ներ թույլ են տալիս տեսնել, թե ինչ [[Ասսեմբլեր լեզու|ասսեմբլեր]]ական կոդի են վերածվում ծրագրի օպերատորները կոմպիլյացիայից հետո: Ամենահեշտը տարբերվում են պրոցեդուրաների կանչերը և նրանցից վերադարձը:
 
Որոշ կոմպիլյատորներ և կոմպիլյացիայից հետո օգտագործվող գործիքներ ծրագրային կոդը ենթարկում են'' օբֆուսկացիայի ''` դեկոմպիլյացիան դժվարացնելու համար:համար։
 
== Դեկոմպիլյատորների օրինակներ ==