Computerprogramm        zurück ]      [ Stichworte ]      [ Die Hyper-Bibliothek ]      [ Systemtheorie ]         [ Meine Bücher ]         [ Meine Blogs ]bild
 
bild

Homonyme: siehe Programm
siehe auch: programmieren, Programmiersprache, Daten und Programme, Software, Virus

Gemeint sind hier materielle Artefakte, die zur Steuerung von Automaten verwendet werden. Der Ausdruck "Computerprogramm" soll nur den Kontext markieren. Die Wörter "Computer", "Software" und Programmiersprache" wurden als metaphorisch gemeinte Bezeichnungen gewählt, es sind keine Begriffe, sondern Eigennamen für hergestellte Gegenstände (oder wenn man will, für Klassen solcher Gegenstände). Die Wörter Programm und programmmieren werden schon lange verwendet, aber sie bekamen im Zusammenhang mit Computern einen begrifflich klaren Sinn, den sie in den Metaphern naturgemäss nicht haben.

bild bild
N-Gramm anklicken

 

Differenztheoretisch bezeichne ich als Computer-Programm eine "Difference" zwischen einem Text (wie dem nebenstehenden Beispiel) und einer Instanz des Programm-Objektes, das den schaltsinnmässigen Zustand des mit dem Programm gesteuerten Automaten bestimmt. Ein Computerprogramm ist differentiell ein spezieller Text.

Als Text ist ein Computer-Programm eine Konfiguration von Schaltern, die als Beschreibung des Zustandes der programmgesteuerten Maschine gelesen werden kann. Die Konfiguration von Schaltern kann beispielsweise durch eine Lochkarten repräsentiert werden. Das sogenannte "Einlesen" der Karte - das mit Lesen nichts zu tun hat - bewirkt, dass der Steuerungsmechanismus in den entsprechenden Zustand versetzt wird. Anstelle der Lochkarte können beliebige andere Artefakte verwendet werden, die man wie Lochkarten strukturieren kann. Ueblicherweise wird heute ein sogenannter (Hard-)Disk beschrieben, der dann dieselbe Funktion wie eine Lochkarte hat (ausführlicher in Wie funktioniert ein Computer?).

Die sekundäre Lesbarkeit des Programmes beruht darauf, dass die Schalterkonfiguration durch die Implementierung einer Programmiersprache als Code erscheint, der interpretiert werden kann. Als sekundär lesbar bezeichne ich Programme, weil sie primär als Computersteuerung fungieren, also nicht gelesen werden. Die Lesbarkeit dient nicht der Steuerung, sondern dem Programmierer.

Als Objekt-Instanz ist ein Programm ein bestimmter Zustand einer Menge von Schaltern in der Maschinensteuerung. Der Steuerungzustand wird durch den Programmcode definiert. Bei einem mit Lochkarten programmierten Computer repräsentiert die Lochkarte den Programmcode. Jedes "Einlesen" der Karte erzeugt insofern eine Instanz des Programmes, als der Steuerungsmechanismus dann durch das Programm-Objekt beschrieben wird (mehr über die Objekt-Terminonlogie im Kontext des Programmierens).

bild

Ein Beispiel aus dem Netz

PROGRAM wuerfelwurf; 
USES crt;
VAR anzahl, wurf, treffer: longint;
    augenzahl: integer;
BEGIN
   clrscr;  
   writeln; writeln;
   write ('Anzahl der Würfe: '); readln (anzahl);  
   writeln; writeln;
   writeln('Würfe Würfe m. Augenzahl 6
      Rel. Häufigkeit'); 
   writeln; 
   randomize;
   treffer: = 0;  
   FOR wurf: = 1 TO anzahl DO  
   BEGIN 
       augenzahl: = random(6) + 1;  
       IF augenzahl = 6 THEN 
            treffer: = treffer + 1; 
       IF wurf mod 100 = 0   
           THEN writeln(wurf: 6, treffer:
                    17, treffer/wurf: 25 : 8)  
   END; 
   readln 
END. 


Anmerkungen:

Differenztheoretisch ist auch eine andere Beschreibungsebene interessant. Wo von Programmen die Rede ist, taucht immer auch die Vorstellung (die Redeweise) auf, dass ein Programm eine Anweisung (oder eine Menge von Anweisungen) für einen Computer darstelle, dass also mit dem Programm dem Computer "gesagt" wird, was er tun soll/muss. Die Programmiersprache erscheint dann als Sprache, die der Programmierer mit dem Computer spricht. Diese krude Idee beruht auf einem didaktischen Trick, mit welchem Anfänger in die Programmierung eingeführt werden: Man muss es dem Computer ganz genau sagen! Programmierer bleiben oft bei dieser kindischen Formulierung, weil ihnen gleichgültig ist, wie man über das Programmieren spricht (sie sprechen nicht darüber, sie tun es). Eigentliche Programmierer (die dann die anderen Programmierer abschätzig als "Codierer" bezeichnen) bezeichnen sich selbst aber als Systemanalytiker, die Programme oder Programmanforderungen analysieren. Analytiker imaginieren natürlich eine sprechende Maschinen, sondern schauen im Programm, was in der Maschine passiert. Sie analysieren Programme (auch erst entworfene Programme, die noch nicht "codiert" wurden) als Beschreibung, als dynamische Pläne der Maschine davon, was die Maschine macht. Man kann deshalb eine Differenz formulieren, die zwischen Programmierern zu finden ist:
Eine Anweisung (in Computerprogramm-Form) ist die Differenz zwischen einer Anweisung und einer Beschreibung. Wenn ichProgramm- Anweisung sage, meine ich den Unterschied zwischen Anweisung und Beschreibung, dort wo die Beschreibung als Anweisung gelesen wird. Sprachlich wird diese Differenz auch im Plan wiederholt: Der Stadtplan sagt ja auch nicht, wird die Stadt gebaut werden sollte.

[ ]
 
[ wp ]