Liefert ein sequentielles programm (vorausgesetzt fehlerfrei programmiert) immer ein korrektes Ergebnis (zB Ausgabe von Datensätzen ist richtig sortiert)?

4 Antworten

Ein vollständig korrektes Programm ist nicht garantiert, korrekte Ergebnisse zu liefern, wenn es auf fehlerhafter Hardware läuft.

Ein fehlerfreies Programm gibt es nicht.

Aber selbst wenn: Meistens ja, aber nicht immer.

Es besteht ein kleines Risiko, dass (kosmische) Strahlung den Computer beeinflusst. Dabei sorgt ein geladenes Teilchen für die Umkehrung eines Bit-Zustandes (1 oder 0) in einem Transistor oder Register, was zu fehlerhaften Verhalten führen kann.

Auf der Erde ist das Risiko sehr gering, im All sieht das anders aus, deshalb enthalten Satelliten entsprechende Hardware, die das Risiko minimieren soll.

Ich kann mir die Frage gerade nur im Zusammenhang von paralleler/nebenläufiger Programmierung/ausführung vorstellen. In dem Kontext würde ich sagen: Ja. Im Gegensatz dazu kann bei paralleler Ausführung das Ergebnis noch von der genauen Ausführungsabfolge abhängen.

Ansonsten würde ich auch zu Ja tendieren, da ja "fehlerfrei programmiert" dabei steht. Aber da würde die Frage weniger Sinn für mich ergeben.

Ein sequentielles Programm liefert immer jenes Ergebnis, das sich aus seiner Befehlsfolge und den Eingabedaten ergibt. Aus der Sicht des Programmes ist das Ergebnis immer korrekt.

Ob das auch jenes Ergebnis ist, das der Programmierer haben wollte, ist eine andere Frage.

Wenn der Programmierer vergisst, die Daten vor der Ausgabe zu sortieren, dann wird das Programm diese unsortiert ausgeben. Dies ist aus der Sicht des Programmes korrekt, denn es hat ja niemand ein Sortieren befohlen.


guacamole780 
Fragesteller
 06.10.2023, 19:18

also kann ich hier sagen ja und nein? weil ich habe gelesen, dass eine sequentielle programmierung ja immer darum bemüht ist, ein möglichst optimales Ergebnis zu erzielen und jetzt weiß ich wirklich nicht, wie die Frage gemeint ist.

0