Co to jest krojenie programu?
W aplikacjach dzielenie programów jest metodą identyfikowania podstawowych elementów programu i delikatnego wydobywania ich z bardziej skomplikowanego kodu, który umożliwia działanie programu. Proces dzielenia programu jest szczególnie ważny dla wysiłków inżynierii oprogramowania, ponieważ pozwala inżynierowi oprogramowania znaleźć drogę przez skomplikowane ciągi kodu w celu uzyskania dostępu do kodu źródłowego, który faktycznie napędza aplikację. Zdolność do wyodrębnienia tych podprogramów i przeglądania kodu źródłowego umożliwia identyfikację szerokiego zakresu potencjalnych błędów, a tym samym zwiększenie wydajności oprogramowania.
Nierzadko kod jest celowo skomplikowany. Jednym z głównych powodów tego działania jest to, że bardziej skomplikowane części kodu pomagają chronić kod źródłowy przed uszkodzeniem przez wirusy i próby włamania. Zwykle programista dodaje wiele dodatkowego kodu, który w zasadzie powoduje, że konieczne jest wykonanie szeregu dodatkowych kroków, aby osiągnąć to, czym mógłby zarządzać kod źródłowy za pomocą zaledwie kilku kroków. Chociaż jest to pożądany stan z punktu widzenia ochrony oprogramowania przed możliwym uszkodzeniem, istnieją sytuacje, w których istnieje potrzeba dostępu do kodu źródłowego. W tym miejscu zaczyna się podział programów.
Istnieją dwa podstawowe podejścia lub wymiary do programowania krojenia. Wymiar semantyczny koncentruje się na elementach ciągu kodu, które są niezbędne, a zatem zostaną zachowane. Zarówno funkcje statyczne, jak i dynamiczne są identyfikowane i zachowywane przy użyciu określonych metod krojenia, które pozostawiają istotne elementy, ale usuwają znaczną część kodu wstawionego w ramach procesu maskowania. Dzięki podziałowi programów semantycznych inżynier ma dużą swobodę w decydowaniu o tym, jaki dodatkowy kod rzeczywiście pozostanie.
Podział programu na składnie nie zapewnia inżynierowi takiej samej liczby opcji. Dzięki takiemu podejściu usuwa się wszystko, co nie jest niezbędne do podstawowej funkcji kodu. Jeśli zostanie znaleziony ciąg znaków, który nie ma żadnego rzeczywistego celu i nie ma żadnego wpływu na semantykę zainteresowania znalezioną w kodzie, to idzie. Takie podejście pomaga zachować oryginalną składnię programu bez dodatkowych ozdób.
Drugie i coraz powszechniejsze zastosowanie dzielenia na programy składniowe jest znane jako dzielenie na programy amorficzne. Dzięki takiemu podejściu celem jest umożliwienie wycinkowi kontynuowania pracy z dowolną funkcją składniową, która pomaga utrzymać ograniczenia semantyczne, które inżynier chce zachować w kodzie.