FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Korrektheit von Programmen

Korrektheit von Programmen 2002-02-18 11:54
Faleiro
Auf Seite 172 im Skript sind Definitionen für Korrektheit von Programmen aufgeführt.

————————————-

Korrektheit

Ein Programm heißt korrekt, wenn es genau die Spezifikation erfüllt, also für alle Argumente des Definitionsbereichs die korrekten Resultate berechnet. (Züllighoven, 1995)

Partielle Korrektheit

Ein Programm heißt partiell korrekt, wenn es, sofern es terminiert, korrekte Resultate liefert.

Totale Korrektheit

Ein Programm heißt total korrekt, wenn es für alle Eingaben mit korrekten Resultaten terminiert.

————————————-

Wie ist die Struktur dieser Definitionen?

Sind sie unabhängig voneinander?
Oder teilt sich "Korrektheit" auf in die anderen beiden?
Oder soll das eine Steigerung von schwach nach stark darstellen, nach der also ein part. korr. Prog. automatisch korr. ist und ein tot. korr. Prog. automatisch auch die anderen beiden?

Wenn nun ein Programm für manche Argumente aus dem Definitionsbereich (!) nicht terminiert, würde es die erste Definition nicht erfüllen, könnte die zweite aber immer noch erfüllen, da diese nur für terminierende Berechnungen Forderungen stellt.

Das klingt aber nicht sehr wahrscheinlich, vielleicht denke ich zu haarspalterisch. ;-)

Und was ist in der dritten Definition ein "korrektes Resultat", wenn die Argumente nicht zur Definitionsmenge gehören? Eine Fehlermeldung? ;-)


Re: Korrektheit von Programmen 2002-02-18 12:41
Slater
für mich klingt das eher nach partielle korrektheit als simpelstes, dann korrektheit (schliesst erste ein), und als stärkstes totale korrektheit (schliesst die anderen beiden ein),
aber wiedermal bin ich noch nicht so weit im skript, ist ja noch zeit…

Re: Korrektheit von Programmen 2002-02-18 17:55
XPhilosoph
Also, für mich siehts eher so aus, daß ein Programm partiell korrekt ist, wenn es eben für einige Eingaben funktioniert und terminiert, für andere (an sich richtige) Eingaben aber eben nicht terminiert. Ist das Programm korrekt, so terminiert es für alle richtigen/sinnvollen Eingaben. Bei totaler Korrektheit terminiert es auch bei total unsinnigen Eingaben, z.B. mit einer Fehlermeldung.

Re: Korrektheit von Programmen 2002-02-18 17:59
Popcorn
Hey Mann! Wie ich so etwas liebe! *g* Es gibt doch immer wieder einfache Erklärungen. *freu* Okay, weiter so. Vielleicht habe ich dann morgen doch noch 'ne Chance. *g*