Co to jest krojenie programu?
W aplikacjach krojenia programu jest metodą identyfikacji podstawowych elementów oprogramowania i delikatnego wyodrębnienia ich z bardziej skomplikowanego kodu, który pozwala programowi funkcjonować. Proces krojenia programu jest szczególnie ważny dla wysiłków inżynierii oprogramowania, ponieważ pozwala inżynierowi oprogramowania znaleźć drogę poprzez skomplikowane struny kodu w celu uzyskania dostępu do kodu źródłowego, który faktycznie napędza aplikację. Możliwość wyodrębnienia tych podprogramów i przeglądania kodu źródłowego umożliwia identyfikację szerokiego zakresu potencjalnych błędów, a tym samym uczynienie oprogramowania z większą wydajnością.
Nie jest niczym niezwykłym, że 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 hakowania. Zwykle programista dodaje wiele dodatkowego kodu, który zasadniczo sprawia, że konieczne jest przejście przez szereg ekstrustkroki w celu osiągnięcia tego, co może zarządzać kodem źródłowym z zaledwie kilkoma krokami. Chociaż jest to pożądany stan z perspektywy ochrony oprogramowania przed możliwą korupcją, istnieją sytuacje, w których istnieje potrzeba dotarcia do kodu źródłowego. W tym miejscu wchodzi w grę krojenia programu.
Istnieją dwa podstawowe podejścia lub wymiary do krojenia programu. Wymiar semantyczny koncentruje się na elementach niezbędnego ciągu kodu, które zostaną zachowane. Zarówno funkcje statyczne, jak i dynamiczne są identyfikowane i zachowane poprzez wykorzystanie określonych metod krojenia, które pozostawiają niezbędne elementy, ale usuwają znaczną część kodu wstawionego w ramach procesu maskowania. Dzięki krojeniu programu semantycznego inżynier ma sporo dyskrecji przy podejmowaniu decyzji o tym, co, jeśli w ogóle, dodatkowego kodu.
Krojenie programu syntaktycznego nie zapewnia eNgineer z taką samą liczbą opcji. Dzięki temu podejściu wszystko, co nie jest niezbędne dla podstawowej funkcji kodu, jest usuwane. Jeśli stwierdzono, że ciąg nie służy żadnego prawdziwego celu i nie ma żadnego wpływu na semantykę zainteresowań znalezionych w kodzie, to się dzieje. Takie podejście pomaga zachować oryginalną składnię programu bez żadnych dodatkowych falbanowych.
Drugie i coraz powszechniejsze stosowanie krojenia programu syntaktycznego jest znane jako krojenie programu amorficznego. Dzięki takiemu podejściu celem jest umożliwienie plasterze kontynuowania pracy z dowolną funkcją składniową, która pomaga utrzymać ograniczenia semantyczne, które inżynier chce zachować w kodzie.