Przekształcanie skompilowanego kodu maszynowego z powrotem na postać zbliżoną do kodu źródłowego to
Dekompilowanie to proces odwrotny do kompilowania. Kompilator tłumaczy kod źródłowy na kod maszynowy, a dekompilator próbuje z pliku wykonywalnego odtworzyć kod w języku wysokiego poziomu. Wynik jest tylko zbliżony do oryginału: nazwy zmiennych, komentarze i układ kodu zwykle giną podczas kompilacji, więc dekompilator zastępuje je własnymi oznaczeniami. Dekompilacji używa się m.in. przy analizie złośliwego oprogramowania, odzyskiwaniu utraconego kodu albo badaniu zgodności programów. Łatwiej odtworzyć kod z kodu pośredniego, np. Javy czy C#, niż z kodu maszynowego C++. Do zapamiętania: kompilacja - ze źródła do kodu maszynowego, dekompilacja - z powrotem. Dekompilację utrudniają celowo zaciemniacze kodu.
Wszystkie błędne nazwy opisują prawdziwe etapy pracy z programem, ale żaden z nich nie zamienia kodu maszynowego na źródłowy. Wdrażanie to instalacja gotowej aplikacji u użytkownika albo na serwerze, czyli ostatni etap cyklu życia programu. Analizowanie to szerokie pojęcie - analiza wymagań albo analiza kodu - i nie oznacza konkretnej operacji na pliku wykonywalnym. Debugowanie polega na uruchamianiu programu krok po kroku w debuggerze, podglądaniu wartości zmiennych i szukaniu błędów; pracuje się przy nim zwykle na kodzie źródłowym, który już się ma. Operacja odwrotna do kompilacji, która z kodu maszynowego odtwarza postać przypominającą źródło, nosi nazwę dekompilacji, a program, który ją wykonuje - dekompilatora. Warto też pamiętać, że dekompilacja cudzych programów bywa ograniczona licencją, dlatego w praktyce zawodowej stosuje się ją ostrożnie i zgodnie z prawem.