Computerprogramme Der Fachbegriff für Rezepte oder Anleitungen, die angeben, welche Schritte nötig sind, um eine bestimmte Aufgabe zu lösen, lautet Algorithmus. Beispiel 1: Um Tee zu kochen, sind folgende Schritte nötig: 1. Wasserkocher mit Wasser füllen. 2. Wasserkocher einschalten. 3. Teetasse mit Teebeutel bereitstellen. 4. Warten, bis das Wasser kocht. 5. Wasser in die Tasse einschenken. 6. Tee ziehen lassen. 7. Teebeutel aus der Tasse nehmen. Solche Anleitungen gibt es natürlich auch für mathematische Probleme. Beispiel 2: Um den Flächeninhalt eines Kreises zu bestimmen, sind folgende Schritte nötig: 1. Den Durchmesser d des Kreises messen bzw. vorgeben. 2. Den Radius mit r = d/2 berechnen. 3. Die Fläche mit A = π·r2 berechnen. Computerprogramme sind auch Algorithmen. Ein Programm gibt dem Rechner vor, was in welcher Reihenfolge zu machen ist: Berechnungen ausführen, Daten übermitteln, Eingaben entgegennehmen, Ausgaben weitergeben etc. In einem Computer werden Programme in der Regel vom Hauptprozessor (CPU, Central Processing Unit) oder von Hilfsprozessoren für spezielle Aufgaben (mathematische Coprozessoren, Grafikchips etc.) ausgeführt. In jedem Fall können Prozessoren nur die Signale „Strom fliesst“ oder „Strom fliesst nicht“ – vereinfacht „1“ oder „0“ – unterscheiden und verarbeiten. Eine Anleitung wie im Beispiel 2 oben versteht ein Prozessor nicht. Andererseits können wir auch keine Anweisungen mit Hilfe von langen Zahlenketten bestehend aus 0 und 1 erstellen. Dies wäre viel zu abstrakt. Wir brauchen deswegen eine Sprache, in der wir ein Problem mit einem Algorithmus lösen können. Es entsteht ein Programm in einer für uns lesbaren Form, Quellcode oder englisch Source Code genannt. Ein Programm für Beispiel 2 in einer „Pseudo-Programmiersprache“ könnte wie folgt aussehen: 1: Eingabe d 2: d/2 → r 3: π*r*r → a 4: Ausgabe a Dieses Programm muss nun für den Computer in Maschinensprache, also in 0 und 1, umgewandelt werden. Grundsätzlich kann dies auf zwei Arten erfolgen: Entweder übersetzt ein Compiler vor der Seite 1 Computerprogramme Programmausführung das ganze Programm oder ein Interpreter übersetzt während der Ausführung des Programms immer die nächst folgende Zeile vor deren Ausführung. Professionelle Programme werden praktisch ausschliesslich in der ersten Art übersetzt. Die Programmausführung wird dadurch merklich beschleunigt. Es ist so auch möglich, einem Anwender nur den Maschinencode zu geben, damit er den angewandten Algorithmus nicht erkennen und kopieren kann. Interpreter sind für einfache Programme oder für Schulungszwecke aber eine geeignete Alternative. Ob Interpreter oder Compiler: Quellcode und Maschinencode müssen sich an syntaktische Regeln resp. technische Vorgaben der Maschine halten, d.h. die Übersetzungsprogramme werden bestimmte Codewörter in auf den Prozessor abgestimmte 0-1-Kombinationen verwandeln. Die Prozessoren der verschiedenen Hersteller verwenden in der Regel unterschiedliche Maschinensprachcodes. Auch für den Quellcode gibt es eine ganze Reihe von verschiedenen Computersprachen, die allerdings in den meisten Fällen viele Elemente gemeinsam haben. Beispiele von Programmiersprachen: • FORTRAN (FORmula TRANslation, eine der ersten wichtigen Programmiersprachen, 1957 veröffentlicht, aber bis heute weiter entwickelt.) • BASIC (Beginner’s All-purpose Symbolic Instruction Code, eine verhältnismässig einfache Programmiersprache aus dem Jahr 1964, die in verschiedenen Dialekten bis heute eine Bedeutung hat, z.B. in VisualBASIC. Auch die Programmiersprache der TI-Taschenrechner ist ein BASICDialekt.) • PASCAL (benannt nach dem Mathematiker Blaise Pascal, wurde 1972 an der ETH Zürich von Prof. N. Wirth entwickelt als Lehrsprache für strukturierte Programmierung) • C++ (entwickelt seit 1979, ist heute eine sehr wichtige Programmiersprache für viele professionelle Anwendungen, weil sie auch maschinennahe Programmierung erlaubt.) • SQL (Structured Query Language, eine Abfragesprache für Datenbanken) • JAVA (1995 entwickelt von SUN Microsystems, eine plattformunabhängige Programmiersprache, deren Programme auf einem bestimmten Rechner durch eine passende Laufzeitumgebung ausgeführt werden) • HTML (Hypertext Markup Language, 1989 am CERN in Genf entwickelt zur Beschreibung von Internetseiten) • JAVASCRIPT (1995 entwickelte Scriptsprache zur Erstellung von dynamischen Internetseiten. Die Programme werden vom Browser übersetzt und ausgeführt.) • PHP (1995 entwickelte Skriptsprache zur Erstellung von dynamischen Internetseiten. Die Programme werden vom Server ausgeführt und nur das Resultat im Browser angezeigt.) Klassische Programmelemente, welche viele der oben genannten Sprachen haben, sind: • Schleifen für die Wiederholung gleicher Programmteile • Verzweigungen für die unterschiedliche Fortführung eines Programms abhänig von einer Eingabe oder eines Berechnungsresultats • Prozeduren oder Funktionen für die Gliederung eines Programms Seite 2