Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Unter <strong>der</strong> Annahme obige Aussage sei richtig, erhalten wir einen Wi<strong>der</strong>spruch, da die Aussage ihre eigene<br />
Falschheit postuliert. Nehmen wir dagegen an, daß die Aussage falsch sei, dann wäre obiger Satz richtig und<br />
wir hätten wie<strong>der</strong>um einen Wi<strong>der</strong>spruch. Der Grund für dieses Problem liegt in <strong>der</strong> Selbstreferenz <strong>der</strong> Aussage.<br />
Um in unserem Kontext (<strong>der</strong> Erstellung maschinenlesbarer Aufgabenbeschreibungen) eine Aufgabenstellung<br />
diskutieren zu können, benötigen wir also eine Beschreibungsform, die es sowohl ermöglicht, zu entscheiden, ob<br />
eine Aussage eine Interpretation hat und falls sie eine hat, welche dies ist. Dazu müssen wir in <strong>der</strong> Lage sein,<br />
einem Satz eine eindeutige Bedeutung zu geben und zu entscheiden, wie die Zusammensetzung mehrerer Sätze<br />
zu interpretieren ist. Ein weiterer Grund, warum wir eindeutig interpretierbare Sprachen benötigen, besteht<br />
darin, daß wir Arbeitsanweisungen an eine Maschine geben wollen. Diese ist jedoch nur in <strong>der</strong> Lage, eindeutige<br />
Aufträge zu verarbeiten. Computerlinguisten versuchen schon ziemlich lange, einer Maschine beizubringen,<br />
das Verstehen natürlicher Sprache zu simulieren; bislang mit mäßigem Erfolg.<br />
Das bisher Gesagte soll nun aber nicht heißen, daß es keine Notwendigkeit für die Mehrdeutigkeiten und<br />
Inkonsistenzen <strong>der</strong> natürlichen Sprache gibt; ganz im Gegenteil. Sie ist nur für den hier angestrebten Zweck<br />
ungeeignet. Natürliche Sprache ist ein Spiegel u.a. ihrer eigenen Entstehungsgeschichte und des sozialen,<br />
kulturellen, zeitlichen, historischen und örtlichen Kontextes <strong>der</strong> Kommunikationspartner. 2 Mithin ist es durch<br />
sie auch möglich, Dinge abhängig von diesem Kontext zu diskutieren.<br />
Was ist nun eine geeignete Sprache zur Beschreibung von Aufgabenstellungen? Die For<strong>der</strong>ung nach eindeutiger<br />
Interpretierbarkeit ist unzureichend, da in <strong>der</strong> Menge dieser Sprachen beliebig viele enthalten sind, bei<br />
denen wir auf Fragen, die für uns relevant sind, keine Antwort erhalten können. Unsere Konsequenz besteht<br />
darin, daß wir zur Beschreibung <strong>der</strong> Eigenschaften eines Programmes die formale Logik, speziell die in<br />
<strong>der</strong> Mathematik etablierte Prädikatenlogik, verwenden. Von dieser weiß man, daß sie mächtig genug ist, um<br />
die uns interessierenden Fragen zu behandeln und eine erkleckliche Anzahl Antworten zu ermöglichen. Kurz<br />
gesagt, die Prädikatenlogik genügt den von uns gestellten Anfor<strong>der</strong>ungen an eine Sprache am besten.<br />
In diesem Kapitel werden zunächst die <strong>Grundlagen</strong> eingeführt, die wir benötigen, um Sprache zu beschreiben.<br />
Der Formalismus zur Beschreibung von Sprache überhaupt wird u.a. am Beispiel <strong>der</strong> Ausagenlogik<br />
eingeführt. Diese ist hinreichend einfach und sollte dem Inhalte nach bekannt sein, wenn auch nicht in dieser<br />
formalen Form. Die hier gewählte Darstellung <strong>der</strong> formalen Sprachbeschreibungen ist we<strong>der</strong> erschöpfend noch<br />
vollständig formal. Die eingeführten Begriffe bilden jedoch die Grundlage für die gesamte Veranstaltung.<br />
Im Anschluß an die Darstellung formaler Sprachbeschreibungen werden wir auf die Frage eingehen, wie man<br />
von einer umgangssprachlichen Beschreibung zu einer in einer formalen Sprache gelangt. Danach werden zwei<br />
Beispiele für Spezifikationssprachen eingeführt: zum einen die bereits erwähnte Prädikatenlogik, zum an<strong>der</strong>en<br />
eine dreiwertige Logik, um für Spezifikationen und Programmbeweise eine bessere Handhabe zu haben. An<br />
dieser Stelle werden wir weitere, auch für die Aussagenlogik relevante Begriffe wie ‘Tautologie’ einführen. Die<br />
Logik wird dabei eingeführt, um ein Beschreibungsmittel für Eigenschaften und Aufgaben von Programmen zu<br />
haben und <strong>der</strong>en Erfüllung überprüfen zu können. Themen wie Vollständigkeit und Wi<strong>der</strong>spruchsfreiheit von<br />
Ableitungssystemen, für die sich die mathematische Logik interessiert, werden daher nur am Rande gestreift.<br />
Es empfiehlt sich für <strong>Informatik</strong>er, bei an<strong>der</strong>er Gelegenheit das Thema Logik zu vertiefen.<br />
Wir haben uns bemüht, diese Beschreibung <strong>der</strong> <strong>Grundlagen</strong> so zu gestalten, daß möglichst wenig auf Kenntnisse<br />
Bezug genommen wird, die erst in einem späteren Teil eingeführt werden. Stellenweise ist dies jedoch<br />
nicht möglich gewesen. Es empfiehlt sich daher, den Teil bis zum Kapitel Syntax nach dem Durcharbeiten des<br />
gesamten Kapitels 2 nochmals zu wie<strong>der</strong>holen. Zur Darstellung muß noch erwähnt werden, daß üblicherweise<br />
erst die formalen Definitionen angegeben werden, und im Anschluß daran die Erläuterungen folgen.<br />
Eine Liste weiterführen<strong>der</strong> Literatur findet sich am Ende dieses Kapitels. Es wird nicht erwartet, daß Sie<br />
diese Bücher durcharbeiten. Die dort gemachten Angaben sollen Sie aber in die Lage versetzen, bei Interesse<br />
den einen o<strong>der</strong> an<strong>der</strong>en Punkt zu vertiefen.<br />
2 Aus Gründen <strong>der</strong> Lesbarkeit wird auf Formen wie KommunikationspartnerInnen verzichtet. Frauen sind jedoch explizit<br />
immer mitgemeint. Wer die mangelnde Lesbarkeit solcher Ausdrücke anzweifelt, möge sich klarmachen, daß mit <strong>der</strong> Wahl <strong>der</strong><br />
dualen Form alle Pronomina, Artikel usw. entsprechend anzupassen sind.