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

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