Redundanter Code

Redundanter Code ist in der Programmierung der Bedeutung für den Quelltext eines Computerprogramms bzw. Teile davon, die, überflüssig ’sind. [1] [2]

Außerdem ist in der Technik, redundant ‚im Allgemeinen mehr vorkommenden Komponenten beschriftet. [3] [4] Auf Programmcode empfangener redundanter redundanter Code mehrfach identisch vorhande Quellcodeteile.

In der Regel Wird unter Textkopie „Code redundante“ im Anweisungsteil Eineine Programme schlechteste Kandidaten Grundsätzlich Sind Redundanzen (Wie Auch Toter – Code ) Auch in den Datendefinitionen Eines Programm MöGLICH.

Coderedundanz Kanns Auch über Unterschiedlich Programm hinweg auftreten – , ideal beispielsweise identische Funktionsteile in mehreren Prog Rahmen Jeweils einzelne Programmierer / codiert Werden, Anstätt sie als Unter Programm aufzurufen oder Durch Eine Include -Anweisung einzubinden.

Unterschiedlich bedeutung / Abgrenzung :
Auch Toter – Code Wird, ist Weil formal, Überfluß ‚Scheint, zum Teil als Redundant – Code bezeichnet, ist jedoch nicht redundant S. von, mehrfach vorhanden.‘.

Bedeutung

Alle Form redundanter Codes gelt aus Verschiedenen gründlich als unerwünscht BZW. Mangel an der Softwarequalität . Also, redundante Code CPU-Zeit, die andere Threads füttert. Darüber Hinaus Forward Weiterführender Code Speicherplatz und kann zu Caching von Befehls im Befehlscache der CPU führen. Redundant Code zeigt wieder die Wartbarkeit an , Code zum Dokumentieren und führt zu mehr Fehlern. [5] Es hat oft negative Auswirkungen auf Metriken und die Programmverifizierung .

Je nach Situation Kann redundanter Code jedoch Auch bewusst entsteht: Ist soll beispielsweise EIN vorläufigen oder Ehemaligen Quelltextteil Konservieren, Wird aus Bestimmt gründlich mehrfach Gehalten (siehe Quelltextklon ), hat bei gegebenem vorteile keiner nachteiligen bedeutung (. Z B. bei sehr kleinen Codefragmenten) – oder es liegt ein Programmfehler vor (BESONDERS Toter / unerreichbarer – Code), der D flat Entdeckung ein Ziel beim Software – Test ist.

Beispiel

1 int foo ( int x ) {
2 int y = 100 / x ; // toter code, weil du nicht verdorben bist wird
3 int z = x * x ; // reductions Code zu 2 Sails weiter unten
4 if ( z > = 0 ) {
5 return x * x ; // reductions Code zu 2 Sails weiter oben
6 }
7 return - 1 ; // uneroberbarer Code, dann z immer> = 0 ist
8 }
  • Toter Code – Im Beispiel wird in Zeile 2 von 100 durch xdividiert, wird aber nicht verdorben. Leicht, es geht um den Code. Ist allerdings x Null , wird eine Ausnahme ausgeschlossen. Eine Entfernung dieses Codes führt zu einer Änderung der Funktionalität. Da die Ausnahmen so auszulegen sind, wie sie sind, handelt es sich um ihre fehlerhaften Funktionalitäten, die minderwertig sind.
  • Redundanter Code – Im Beispiel wird xin Zeile 3 und 5 quarriert, ohne dass xdies geändert wird. Das Ergebnis ist so, dass der Code redundant ist. return zwäre so in der Zeile 5.
  • Unerreichbarer Code – Im Beispiel wird die Zeile 7 nicht so schlecht, da die Anfrage z >= 0in Zeil 4 wahr ist und Zeil 5 das Verfahren wißt. Somit handelt es sich um eine Belagerung von 7 um unerreichbarem Code.
  • Unbefriedigter Code – nach dem die Abfrage z >= 0in Zeile 4 ist, ist sie auch sinlos und kann ebenfalls entfernt werden. Unzufriedener Code Failed Swar in Keine der drei genannnten Kategorien, wird aber landläufig auch oft als toter Code bezeichnet.

Gründe

Redundanter Code definiert unter anderem durch

  • Programmierfehler in komplexen Tarifverhandlungen;
  • Eine Folge von internen Umwandlungen, die zu den Optimisten des Übersetzers zählten;
  • Unvollständiges Testen ist nicht möglich oder ändert Programm;

Analyse

Redundant Code to connected for a controls of current analysis and currently analysis of the current consultation , on the code of the control of the variables and andre Laufzeitbedingungen zu finden. Meine Hilfe konnte analysieren Werkzeuge können redundante Codeteile gefunden werden.

Einzelstunden

  1. Hochspringen↑ Saumya K. Debray, William Evans, Robert Muth, Björn De Sutter: Compiler-Techniken für die Code-Komprimierung . In: ACM-Transaktionen zu Programmiersprachen und -systemen (TOPLAS) . Band 22, Nein. 2, März 2000, S. 378-415, doi : 10.1145 / 349214.349233 (englisch).
  2. Hochspringen↑ computerlexikon.com 2012: Vorhanden als eigentlich gebraucht
  3. Hochspringen↑ neueswort.de Beispiele mit Bedeutung, mehrfach
  4. Hochspringen↑ linguee.de Alle Beispiele Gebet, mehrfach
  5. Hochsprung↑ David Noel Karte, Victor E Kirche, William W. Agresti: Eine empirische Studie von Software-Design-Praktiken . In: IEEE-Transaktionen zum Software-Engineering . Band 12, Nein. 2. Februar 1986, ISSN  0098-5589 , S. 264-271 (Englisch). Tabelle X bedeutet ferner, dass ein hoher Anteil von nicht referenzierten lokalen und aufrufenden Sequenzvariablen eine schlampige Ausführung bedeutet, was zu hohen Kosten und Fehlerraten führt.