Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


Algorithmische Arbeitsweise von Computern 


Anwendung der von-Neumann-Prinzipien

Jeder Prozessor (CPU) ist in der Lage, bestimmte Grundbefehle abzuarbeiten, wie z. B.: 

Beispiel: Programmausschnitt für einen Z80-Prozessor (Übungsmaterial für LC 80 bzw. Link LC 80-Simulator):

Addresse
Maschinencode
Mnemonic/Assembler
Erläuterungen
2000
3A 40 20
LD A, (2040H)
Das Register A wird mit dem Inhalt der Speicherzelle 2040h geladen.
2003
2F
CPL
Der Inhalt des Register A wird negiert.
2004
32 41 20
LD (2041H), A
Auf die Speicherzelle 2041h wird der Inhalt des Registers A geschrieben.
2007
76
HALT
Programmhalt!









        
2040
6A
DEFB 6AH
Definiertes Byte 6Ah (Datenbyte)

Bei den ersten Computern musste der Maschinencode noch bitweise eingegeben werden, wie etwa beim Link Altair 8080, dem ersten kommerziell erhältlichen Mikrocomputer. Nachfolgemodelle nutzten dann schon die Darstellung der Maschinencodes durch Hexadezimalzahlen, wie der Polycomputer 880 oder der LC 80. Dennoch war das Erstellen von Programmen mühsehlig und so entwickelte sich eine erste maschinennahe Programmiersprache: Assembler, die aus den kryptischen Bit- bzw. Bytefolgen Befehle machte. Auch wenn diese ebenfalls noch kryptisch waren, so gab es doch bereits Programme, die es ermöglichten den Assembler einzugeben und daraus den Maschinencode zu erzeugen. Unter DOS/Windows gibt es den debug-Befehl noch heute und Link man kann ihn auch noch benutzen!

Lerncomputer LC 80 mit dem o. g. Programm

Ein Programm ist eine Folge von Anweisungen, die dem Computer sagen, was er zu tun hat. 

Solche Folgen von Anweisungen sind keine Erfindung des Computerzeitalters. Die Naturwissenschaften und Mathematik leben von Schrittfolgen zur Problemlösung. Allseits bekannt sind etwa:

Im mathematischen Sinne spricht man von Algorithmen. Aber auch außerhalb der Naturwissenschaften bestimmen Schrittfolgen unser Leben: Ausfüllen von Formularen, Waschen von Wäsche, Fahren eines Autos. 

Ein (imperativer) Algorithmus ist eine Verarbeitungsvorschrift, die aus einer endlichen Folge von eindeutig ausführbaren Anweisungen besteht, mit dem eine Vielzahl gleichartiger Aufgaben gelöst werden kann. 
Der Algorithmus gibt an, wie Eingabegrößen schrittweise in Ausgabegrößen umgewandelt werden. 
Dabei müssen folgende Eigenschaften erfüllt sein: 

  • Endlichkeit
    Text zum Aufschreiben des Algorithmus ist endlich, bei der Abarbeitung benötigt er endlich viel Platz.

  • Determiniertheit
    Unter gleichen Startbedingungen und Parametern liefert des Algorithmus immer das gleiche Ergebnis.

  • Universalität
    Algorithmus löst eine Klasse von Problemen; die Auswahl des Problems erfolgt über Parameter.

  • Deterministisch
    Zu jedem Zeitpunkt gibt es höchstens eine Möglichkeit der Fortsetzung des Algorithmus.

  • Terminiertheit
    Algorithmus liefert nach endlich vielen Schritten ein Ergebnis (gilt nicht für Betriebssysteme) 

Die Bezeichnung Algorithmus leitet sich übrigens aus der Verstümmelung des Namens des persisch-arabischen Mathematikers Abu Ja'far Muhammad ibn Musa Al-Chwarizmi (787 bis ca. 850), der insbesondere in Bagdad wirkte und in dem Buch Hisab al-jabr w'al-muqabala viele Rechenverfahren beschrieben hat.

Damit ergibt sich folgende Situation:

Die Beschreibung des Algorithmus kann natürlich in Maschinensprache/Assenbler erfolgen. Wie oben gesehen, hat diese aber einige fundamentale Nachteile: sie ist schwer verständlich und prozessorabhängig. Sinnvoll wäre die Beschreibung des Algorithmus (fast) umgangssprachlich bzw. unter Verwendung fester Begriffe/Schlüsselwörter. 

Diese Forderung erfüllen höhere Programmiersprachen. Eine der ersten höheren Programmiersprachen war COBOL und wurde von Navycaptain Link Grace Hopper entwickelt. Auf sie geht übrigens auch der Begriff Debugging und die Ursache des Millenium-Problem zurück.

Noch besser wäre eine prozessor- und programmiersprachenunabhängig Darstellung von Algorithmen, diese bietet dann das Flussdiagramm oder Struktogramm (Nasi-Shneiderman-Diagramm).



Quellen:



zur Startseite
© Tino Hempel 1997 - 2007 Im Web vertreten seit 1994.
Eine Internet-Seite aus dem Angebot von Tino Hempel.

Für alle Seiten gilt der 
Haftungsausschluss/Disclaimer.