Zum Inhalt springen

Diskussion:Off-by-one-Error

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 6. November 2008 um 21:24 Uhr durch Lostintranslation (Diskussion | Beiträge) (Verwendungshäufigkeit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 16 Jahren von Lostintranslation in Abschnitt Verwendungshäufigkeit

C-Beispiel

Was soll das letzte C-Beispiel? eine konstante ohne initialisierung??? das sollte man nochmal überarbeiten. ich mache hier nichts, weil ich nicht weiß, was dieses Beispiel beabsichtigt...

Da kann ich nur zustimmen. Mir erschließt sich das letzte Beispiel auch nicht vollständig. Es ist nicht nur eine Konstante nicht initialisiert, es ist keine Variable mit irgendeinem Wert gegeben. Eventuell sollte man ein Beispiel wie in der englischen Original-Seite verwenden? -- M.vossi, 2008-04-15

Fehlervermeidung

Ich würde außerdem noch einen neuen Abschnitt empfehlen, der die Möglichkeiten heutiger Programmiersprachen aufzeigt, wie Probleme dieser Art umgangen werden können (foreach-Konzept für Schleifen).

Für Java (ab 1.5) würde das dann zum Beispiel so aussehen:

String[] sFeld = { "string_a", "string_b" };
for (String sLaufvariable : sFeld) {
  System.out.println(sLaufvariable);
}

In diesem Beispiel wird immer über alle Feldelemente iteriert (es werden alle Elemente des gegebenen Feldes sFeld durchlaufen). Die Feldlängenbestimmung sowie den automatischen Variablen-Durchlauf übernimmt der Compiler, so dass der Programmierer sich nicht mehr explizit darum kümmern muss.

Stichworte: Generics, Iterations over Collections, foreach
Link: An enhanced FOR loop

Ein entsprechendes Beispiel müsste dann auch mal für C erstellt werden. -- M.vossi, 2008-04-15

Herkunft des Begriffs

Hallo,

woher stammt diese "Fehlerkategorisierung"? Wird "um-eins-daneben" auch in der Literatur über Softwarefehler und Testen verwendet? Ich stoße jetzt zum ersten Mal auf diesen Begriff (was natürlich nicht heißen muss, dass "off-by-one" nicht verwendet wird - der Fehler kommt leider allzu häufig in der Software-entwicklung vor, aber das es dafür einen Begriff gibt war mir bisher nicht bekannt). Leider keine Quellenangaben dabei...

Grüße

Der englische Begriff ist gar nicht mal so ungebräuchlich. Er wird in der Praxis häufig verwendet (insbesondere bei Software-Sicherheitsfirmen, die sich mit der Code-Analyse beschäftigen). Er hat sich (natürlich) aus dem englischen Sprachgebrauch entwickelt. Off bezeichnet dabei sowas wie Ende, Aus, Abschalten oder ähnliches Durch by wird nur der "Grund" angegeben. So gibt es zum Beispiel auch "Off by ten", wenn man um Zehn daneben gelegen hat. Da der Fehler "Off-by-one" aber nur allzu häufig begangen wird, ist er sozusagen eine extra Fehler-Kategorie geworden (sozusagen ein Standardfehler, dessen Ursache ja meistens das hier auch referenzierte Zaunpfahlproblem ist). Allerdings, die deutsche Übersetzung habe ich auch erst durch diesen Artikel erfahren und finde ihn, naja, etwas unglücklich. Das liegt wohl daran, dass es keine passende Übersetzung für das "Off by ..." gibt. Eine eher zutreffende Übersetzung für diese Wort-Kombination ist wohl "knapp daneben" (wobei das Englische durch die genaue Angabe des Wertes, um den man daneben liegt, diese Art des Fehlers "besser trifft"). -- M.vossi, 2008-04-15
"off" ist hier wohl eher im Sinn von "weg" oder "entfernt" verwendet (vgl. "die stimme aus dem off"), so daß die Übersetzung "um eins daneben" gar nicht so schlecht ist. Auch wenn ich zugegebenermaßen bisher immer nur die englische Fassung gelesen und gehört habe. --JokerClz 00:55, 29. Jun. 2008 (CEST)Beantworten

Verwendungshäufigkeit

englisch:2.370

deutsch:2.550

--Lostintranslation 22:42, 5. Nov. 2008 (CET)Beantworten

Zählen mit google hat ein Problem: Die Anzahl der Treffer auf der ersten Seite ist nur eine Schätzung. Du solltest nicht auf die erste, sondern auf die letzte Ergebnisseite achten und ausserdem Wikipedia-Klone und Wörterbücher ausschließen:
englisch 64
deutsch 18
Und jetzt können wir auch einfach mal diskutieren, bevor zu nachtschlafender Zeit Tatsachen geschaffen werden. --Gnu1742 22:55, 5. Nov. 2008 (CET)Beantworten
Ach ja: Ich hab vergessen, die nicht als Wikipedia-Klone gekennzeichneten Wikipedia-Klone auszuschließen: 4 Verwendungen von 'Um-eins-daneben-Fehler' --Gnu1742 23:01, 5. Nov. 2008 (CET)Beantworten
Man sollte mal für solche Fälle Suchstandards definieren. Allerdings ist jede Art der Suche nur ein mehr oder weniger ungenaues Schätzverfahren und keine Messung, deshalb darf man ein wie auch immer geartetes Suchmaschinenergebnis wohl nicht überbewerten. Alles nicht ganz so einfach. --Lostintranslation 20:24, 6. Nov. 2008 (CET)Beantworten