Die Funktionsweise von formalen Sprachen
Die Gesamtheit aller Anweisungen, die in einer bestimmten Programmiersprache geschrieben sind, bezeichnet man als Quellcode. Ein Quellcode lässt sich mit Hilfe eines einfachen Texteditors erstellen. Bei größeren Projekten setzt man jedoch in der Regel eine Entwicklungsumgebung (IDE) ein, die den Programmierer bei seiner Entwicklungsarbeit unterstützt.
Damit ein Computer die im Quelltext enthaltenen Anweisungen ausführen kann, muss der Code in die Maschinensprache des jeweiligen Computertyps übersetzt werden. Bei der Maschinensprache handelt es sich um einen Binärcode, der folglich für Menschen nur schwer lesbar ist. Der Quelltext kann zu verschiedenen Zeitpunkten in die Maschinensprache übersetzt werden.
Zum einen kann die Übersetzung vor der Ausführung des im Quellcode beschriebenen Programms erfolgen. Hierzu wird ein sogenannter Compiler verwendet. Wird der Quelltext erst während der Laufzeit des Programms übersetzt, setzt man einen Just-in-Time- bzw. JIT-Compiler oder einen Interpreter ein.
Bei einigen Sprachen – beispielsweise bei Java – wird auch eine Kombination dieser beiden Verfahren genutzt: Vor der Programmausführung wird der Code in einen Zwischencode übersetzt, der dann während der Laufzeit des Programms in Maschinencode überführt wird.
Die Bestandteile von Programmiersprachen
Jede formale Sprache lässt sich anhand verschiedener Informationen genau definieren. Zu diesen Informationen zählen die Syntax, das Vokabular und der Zeichensatz.
- Die Syntax einer Programmiersprache ist deren „Grammatik“. Sie beschreibt sowohl die zulässigen Sprachelemente als auch, wie diese Sprachelemente zu verwenden sind.
- Mit dem Vokabular sind reservierte Schlüsselwörter gemeint, die folglich nicht als Namen für Variablen oder Funktionen gewählt werden dürfen.
- Der Zeichensatz einer Programmiersprache besteht in der Regel aus alphabetischen und numerischen Zeichen sowie aus Sonderzeichen.
Wie leistungsfähig eine Programmiersprache ist, wird durch die Mächtigkeit des Befehlssatzes bestimmt. Im Allgemeinen besitzen formale Sprachen mindestens die folgenden Befehle:
- Befehle zur Ein- und Ausgabe von Daten, mit denen das Programm Informationen entgegennehmen und ausgeben kann
- Befehle zur Deklaration von Variablen und anderen Datentypen wie Feldern, mit welchen Daten (zwischen-)gespeichert werden können
- Funktionen zur Verarbeitung von Zeichenketten (z.B. zur Verkettung von Zeichenketten)
- mathematische Grundfunktionen (z.B. Addition, Multiplikation)
- Steueranweisungen wie beispielsweise die bedingte Ausführung oder die wiederholte Ausführung bestimmter Programmteile.
Aus der Kombination dieser Grundfunktionen lassen sich auch komplexere Funktionen erstellen. Einige formale Sprachen bieten zudem die Möglichkeit, diese höheren Funktionen als sogenannte Bibliothek zu kapseln und somit wiederverwendbar zu machen.
https://www.dev-insider.de/was-ist-eine-programmiersprache-a-577066/Programmiersprachen Trends
Rang | Sprache | Anteil |
---|---|---|
1 | Python | 30.32% |
2 | Java | 17.79% |
3 | JavaScript | 9.03% |
4 | C# | 6.55% |
5 | C++ | 6.02% |
6 | PHP | 5.94% |
7 | R | 3.96% |
8 | TypeScript | 2.77% |
9 | Objective C | 2.24% |
10 | Swift | 1.78% |
Klassen von Programmiersprachen:
Programmierparadigmen
Die imperative Programmierung:
Das älteste Programmierparadigma
Bei der imperativen Programmierung besteht ein Computerprogramm aus einer Folge von Anweisungen, die genau vorgibt, zu welchem Zeitpunkt was vom Rechner getan werden soll. Um die Befehlsausführung zu steuern, werden bestimmte Kontrollstrukturen wie Schleifen oder Verzweigungen verwendet. Die imperative Programmierung ist das am längsten bekannte Paradigma. Zu ihm gehören formale Sprachen wie FORTRAN, ALGOL, Pascal, Cobol, C und die von Google-Mitarbeitern entwickelte Sprache Go.
Die funktionale Programmierung:
Computerprogramme als Funktionen
Bei der funktionalen Programmierung bestehen die Computerprogramme ausschließlich aus Funktionen die - wie in der Mathematik - zu Funktionen höherer Ordnung verknüpft werden können. Auch das Programm selbst ist eine Funktion.
Seinen Ursprung hat das Programmierparadigma in der akademischen Forschung der 1930er Jahre. Damals arbeiteten verschiedene Wissenschaftler am sogenannten Lambda-Kalkül. Dabei handelt es sich um eine formale, mathematische Sprache, mit der sich Funktionen untersuchen lassen. Das Lambda-Kalkül wurde zur theoretischen Grundlage der funktionalen Programmierung. Zu den bekanntesten funktionalen Sprachen zählen LISP, Haskell und Scheme.
Die objektorientierte Programmierung:
Objekte stehen im Mittelpunkt
Objektorientierte Sprachen wie Python, Java, PHP, Javascript oder C++ fassen Computerprogramme als System von kooperierenden Objekten auf. Ein Objekt zeichnet sich dadurch aus, dass es einer übergeordneten Kategorie (Klasse) angehört, bestimmte Eigenschaften (Attribute) besitzt und ihm verschiedene Methoden zugeordnet sind. Außerdem muss es in der Lage sein, Nachrichten an andere Objekte zu senden und von diesen zu empfangen.
Programmiert man objektorientiert, dann werden – im Gegensatz den sonstigen Programmierparadigmen – Daten und Anweisungen nicht voneinander getrennt deklariert; vielmehr werden Daten und Befehle zu einer Einheit zusammengefasst, um so die Organisationsstrukturen der realen Welt besser nachbilden zu können.
Quellen
- Augusten, S. (2017). Was ist eine Programmiersprache?, (URL: https://www.dev-insider.de/was-ist-eine-programmiersprache-a-577066/ [letzter Zugriff: 22.08.2021]).
- o. A (2021). Programmiersprachen Trends 2021 – die Top 15, (URL: https://www.jacob.de/page/programmiersprachen-trends-2020-55938/ [letzter Zugriff: 22.08.2021]).
Informationen
Autor | Nils Kruthoff |
Erstellt | 02.05.2021 |
Zuletzt Beabeitet | 14.08.2021 18:00 |
Tags | IT |