Kas yra programos pjaustymas?

Programinės įrangos programose programos pjaustymas yra pagrindinis programinės įrangos elementų identifikavimo ir švelnaus jų ištraukimo iš sudėtingesnio kodo, leidžiančio programai veikti, metodas. Tai ypač svarbu programinės įrangos inžinerijos pastangoms, nes tai leidžia programinės įrangos inžinieriui rasti kelią per sudėtingas kodo eilutes, kad galėtų pasiekti šaltinio kodą, kuris iš tikrųjų valdo programą. Galimybė išskleisti šias subprogramas ir peržiūrėti šaltinio kodą leidžia nustatyti daugybę galimų klaidų ir taip užtikrinti, kad programinė įranga veiktų efektyviau.

Neįprasta, kad kodas yra sąmoningai sudėtingas. Viena iš pagrindinių šio veiksmo priežasčių yra ta, kad sudėtingesnės kodo dalys padeda apsaugoti šaltinio kodą nuo virusų sugadinimo ir įsilaužimo bandymų. Paprastai programuotojas prideda daug papildomo kodo, dėl kurio iš esmės reikia atlikti daugybę papildomų veiksmų, kad atliktų tai, ką šaltinio kodas galėtų valdyti tik keliais žingsniais. Nors tai yra pageidautina programinės įrangos apsaugos nuo galimos korupcijos būsena, yra situacijų, kai reikia gauti šaltinio kodą. Čia atsiranda programos pjaustymas.

Yra du pagrindiniai programos pjaustymo būdai arba dimensijos. Semantinė dimensija sutelkia dėmesį į kodo eilutės elementus, kurie yra būtini ir todėl bus išsaugoti. Tiek statinės, tiek dinaminės funkcijos nustatomos ir išsaugomos naudojant specifinius pjaustymo metodus, kurie palieka esminius elementus, bet pašalina didžiąją dalį kodo, įterpto kaip maskavimo proceso dalis. Semantinės programos pjaustymo metu inžinierius turi pakankamai veiksmų laisvę nuspręsti, koks papildomas kodas iš tikrųjų liko, jei toks.

Sintaksės programos pjaustymas nesuteikia inžinieriui tiek pat parinkčių. Taikant šį metodą, pašalinama viskas, kas nėra būtina pagrindinei kodo funkcijai. Jei nustatoma, kad eilutė neturi tikro tikslo ir neturi jokios įtakos kode randamai dominančios semantikai, ji eina. Šis metodas padeda išsaugoti originalią programos sintaksę be jokių papildomų smulkmenų.

Antrasis ir vis labiau paplitęs sintaksės programų pjaustymo būdas yra žinomas kaip amorfinis programos pjaustymas. Taikant šį metodą, tikslas yra sudaryti galimybę skilčiai toliau dirbti su bet kokia sintaksine funkcija, kuri padeda išlaikyti semantinius apribojimus, kuriuos inžinierius nori išsaugoti kode.