WikiDer > Toter Code

Dode code

In dem Quellcode von Computer Programm's verweist toter Code oder unerreichbarer Code zu Codeteilen, die nie ausgeführt werden können, aber im Quellcode vorhanden sind. Toter Code ist aus mehreren Gründen unerwünscht:

  • Als die Programmierer Wenn Sie den Code ausführen möchten, gibt es ein Fehler im Programm.
  • Wenn man sich nicht bewusst ist, dass ein Stück Code niemals ausgeführt wird, kann Zeit verschwendet werden, diesen Code zu warten.

Redundanter Code ist Code, der ausgeführt wird, aber keinen Einfluss auf die Funktion des Programms hat. Es erklären von a Variable wenn es nicht verwendet wird, ist beispielsweise redundanter Code.

Etwas Compiler versuchen, bestimmte Arten von totem Code zu erkennen (während der Optimierungsphase) und melden Sie dies als Fehler oder Warnung an den Programmierer.

Beispiel

Ein Beispiel für toten Code:

wenn(nein>=0){// n größer oder gleich 0}sonstwenn(nein<0){// n kleiner als 0}sonst{// tot}

Der untere Teil (der zweite sonst) ist tot, da der darin enthaltene Code nie ausgeführt werden kann.

Toten Code erkennen

Toter Code kann erkannt werden mit statische Codeanalyse und eine Analyse der Kontrollfluss um zu sehen, welche Codeteile unter keinen Umständen ausgeführt werden können. Dies berücksichtigt den Wert der verwendeten Variablen und die möglichen Bedingungen bei der Programmausführung.

EIN Compiler kann Optimierungen durchführen, um den toten Code zu entfernen; Das wird sein Eliminierung von totem Code erwähnt. Code kann auch nach vom Compiler durchgeführten Optimierungen tot sein. Ein guter Compiler sollte toten Code melden, damit der Programmierer bestimmen kann, was mit einem solchen toten Code zu tun ist.

Es gibt kein Algorithmus die für jedes beliebige Stück Quellcode feststellen kann, ob es tot ist oder nicht. Dies ist gleichbedeutend mit der Lösung der Stoppproblem. Es ist daher nicht in allen Fällen möglich, den toten Code korrekt zu erkennen.

Bestimmte Situationen sind leicht zu erkennen, wie zum Beispiel:

intnein=21wenn(nein==4){// tot}

Andere Situationen erfordern jedoch mehr Aufwand, wie zum Beispiel:

doppeltnein=sqrt(2)wenn(nein>2){// tot}

Herkunft des toten Codes

Es kann mehrere Gründe geben, warum der Quellcode eines Computerprogramms toten Code enthalten kann.

Während der Softwareentwicklung können Entwickler Codeteile vorübergehend überspringen, um etwas zu testen: In solchen Fällen wird ein Codeteil hinzugefügt, um sicherzustellen, dass ein anderer Teil nicht ausgeführt wird. Ein Beispiel:

während(Bedingung){foo();Bar();}

Vorübergehend Bar(); überspringen, es ist möglich, den Code zu ändern:

während(Bedingung){foo();kontinuierlich;Bar();}

Das Stichwort kontinuierlich bedeutet, dass die Ausführung beim nächsten Durchlauf durch die Schleife fortgesetzt wird, durch die Bar(); wird übersprungen. Es ist möglich, dass solche temporären Änderungen im Code und damit auch in einer freigegebenen Version des Programms verbleiben.

Andere Beispiele für toten Code sind: redundante Prüfung an Ausnahmen und nicht gelöschter Code verwendet für debuggen. Toter Code kann auch entstehen, weil einige Funktionen des Programms geplant, aber nur teilweise implementiert wurden. Der entsprechende Code ist dann zwar vorhanden, aber während der Programmausführung nicht zugänglich.

Ganze Funktionen oder Methode kann tot sein, wenn sie nicht aufgerufen wird oder nur aus totem Code aufgerufen wird. Das gleiche gilt für Klassen im Objekt orientierte Programmierung.

Siehe auch