Skip to main content

Hvad er programskæring?

I softwareapplikationer er programskæring en metode til at identificere kerneelementerne i et softwareprogram og forsigtigt udtrække dem fra den mere komplicerede kode, der giver programmet mulighed for at fungere.Processen med programskæring er især vigtig for softwareteknisk indsats, da det giver softwareingeniøren mulighed for at finde vejen gennem komplicerede kodestrenge for at få adgang til kildekoden, der faktisk driver applikationen.At være i stand til at udtrække disse underprogrammer og se kildekoden gør det muligt at identificere en lang række potentielle fejl og dermed få softwaren til at køre med mere effektivitet.

Det er ikke usædvanligt, at kode med vilje er kompliceret.En af hovedårsagerne til denne handling er, at de mere komplicerede dele af koden hjælper med at beskytte kildekoden mod korruption ved vira og hackingforsøg.Normalt tilføjer en programmør en stor ekstra kode, der i det væsentlige gør det nødvendigt at gennemgå et antal ekstra trin for at opnå det, der kunne styres af kildekoden med kun få trin.Selvom dette er en ønskelig tilstand fra perspektivet om at beskytte softwaren mod mulig korruption, er der situationer, hvor der er behov for at komme til kildekoden.Det er her programskæring kommer i spil.

Der er to grundlæggende tilgange eller dimensioner til programskæring.Den semantiske dimension fokuserer på elementerne i kodestrengen, der er nødvendig og dermed vil blive bevaret.Både statiske og dynamiske funktioner identificeres og konserveres ved at bruge specifikke metoder til skæring, der efterlader de væsentlige elementer, men fjerner meget af koden, der er indsat som en del af maskeringsprocessen.Med semantisk program, der skærer, har ingeniøren en hel del skøn ved at beslutte, hvad der, hvis nogen, af den ekstra kode faktisk er tilbage.

Syntaktisk programskæring giver ikke ingeniøren den samme mængde muligheder.Med denne tilgang fjernes alt, hvad der ikke er vigtigt for kodens kernefunktion.Hvis det konstateres, at en streng ikke tjener noget reelt formål og ikke har nogen indflydelse på semantikken af interesse, der findes i koden, går den.Denne tilgang hjælper med at bevare programmets originale syntaks uden ekstra dikkedarer.

En anden og stadig mere almindelig anvendelse af syntaktisk programskæring er kendt som amorf programskæring.Med denne tilgang er målet at gøre det muligt for skiven at fortsætte med at arbejde med enhver syntaktisk funktion, der hjælper med at bevare de semantiske begrænsninger, som ingeniøren ønsker at bevare i koden.