http://hehe.at/gamesworld/

© 2004-2013 Josef & Peter Bergt :: GamesworlD :: hosted @ hehe.at  [1995 - 2013]

Python Grundlagen:

Computer-Programmierung ist die Kunst, dass ein Computer das macht, was du willst.

Auf der einfachsten Ebene besteht dies darin, eine Abfolge von Befehlen einem Computer zu übergeben, damit er Dinge macht. In der Microsoft-Welt MS DOS erzeugte der Benutzer eine Textdatei mit einer Liste von Kommandos, die BAT-Datei genannt wurde. Diese Kommandofolge wurde dann ganz einfach als Stapel (engl.: batch) ausgeführt - daher auch der Name. Du kannst dies auch noch heute in der Windows-Umgebung durchführen, aber in der Praxis ist das nur noch sehr selten zu sehen.

Du möchtest beispielsweise ein Dokument erstellen, das aus mehreren getrennten Dateien besteht. Dein Textbearbeitungsprogramm erzeugt von jeder Datei, sobald du eine neue Version abspeicherst, eine Sicherheitskopie (backup) von der Vorgängerversion. Dann möchtest du die momentane Version deines Dokumentes (also alle zuletzt erstellten Dateien) in einem 'Backup'-Verzeichnis unterbringen. Zum Abschluss, um alles zu säubern, löschst du alle Backup-Dateien, um danach ordentlich deine Arbeit fortsetzen zu können. Eine einfache BAT-Datei würde das für dich erledigen:

COPY *.HTM BACKUP
DEL *.BAK


Wenn diese Datei SAVE.BAT heißen würde, dann würdest du einfach SAVE in die DOS-Eingabezeile (DOS Prompt) eintippen und die Dateien würden abgespeichert und die Backups gelöscht werden. Das ist ein Programm. Anmerkung: Benutzer von Linux oder anderen Betriebssystemen haben ihre eigenen Versionen von solchen Dateien, die oft mit dem Namen Shell-Skript bezeichnet werden. Unix Shell-Skripts sind viel leistungsfähiger als DOS BAT-Dateien, und sie unterstützen außerdem die meisten Programmiertechniken, die wir hier diskutieren werden.

Wenn man programmiert 'sprichst' du sozusagen mit dem Computer. Die einzige Sprache, die der Computer versteht, wird Binärcode genannt. Der Binärcode ist unglücklicherweise für Menschen sehr schwer zu lesen und zu schreiben, so dass wir eine vermittelnde Sprache verwenden müssen, die dann in Binärcode übersetzt wird. Dieser Sprachvermittler heißt daher auch Übersetzer (Interpreter).

Die allerersten Programmierer mussten tatsächlich selbst den Binärcode eintippen, das als Maschinencode-Programmierung bekannt und unglaublich schwierig ist. Die nächste Stufe war die Entwicklung eines Übersetzers, der einfach englischsprächige Entsprechungen des Binärcodes in Binärcode umwandeln konnte, so dass man anstelle sich erinnern zu müssen, dass der Code
001273 05 04 entsprechend add 5 to 4 (addiere 5 zu 4), der Programmierer jetzt schreiben konnte: ADD 5 4. Diese einfache Verbesserung machte das programmieren viel leichter und diese Code-Systeme waren tatsächlich die ersten Programmiersprachen, jeweils eine andere für jeden Computer-Typ. Diese wurden bekannt als Assembler-Sprachen und Assembler-Programmierung wird noch heute für ganz spezielle Programmieraufgaben eingesetzt.

Dennoch war das sehr primitiv und dadurch wurde dem Computer mitgeteilt, was er auf der Hardware-Ebene tun soll - das Transportieren von Bytes von einem Speicherort zum anderen, diese Byte zu jenem zu addieren usw. Es war immer noch sehr schwierig und erforderte einen großen Programmieraufwand, damit der Computer einfachste Aufgaben erledigen konnte.

Nach und nach schufen Computerwissenschaftler höherentwickelte Computersprachen, die die Arbeit leichter machten

Allgemeine Eigenschaften von Programmen:

Schon vor langer Zeit erschien Edsgar Dijkstra mit einem Konzept, das man strukturierte Programmierung nennt. Dies besagt, dass alle Programme auf die folgende vier Arten strukturiert werden können:
  • Abfolgen von Anweisungen
  • Schleifen
  • Verzweigungen
  • Module
Neben diesen Strukturen benötigen Programme noch einige Zusätze, damit sie sinnvoll eingesetzt werden können:
  • Daten
  • Operationen (addieren, subtrahieren etc.)
  • Input/Output - Möglichkeiten (Eingabe/Ausgabe)
Grundsätzlich schreibt ein Programmierer ein Programm in einer hochentwickelten Sprache, das in Bytes interpretiert wird, die der Computer versteht. Im technischen Jargon generiert der Programmierer einen source code (Quellcode) und der Interpreter generiert object code (Objektcode). Manchmal hat der Objektcode auch andere Namen, wie P-Code, Binärcode oder Maschinencode.

Der Übersetzer hat meherere Namen, einer ist der Interpreter and der andere ist der Compiler. Diese Begriffe beziehen sich auf die beiden unterschiedlichen Techniken der Generierung von Objekcode aus Quellcode. Gewöhnlicherweise ist es so, dass der Compiler den Objektcode so produziert, dass er selbständig laufen kann ("executable file" - eine ausführbare Datei), wohingegen ein Interpreter während des Ablaufens eines Programmes ständig mitlaufen muss. Der Unterschied zwischen diesen Begriffen wird noch verwirrender, wenn man erfährt, dass manche Compiler auch noch einen Interpreter erforderlich machen, um eine endgültige Übertragung durchführen zu können und einige Interpreter compilieren einfach ihren Sourcecode in einen temporären Objektcode und führen ihn dann aus.

Für uns macht es jedoch keinen großen Unterschied, wir schreiben einen Sourcecode und benutzen ein Werrkzeug, das es dem Computer erlaubt, diesen zu lesen und auszuführen.

Programmstruktur:

Die exakte Struktur eines Programmes hängt von der Programmiersprache und der Umgebung ab, in der du es ablaufen lässt. Wie auch immer, es gibt einige grundsätzliche Prinzipien:
  • Einen Lader - jedes Programm muss durch das Betriebssystems in den Arbeitsspeicher geladen werden. Dies tut der Lader und gewöhnlich übernimmt der Interpreter diese Aufgabe für dich.
  • Datendefinitionen - die meisten Programme arbeiten mit Daten und irgendwo muss im Quellcode genau festgelegt werden, mit welchen Daten wir arbeiten wollen. Die verschiedenen Sprachen tun dies sehr unterschiedlich.
  • Anweisungen - diese sind der Kern deines Programms. Die Anweisung manipuliert die von uns definierten Daten und bewirkt die Berechnungen, erzeugt die Ausgabe usw.
Die meisten Programme entsprechen einer der beiden folgenden Strukturen:

Batch-Programme

Diese werden typischerweise von einer Kommandozeile aus gestartet (oder automatisch über ein Steuerbefehl) und weisen folgendes Muster auf:
  • Initialisiere interne Daten
  • Lese Eingabedaten
  • Bearbeite diese Daten
  • Drucke oder Speichere die Ergebnisse
Ereignisgesteuerte Programme Die meisten GUI-Systeme (und eingebetteten Kontrollsysteme - genauso wie Mikrowelle, Kamera usw.) sind ereignisgesteuert. Dabei sendet das Betriebssystem Ereignisse an das Programm und das Programm reagiert entsprechend darauf, sobald diese ankommen. Ereignise können auch Dinge sein, die der Anwender bewirkt - wie das Klicken mit der Maus oder das Drücken einer Taste - oder Dinge die das System selbst erledigt, wie das Erneuern der Zeitanzeige oder das Auffrischen des Bildschirmes.

Ereignisgesteuerte Programme sehen grundsätzlich folgendermaßen aus:
  • Initialisieren der internen Daten
  • Warten auf eintreffende Ereignisse
  • Identifizierung eines ankommenden Ereignisses und die entprechende Reaktion










Last Update: 23.02.2013 00:34:46 CET - v7.55 - discontinued