Wie funktioniert ein Programm?

In diesem Kapitel lernst du, wie ein Computerprogramm - ganz grob gesehen - geschrieben wird.

Du lernst Unterschiede verschiedener Programmiersprachen und Unterschiede zwischen normaler Sprache und Programmiersprache kennen.

Du lernst auch, warum ein Computerprogramm meistens nicht auf Anhieb richtig funktioniert und Fehler sehr häufig sind.

Inhalt:
Wie programmiert man einen Computer?
Interpretieren oder Kompilieren?
Was ist ein Programm?
Natürliche und formale Sprachen
Umgang mit formalen Sprachen
Debugging
Programmieren lernen

Wie programmiert man einen Computer?

Ganz genau genommen versteht ein Computer nur 0 oder 1. Es ist aber für uns Menschen sehr mühsam, nur mit Nullen und Einsen einem Computer zu erklären, wie er zum Beispiel 7 durch 3 teilen und das Resultat anzeigen muss.

Deshalb wurden so genannte Programmiersprachen entwickelt. Die sind ein Zwischending: Für Menschen kompliziert, aber verständlich, für Computer in Einsen und Nullen übersetzbar.

Man kann also ein Programm in dieser Programmiersprache schreiben. Das nennt man dann Quellcode.
Der Computer nimmt diesen Quellcode, übersetzt ihn und führt ihn aus.

Interpretieren oder Kompilieren?

Es gibt zwei verschiedene Varianten, wie der Computer den Quellcode behandelt:

  1. Der Computer nimmt den Quellcode und geht Zeile für Zeile vor, in dem er jede Zeile übersetzt und ausführt. Diesen Vorgang nennt man interpretieren.
    Schema eines Interpreters
  2. Der Computer nimmt den Quellcode und übersetzt ihn als Ganzes (kompilieren). Dabei entsteht ein maschinenlesbarer Code. Dieser kann dann später ausgeführt werden.
    Schema eines Compilers

Ob der Quellcode interpretiert oder kompiliert wird, hängt von der verwendeten Programmiersprache ab.
Das Programm, welches den Quellcode übersetzt nennt man Compiler bzw. Interpreter.

Was ist ein Programm?

In einem Programm sind bestimmte Befehle in einer bestimmten Reihenfolge vorgegeben.
Diese Befehle sehen je nach Programmiersprache verschieden aus, sind aber immer ziemlich ähnlich.
In einem Programm muss immer ganz klar sein, was als nächstes kommt.

Ein Pogramm für "Orange schälen" könnte etwa so aussehen:

1: Anfang 2: Orange nehmen 3: Schalenstück abreissen 4: 3 wiederholen, solange noch Schale vorhanden 5: Meldung: Orange geschält. 6: Ende

Eine solche genau definierte Handlungsvorschrift nennt man auch Algorithmus.

Natürliche und formale Sprachen

Um die Schwierigkeiten des Programmierens besser zu verstehen, müssen wir kurz den Unterschied zwischen natürlichen und formalen Sprachen kennenlernen.

Natürliche Sprachen

Als natürliche Sprachen bezeichnet man die von Menschen gesprochene Sprachen wie Deutsch, isiZulu oder Hindi. Diese Sprachen haben sich über eine lange Zeit entwickelt. Jedes Volk spricht eine andere Sprache.

Formale Sprachen

Formale Sprachen sind künstliche Sprachen, die entwickelt wurden, um bestimmte Probleme zu beschreiben. In der Mathematik zum Beispiel wird eine formale Sprache verwendet, die auf der ganzen Welt gültig ist:
"3 + 5 = 8" ist eine wahre Aussage in der formalen mathematischen Sprache.
Auch in der Chemie wird eine formale Sprache verwendet. Du kennst sicher den formalen Ausdruck für reines Wasser.
Ebenso sind Programmiersprachen formale Sprachen.

Der wichtigste Unterschied zwischen natürlichen und formalen Sprachen ist, dass die formalen Sprachen viel strengere Regeln haben.
In einer formalen Sprache gibt es keine überflüssigen Zeichen - oder anders gesagt, es darf kein Zeichen weggelassen werden.

Der Satz "du lesen diese text" ist in einer natürlichen Sprache zwar voll von Fehlern, aber doch verständlich. Je nach Betonung kann es eine Aussage oder eine Frage sein.

Wenn man hingegen eines der Zeichen in der Aussage "3 + 5 = 8" weglässt oder anders schreibt, ergibt sich ein völlig anderer Sinn oder Unsinn!

Umgang mit formalen Sprachen

Wenn du mit formalen Sprachen zu tun hast, gibt es einige Punkte zu beachten:

  1. Formale Sprachen sind viel dichter als natürliche Sprachen. Man braucht also viel mehr Zeit, um sie zu lesen.
  2. Die Struktur ist sehr wichtig. Man kann nicht einfach von oben links nach unten rechts lesen, sondern muss oft hin und her springen.
  3. Die Details spielen eine enorm wichtige Rolle. Ein fehlender Punkt oder ein falsch geschriebenes Wort kann einen sehr grossen Unterschied machen.
  4. Wie wenn man eine Fremdsprache lernt, braucht es auch bei einer formalen Sprache viel Zeit.

Programmierfehler: Bugs

Weil Programmiersprachen formale Sprachen sind und damit sehr anfällig auf Fehler, kommt es sehr oft vor, dass man beim Programmieren Fehler macht. Einen Fehler nennt man beim Programmieren "Bug".

Es gibt drei Typen von Bugs:

  1. Syntaxfehler: Das Programm kann nicht übersetzt werden, weil ein Schreib- oder Interpunktionsfehler vorliegt.
  2. Laufzeitfehler: Während der Ausführung kommt es zu einem Fehler und das Programm stürzt ab.
  3. Semantikfehler: Das Programm läuft zwar, macht aber nicht das, was vorgesehen ist.

Debugging

Das Beheben von Fehlern nennt man "Debugging".
Es ist z.T. schwierig und zeitaufwändig einen Fehler zu finden. Ein paar Tipps:

  1. Versuche herauszufinden, in welcher Zeile der Fehler auftritt, indem du das Programm deaktivierst und danach Zeile um Zeile reaktivierst.
  2. Schränk den Fehler ein: Unter welchen Umständen tritt er auf?
  3. Wenn du dem Fehler nach 5 Minuten nicht auf die Schliche gekommen bist: Leg eine Pause ein!

Siehe auch diese Programmiertipps.

Programmieren lernen

In diesem Programmierkurs lernst du mit der Programmiersprache "JavaScript" programmieren.

JavaScript ist eine interpretierte Programmiersprache, die von allen modernen Webbrowsern interpretiert werden kann und deshalb oft auf Webseiten verwendet wird.
Der korrekte Name von JavaScript ist eigentlich ECMA-Script. Aber alle nennen es JavaScript.

Was du in diesem Kurs lernst, gilt aber nicht nur für JavaScript, sondern auch für die meisten anderen Programmiersprachen.
Wenn du einmal die Grundsätze des Programmierens gelernt hast, kannst du dein Wissen auch schnell auf andere Programmiersprachen anwenden und hast diese schnell gelernt.

In diesem Programmierkurs findest du manchmal Hinweise auf andere Sprachen, was dir den Umstieg zusätzlich erleichtern soll.