Redundante Kodierung

Was ist eine Redundante Kodierung?

Die Redundante Kodierung stellt bei einer Computerprogrammierung einen Quellcode oder kompilierten Code in einem Computerprogramm dar, der nicht benötigt wird, wie zum Beispiel:

  • Eine Kodierung zur Berechnung eines Werts, der zuvor bereits berechnet wurde und noch verfügbar ist.
  • Eine Kodierung, die nie ausgeführt wird.
  • Eine Kodierung, die ausgeführt wird, aber keine externe Wirkung hat (z. B. ändert sich nicht die Ausgabe des Codes, die von einem Programm erzeugt wird; bekannt als toter Code).

Ein NOP-Befehl kann als redundante Kodierung angesehen werden, die explizit eingefügt wurde, um den Befehlsstrom aufzufüllen oder eine Zeitverzögerung einzuführen, um beispielsweise eine Zeitschleife durch “Zeitverschwendung” zu erzeugen. Bezeichner, die zwar deklariert, aber nie referenziert werden, werden als redundante Deklarationen bezeichnet.

Beispiele für eine redundante Kodierung

Bei int iY = iX*2; und return iX*2; ist der zweite iX * 2-Ausdruck ein redundanter Code und kann durch einen Verweis auf die Variable iY ersetzt werden. Alternativ kann stattdessen die Definition int iY = iX * 2 entfernt werden.

int shorter_magnitude
(int u1, int v1, int u2, int v2)

Als Konsequenz der Verwendung des C-Präprozessors wird der Compiler nur die erweiterte Form sehen: int shorter_magnitude(int u1, int v1, int u2, int v2)

Da die Verwendung von Min / Max-Makros sehr gebräuchlich ist, sind moderne Compiler darauf trainiert, die durch ihre Verwendung verursachte Redundanz zu erkennen und zu beseitigen.

Es gibt jedoch keine Redundanz im folgenden Code: #define max(A,B) ((A)>(B)?(A):(B)) int random(int cutoff, int range) {Returns (cutoff, cutoff, cutoff, return max(cutoff, rand()%range);}

Der Grund ist, dass seine Implementierung falsch ist. Wenn der anfängliche Aufruf von rand (), modulo range, größer oder gleich cutoff ist, wird rand () ein zweites Mal für eine zweite Berechnung von rand ()% range aufgerufen, was zu einem Wert führen kann, der tatsächlich niedriger ist als der Cutoff. Das Makro max funktioniert daher nicht für diese Funktion.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte