Montag, 2. November 2009

Text und Programm I

1. Sind alle Programme nicht auch Texte?

Wenn das stimmen soll, dann muss jedes Programm alles haben, was ein Text auch hat. Hervorstechende Textmerkmale sind die Kohäsion, die Kohärenz und die Situationsabhängigkeit.

a) Kohäsion
Die Syntax bei Programmen ist zwar variabel, aber nicht beliebig. Die Abfolge einzelner Anweisungen und Kontrollstrukturen ist grundsätzlich frei. Aber wenn eine Kontrollstruktur begonnen wird, muss sie auch beendet werden. Oder man muss Zuweisungen so schreiben, dass sie von rechts nach links funktionieren. Beachtet man das nicht, ist das Programm defekt. Überhaupt kann man defekte, d.h. nicht interpretierbare oder nicht kompilierbare Programme erzeugen,indem man die Syntaxregeln missachtet. In diesem Sinn darf man also von Kohäsion sprechen: Es gibt einen grammatischen Zusammenhang in Programmen, der falsifiziert werden kann.

b) Kohärenz

Kohärenz meint den Bedeutungszusammenhang, die durchgängig wahrnehmbare semantische Ebene. Man könnte das als Zustandsdeutungen in einem Programm suchen. Ein Programm operiert auf der Annahme einer Reihe von Zuständen, die je nach Programmablauf verändert werden können. Das Programm funktioniert nur dann richtig, wenn die Zustände immer gleich interpretiert, das heißt die Zustandsvariablen immer im gleichen Sinn verwendet werden. Ein Gegenbeispiel ist die Änderung der Zählvariable einer ForNext-Schleife aus dem Inneren der Schleife heraus. Diese Operation wäre syntaktisch möglich, aber eine Verletzung der Kohärenz. Die Folge ist wieder ein defektes Programm. Auch Kohärenz existiert in Programmen.

c) Situationsabhängigkeit

Ein großer Teil der Programmierarbeit ist es, von der Situation, in der das Programm läuft, soweit zu abstrahieren, dass es tatsächlich immer läuft. Das bedeutet aber nicht, dass es immer gleich abläuft. Teilweise sind die Situationen auch nur bedingt vorhersehbar. Etwa lebt die Idee der MMPORGs ja davon, dass einzelne Spieler miteinander interagieren und nicht alle zentral mit der Instanz eines Rechenhirns. Programmierte Spiele brauchen also eine gewisse Distanz von den Eingabemöglichkeiten und müssen trotzdem eine möglichst große Bandbreite von Spielverläufen ermöglichen. Grundlage dafür ist die Fehlerbehandlung, das Werfen einer Ausnahme. Programme sind also situationsabhängig. Andere Situationen produzieren andere Abläufe.

Die Betrachtung von Kohäsion, Kohärenz und Situationsabhängigkeit zeigt also, dass jedes Programm auch ein Text ist.

Keine Kommentare:

Kommentar veröffentlichen