Definition „Programming Language“

Was ist eine Programmiersprache?

| Autor / Redakteur: il1411 / Stephan Augsten

Programmiersprachen und ihre Paradigmen sind vielfältig.
Programmiersprachen und ihre Paradigmen sind vielfältig. (Bild: Tirza van Dijk - Unsplash.com)

Programmiersprachen sind formale Sprachen, mit denen sich Rechenvorschriften formulieren lassen. Diese Vorschriften können dann von einem Computer ausgeführt werden.

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.

  • 1. Die Syntax einer Programmiersprache ist deren „Grammatik“. Sie beschreibt sowohl die zulässigen Sprachelemente als auch, wie diese Sprachelemente zu verwenden sind.
  • 2. Mit dem Vokabular sind reservierte Schlüsselwörter gemeint, die folglich nicht als Namen für Variablen oder Funktionen gewählt werden dürfen.
  • 3. 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.

Klassen von Programmiersprachen: Programmierparadigmen

Die ersten höheren Programmiersprachen wurden in den USA der 1950er Jahre entwickelt. Die Sprache Fortran wurde vom Informatiker John Werner Backus im Jahr 1954 entworfen. Fortran ist inzwischen die älteste noch verwendete formale Sprache.

1959 entwickelte der Logiker John McCarthy die Sprache LISP. Im gleichen Jahr wurde mit COBOL eine Programmiersprache für kommerzielle Anwendungen vorgestellt. Diese und die weiteren Sprachen, die in den folgenden Jahrzehnten entwickelt wurden, lassen sich in Klassen unterteilen.

Diese Klassen werden als Programmierparadigmen bezeichnet. Zu den bekanntesten Paradigmen zählen die imperative, die funktionale und die objektorientierte Programmierung. Für alle Paradigmen gilt, dass der Aufbau eines Computerprogrammes strukturiert sein muss. Das Programm muss also in Teilprogramme zerlegt werden können.

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, 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.

Ein beliebtes Beispiel hierfür: Es gibt eine Klasse „Pkw“, die den grundlegenden Pkw-Bauplan definiert, beispielsweise vier Reifen, ein Lenkrad und andere, allen Pkw gemeinsame Eigenschaften. Nach diesem Bauplan lässt sich ein spezielles Pkw-Exemplar (das Objekt) konstruieren, das eigene Attribute wie Farbe oder Höchstgeschwindigkeit besitzt. Die Geschwindigkeit lässt sich durch die Methoden „beschleunigen“ oder „bremsen“ variieren. Das Objekt Pkw muss auch Objekte anderer Klassen einbinden können; die Pkw-Sitze beispielsweise sind zwar grundlegend gleich, aber ihrerseits durch Material und andere Eigenschaften definiert. Die Eigenschaft „Sitzposition“ lässt sich durch Methoden wie „vorschieben“ oder „hochpumpen“ verändern.

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

5 freie Versionskontrollsysteme im Überblick

Git, SVN, Mercurial, Bazaar und Fossil

5 freie Versionskontrollsysteme im Überblick

Ein Version Control System, kurz VCS, bringt beim Programmieren Ordnung ins Code-Chaos. Doch die Software-Kategorie löst ähnlich emotionale Debatten aus, wie es bei Betriebssystemen oder Texteditoren der Fall ist. Wir stellen die wichtigsten quelloffenen und freien Kandidaten vor. lesen

Oracle Cloud Infrastructure mit Java-Support

Integration des Java Development Kit

Oracle Cloud Infrastructure mit Java-Support

Oracle hat das Development-Kit der Java Standard Edition als festen Bestandteil in die Oracle Cloud Infrastructure integriert. Neben der Protokollierung von Fehlern wirbt der Anbieter mit regelmäßigen Stabilitäts-, Leistungs- und Sicherheitsupdates. lesen

Grundlagen des Ethical Hacking

Hacking mit Python, Teil 1

Grundlagen des Ethical Hacking

In diesem Workshop verwenden wir die Programmiersprache Python, um ein Passwort zu entschlüsseln. Genauer gesagt prüfen wir einen auf irgendeine Weise erlangten Passwort-Hash durch einen Vergleich mit dem MD5-Hash eines gegebenen Wörterbucheintrages auf Übereinstimmung. lesen

Android Apps mit Android Jetpack und Kotlin erstellen

Kostenlose Online-Kurse von Google auf Udacity

Android Apps mit Android Jetpack und Kotlin erstellen

Google hat gemeinsam mit der Online-Akademie Udacity den kostenlosen Online-Lehrgang „Android-Apps mit Kotlin entwickeln“ entworfen. In 10 Lerneinheiten werden darin entsprechende Grundlagen der Android-Entwicklung vermittelt. lesen

Rapid Prototyping und Low-Code-Entwicklung

Kundenerlebnis in Eigenregie

Rapid Prototyping und Low-Code-Entwicklung

Rapid Prototyping erlaubt es, einen Software-Prototypen direkt mit Hilfe so genannter Low-Code-Plattformen zum produktionsreifen Endprodukt weiterentwickeln. Das Prinzip: Stets nah am Problem und in Zusammenarbeit mit dem Kunden. lesen

Warum Python beliebter ist als je zuvor

Programmiersprachen-Klassiker

Warum Python beliebter ist als je zuvor

Die Geburtsstunde der Programmiersprache „Python“ liegt schon einige Zeit zurück. Dennoch haben die Nutzerzahlen nie so stark geschwankt, wie wir es bei anderen Sprachen beobachten konnten. Warum ist das so? lesen

PHP-Tools für Entwickler

Programmieren mit PHP, Teil 9

PHP-Tools für Entwickler

Für PHP gibt es eine Reihe nützlicher Werkzeuge, mit denen Entwickler einfacher Programme schreiben und mit PHP arbeiten können. Neben Entwicklungsumgebungen und Editoren stellen wir in diesem Beitrag auch andere Zusatztools vor. lesen

10 Open-Source-Tools für jedes Testszenario

Apps und Anwendungen aller Art analysieren

10 Open-Source-Tools für jedes Testszenario

Ob einfacher Syntax-Test für Skripte oder aufwändiger Blackbox-Test für komplexe Web-Anwendungen: Mit den passenden Tools geht das Testing flott und mit Freude von der Hand. Hier zeigen wir zehn Open-Source-Werkzeuge, die man kennen sollte. lesen

Wege zur App – nativ, hybrid oder fürs Web

Abkürzungen erwünscht

Wege zur App – nativ, hybrid oder fürs Web

Um Apps für Android und iOS zu erstellen, gibt es mittlerweile sehr viele Ansätze. Eine Systematisierung ist hilfreich, um sich im technischen Dschungel zurechtzufinden. Ebenso entscheidend ist es, wie effektiv die jeweilige Vorgehensweise ist, denn die Time-To-Market ist oft entscheidend. Hier können plattformübergreifende Techniken punkten. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44473335 / Definitionen)