Programmiersprachen

Dezember 2016

Programmiersprache

Als « langage informatique » bezeichnet man eine Sprache, in der alle konsekutiven Arbeitsschritte beschrieben sind, die ein Computer ausführen soll. Eine Programmiersprache ist daher eine für uns (Menschen) einfache Möglichkeit, einem Computer Befehle zu geben.

Der Begriff « natürliche Sprache » hingegen bezeichnet die Ausdrucksmöglichkeiten innerhalb einer Gruppe von Individuen (z.B. Englisch oder Französisch).

Die Sprachen, durch die Computer untereinander kommunizieren haben mit Programmiersprachen nichts zu tun, diese bezeichnet man als Kommunikationsprotokolle, sie stellen zwei völlig unterschiedliche Konzepte dar. Eine Programmiersprache ist rigoros :

EINEM Befehl entspricht genau EINEM Arbeitsschritt des Prozessors.

Die Sprache, die der Prozessor verwendet, heißt Maschinensprache. Es handelt sich um die Daten, wie sie beim Prozessor ankommen, die aus einer Folge von 0 und 1 bestehen (binäre Daten).

Maschinensprache ist für den Menschen nicht verständlich, daher wurden Zwischensprachen, die vom Menschen verstanden werden könnnen, entwickelt. Der Code, der in dieser Sprache geschrieben ist, wird in Maschinensprache umgeformt, damit er vom Prozessor genutzt werden kann.

Der Assembler war die erste verwendete Programmiersprache. Er ähnelt der Maschinensprach sehr, ist aber dennoch für Entwickler verständlich. Allerdings ist eine solche Sprache der Maschinensprach so ähnlich, dass sie stark vom verwendeten Prozessortyp abhängt (jeder Prozessortyp hatte seine eigene Maschinensprache). Daher kann ein Programm, das auf einem Rechner entwickelt wurde, nicht au einen Rechner eines anderen Typs übertragen werden. Der Begriff « Übertragbarkeit » beschreibt, ob ein Computerprogramm dafür geeignet ist, auf Rechnern verschiedenen Typs verwendet zu werden. Um ein in Assembler geschriebens Computerprogramm auf einer anderen Art von Rechner zu verwenden, ist es manchmal nötig, das Programm komplett neu zu schreiben !

Eine Programmiersprache hat daher einige Vorteile :

  • leichter verständlich als Maschinensprache ;
  • ermöglicht eine höhrere Übertragbarkeit, also eine leichtere Anpassungsfähigkeit auf verschiedenartigen Rechnern ;

Imperative und funktionale Sprachen

Man unterscheidet zwei wichtige Programmiersprachtypen, je nachdem, wie die Befehle bearbeitet werden :

  • imperative Sprachen ;
  • funktionale Sprachen.

Imperative Sprache

Eine imperative Sprache organisert das Programm durch eine Serie an Befehlen, in Blocks gruppiert, die konditionale Sprünge enthalten, die die Rückkehr zu einem Instruktionsblock bei erfüllter Kondition ermöglicht wird. Historisch gesehen handelt es sich um die ersten Sprachen, auch wenn viele moderne Sprachen dieses Funktionsprinzip heute noch nutzen

Strukturierte imperative Sprachen sind jedoch nur wenig flexibel, wegen der sequenziellen Anordnung der Instruktionen.

Funktionale Sprache

Eine funktionale Sprache (machmal als Prozeduralsprache bezeichnet) ist eine Sprache, in der das Programm durch Funktionen erzeugt wird, die einen neuen Zustand ausgibt und die Ergebnisse anderer Funktionen als Eingabe nimmt. Bezieht die Funktion sich auf sich selbst, spricht man von Rekursivität.

Interpretation und Kompilation

Computersprachen können grob in zwei Kategorien unterteilt werden :
  • die interpretierten Sprachen
  • die kompilierten Sprachen.

Interpretierte Sprachen

Eine Programmiersprache ist per Definition anders als Maschinensprache. Daher muss sie übersetzt werden, damit der Prozessor sie verstehen kann. Ein in einer interpretierten Sprache geschriebenes Programm benötigt ein Hilfsprogramm (Interpreter), um nach und nach die Instruktionen des Programms zu übersetzen.

Kompilierte Sprach

Ein Programm, das in einer sogenannten« kompilierten Sprache » geschrieben ist, wird einmal vollständig übersetzt, von einem zusätzlichen Programm, genannt Compiler, um eine neue Datei zu erzeugen, die dann autonom ist, also kein weiteres Programm zur Ausführung benötigt, man nennt diese Datei dann ausführbar.

Ein solches Programm hat den Vorteil, dass es, einmal kompiliert, kein weiteres Programm benötigt, um ausgeführt zu werden. Außerdem ist die Übersetzung ein für alle Mal erledigt, daher ist es bei der Ausführung schneller.
Es ist allerdings weniger flexibel als ein Programm in einer interpretierten Sprache, da jede Änderung der Quelldatei (Datei, die vom Menschen nicht gelesen werden kann : die Datei, die in der Folge kompiliert wird) dazu führt, dass das Programm neu kompiliert werden muss, damit die Änderungen wirksam werden.

Andererseits hat ein kompiliertes Programm den Vorteil, dass die Sicherheit des Quellcodes gewährleistet wird. Eine interpretierte Sprach, die direkt verständlich (lesbar) ist, ermöglicht es jedem, die Geheimnisse der Erstellung eines Programms zu erfahren, und den Quellcode zu kopieren bzw. zu ändern. Daraus ergibt sich die Gefahr von Urheberrechtsverletzngen. Außerdem ist bei manchen gesicherten Anwendungen die Vertraulichkeit des Codes wichtig, um Hackversuche abzuwehren (Banküberweisungen, online-Bezahlung, gesicherte Kommunikationen,...).

Zwischensprachen

Manche Sprachen gehören in gewisser Weise beiden Kategorien an (LISP, Java, Python,...), da Programme, die in diesen Sprachen geschrieben sind, unter bestimmten Bedingungen eine Zwischenphase zur Kompilation in eine nicht Sprache durchmachen, die nicht lesbar (Datei unterscheidet sich dann von der Quelldatei) und nicht ausführbar (benötigt einen Interpreter) ist. Java-Applets, kleine Programme, die manchmal in Websites eingefügt sind, sind kompilierte Dateien, die man aber nur von einem Internet-Browser aus ausführen kann (Dateien mit der Dateiendung .class).

Einige Beispiele für häufig verwendete Programmiersprachen

Hier ist eine nicht vollständige Liste von existierenden Programmiersprachen :

Sprache Hauptanwendungsgebiet Kompiliert/Interpretiert
ADA Echtzeit Kompilierte Sprache
BASIC Elementare Programmierung zu Bildungszwecken Interpretierte Sprache
C Systemprogrammierung Kompilierte Sprache
C++ Objektorientierte Programmierung Kompilierte Sprache
Cobol Verwaltung Kompilierte Sprache
Fortran Berechnungen Kompilierte Sprache
Java Internet-orientierte Programmierung Zwischensprache
MATLAB Mathematische Berechnungen Interpretierte Sprache
Mathematica Mathematische Berechnungen Interpretierte Sprache
LISP Künstliche Intelligenz Zwischensprache
Pascal Bildung Kompilierte Sprache
PHP Entwicklung von dynamischen Websites Interpretierte Sprache
Prolog Künstliche Intelligenz Interpretierte Sprache
Perl Verarbeitung von Zeichenketten Interpretierte Sprache

Lesen Sie auch :


Programming languages
Programming languages
Lenguajes de programación
Lenguajes de programación
Les langages informatiques
Les langages informatiques
I linguaggi di programmazione
I linguaggi di programmazione
As linguagens informáticas
As linguagens informáticas
Das Dokument mit dem Titel « Programmiersprachen » aus CCM (de.ccm.net) wird zur Verfügung gestellt unter den Bedingungen der Creative Commons Lizenz. Sie dürfen das Dokument verwenden, verändern sowie Vervielfältigungen dieser Seite erstellen, unter den Bedingungen, die in der vorgenannten Lizenz erwähnt sind und unter der gleichzeitigen Bedingung, dass Sie im Rahmen Ihrer Verwendung, Veränderung oder Vervielfältigung nach außen hin klar und deutlich auf den Urheber (= de.ccm.net) des Dokuments hinweisen.