Erklärung der Bedeutung des Begriffs „Programmiersprache“ [] (Programmiersprache Erklärung Was ist eine Programmiersprache Programmiersprache define Programmiersprache definiere Programmiersprache Definition Programmiersprache Definition der Programmiersprache Bedeutung Programmiersprache Was genau bedeutet Programmiersprache Was bedeutet Programmiersprache Was heißt Programmiersprache Was ist die Programmiersprache Begriff Programmiersprache Konzept Programmiersprache Worterklärung Programmiersprache Was sind Programmiersprachen), Begriffserklärung, Seite 721677 http://www.purl.org/stefan_ram/pub/begriff_programmiersprache_de (Permalink) ist die kanonische URI dieser Seite. Stefan Ram
Programmiersprache
Eine Programmiersprache ist eine formale Sprache, mit der Programme geschrieben werden. Ein Programm ist das Artefakt einer Verfügung eines Programmierers an einen Ausführer zur Durchführung eines Vorgangs.
Einige in der voranstehenden Definition verwendete Begriffe seien nun kurz erklärt:
Eine formale Sprache ist eine Sprache, deren Texte (syntaktische Einheiten) als bestimmte Menge genau und unveränderlich definiert sind. Sie unterscheidet sich dadurch von einer natürlichen Sprache (wie Deutsch), in der es Grenz- und Zweifelsfälle gibt. Diese Menge muß durch ein unveränderliches Artefakt angegeben werden (die Syntaxspezifikation). Außerdem muß für jeden Text seine Bedeutung in derselben Weise für den gewünschten Anwendungsbereich hinreichend genau angegeben werden (Semantikspezifikation).
Ein Artefakt einer Erklärung ist eine Ausfertigung (materielle Darstellung) dieser Erklärung auf einem Speichermedium, hierbei kann es sich beispielsweise um eine Urkunde oder eine Datei handeln.
Eine Verfügung ist eine Willenserklärung, die Einschränkungen festlegt, die bei der Erledigung bestimmter zukünftiger Vorgänge zu beachten sind.
Der Ausführer (Interpretierer) ist das System, welches sicherstellt, daß die Verfügung verwirklicht wird, also sich so auswirkt, wie dies nach dem im Programm erklärten Willen des Programmierers gemäß der Spezifikation der Programmiersprache geschehen soll.
Ein Vorgang (Prozeß) ist ein Ablauf, bei dem ein System verschiedene Zustände durchlaufen kann; dabei kann es in seine Umgebung hinein wirken oder durch seine Umgebung beeinflußt werden.
Einige Begriffe
Einige Begriffe, die in Zusammenhang mit Programmen öfter benötigt werden sind:
Ein Programm, das direkt von einer Maschine (dem Prozessor) ausgeführt werden kann, wird auch als Maschinenprogramm oder Maschinencode bezeichnet. Eine Datei, die solch ein Programm enthält, wird auch ein ausführbare Datei genannt (“executable (file)”).
Ansonsten muß ein Programm entweder in Maschinencode übersetzt werden oder von einem Programm (dem Interpretierer) ausgeführt werden. Dann wird es auch als Quellcode bezeichnet (falls es ein Text ist, auch als Quelltext), da es die Quelle für die weitere Verarbeitung darstellt. Eine Datei, die solch ein Programm enthält, wird auch eine Quelldatei genannt.
Ein Beispiel für ein Programm
Ein Maler übergibt seinem Auftraggeber ein Formular mit dem Wort „Wand“ und bittet ihn, die gewünschte Farbe hinter das Wort „Wand“ zu schreiben. Zur Auswahl stehen die Farben „Weiß“, „Gelb“ und „Grün“. Der Auftraggeber schreibt hinter das Wort „Wand“ das Wort „Weiß“. Auf dem Formular befindet sich dann der Text „Wand Weiß“.
„Wand Weiß“ kann als ein Beispiel für ein Programm aufgefaßt werden.
Der Text des Programms wurde in einer einfachen formalen Sprache geschrieben. Die Syntax dieser formale Sprache besteht insgesamt aus genau den drei möglichen Programmen „Wand Weiß“, „Wand Gelb“ und „Wand Grün“.
Das Formular stellt ein materielles Artefakt dar.
Der Auftraggeber verfügt darin, entsprechend der von dem Maler erklärten Bedeutung der Sprache, die seinem Willen entsprechende Farbe.
Wenn der Maler sich dann an die Arbeit macht und das Programm umsetzt, ist er der Ausführer (Interpretierer) des Programms.
Der Vorgang des Malens wird durch das Programm hinsichtlich der Farbe eingegrenzt.
Wichtig ist, daß zu der Programmiersprache eine Spezifikation gegeben ist, in der ihre Syntax (also die Menge {„Wand Weiß“, „Wand Gelb“ , „Wand Grün“}) und ihre Semantik angegeben ist und dabei die Bedeutung der Elemente der Syntax in einer Metasprache (beispielsweise Deutsch) so angegeben wird, wie dies hier vorausgesetzt wurde.
Abstraktion der Beschreibung
Man darf nicht erwarten, daß ein Programm alle Details eines Vorgangs genau festlegt. Es legt vielmehr bestimmte Rahmenbedingungen fest, innerhalb derer ein Ausführer meistens noch Freiheiten hat. So wird durch das Programm „Wand Weiß“ beispielsweise nicht festgelegt, welcher Typ von Wandfarbe oder von Streichgeräten verwendet werden soll.
Art des Ausdrucks
Eine Verfügung kann einen Vorgang eher durch eine Folge von Kommandos oder statt dessen durch Angaben, die den Vorgang oder das gewünschte Ergebnis in anderer Weise einschränken, beschreiben. Man spricht bei Kommandos von imperativer Programmierung und bei allgemeinen Beschreibungen von deskriptiver Programmierung (deklarativer Programmierung).
Bei der imperativen Programmierung sind die wichtigsten Ausdrucksmittel des Autors Folgen von Anweisungen, die in der Reihenfolge, in der sie im Programm textuell hintereinander vorkommen, zeitlich hintereinander ausgeführt werden. Dabei hat jede Anweisung bestimmte Wirkungen, auf die folgende Anweisungen aufbauen können. Eine zeitliche Folge von Aktionen wird dabei vom Programmierer also direkt vorgeschrieben. (Man könnte hier auch von „direktiver Programmierung sprechen.“)
Bei der deskriptiven Programmierung beschreibt ein Programmierer Eigenschaften irgendwelcher Entitäten (Dinge), wie beispielsweise von Aussagen, Funktionen oder Resultaten. Bei der Ausführung werden diese Beschreibungen dann herangezogen, um die Ausführung indirekt zu steuern. Dabei kann durch die Beschreibungen ein vom Ausführer zu erreichendes Ziel beschrieben werden: Dem Ausführer wird also gesagt, was er erreichen soll, aber nicht unbedingt, wie er dies machen soll. Die deskriptive Programmierung ist insofern abstrakter als die imperative Programmierung: Sie abstrahiert die Details der Ausführung.
Unnötige Einschränkungen
Gelegentlich hört man willkürliche oder unnötige Einschränkungen des Begriffs „Programmiersprache“. So wird manchmal die sogenannte Turing-Vollständigkeit oder Äquivalenz zu der Sprache LOOP gefordert.
Es gibt aber beispielsweise kleine imperative SPS-Programmiersprachen, die es nicht erlauben, Schleifen oder Sprünge zu programmieren. Es erschiene aber unsystematisch und willkürlich, sie nicht „Programmiersprache“ zu nennen, da sie weithin auf ähnliche Weise verwendet werden, wie andere Programmiersprachen. Dies widerspräche auch den Gepflogenheiten des Fachgebiets, in dem sie „Programmiersprachen“ genannt werden.
Daher sollten solche Einschränkungen vermieden werden. Wenn ein Bezeichnung für Turing-vollständige oder LOOP-äquivalente Programmiersprachen benötigt wird, kann ja ohne weiteres von „Turing-vollständigen Programmiersprachen“ oder „LOOP-äquivalenten Programmiersprachen“ gesprochen werden.
Eine interessante Kritik an der Verwendung von Turingmaschinen findet sich auch in den unter [1] genannten Quellen.
Ein Zitat über Programmieren
Unter Programmieren verstehen wir den Versuch, ein Ziel durch den systematischen Einsatz vorgegebener Mittel zu erreichen. Erfolgreiches Programmieren setzt genaue Kenntnisse über Ziel und Mittel voraus, vor allem aber Erfahrung im systematischen Überbrücken der Lücke zwischen dem Problem und den verfügbaren Mitteln.
Programmieren ist eine sehr allgemeine, bestimmte nicht auf die Informatik beschränkte, menschliche Tätigkeit:
Fernseh-Programmierung
Fernseh-Programmierung ist der Versuch, innerhalb eines vorgegebenen Budgets und gewisser physikalischer Ressourcen, einen angenehmen und interessanten Fernsehabend aus vorgegebenen Western, Quiz und anderen Produktionen zusammenzustellen.
Lineare Programmierung
Lineare Programmierung ist z.B. die Technik, aus Fleisch, Kasein, Gewürzen u.s.w. mit gegebenen Preisen eine Wurst zusammenzustellen, die den gesetzlichen Bestimmungen nicht widerspricht und maximalen Profit bringt.
Computer-Programmierung
Computer-Programmierung ist nur dadurch besonders gekennzeichnet, daß der Computer als Prozessor zum Ausführen von Algorithmen verwendet wird, die zur Durchführung gewisser Aufgaben erstellt werden.
Quelle dieses Zitats:
de-Gruyter-Lehrbuch
Methodisches Programmieren
Entwicklung von Algorithmen durch schrittweise Verfeinerung
von
Dr. Günter Hommel, Professor für Informatik an der Technischen Universität München;
Dr. Stefan Jänichen, Hochschulassistent am Fachbereich Informatik der Technischen Universität Berlin;
Cornelis H. A. Koster, Professor für Informatik an der Katholieke Universiteit Nijmegen
Berlin; New York: de Gruyter, 1983
ISBN 3-11-009636-6
Die ISO-Definition
Der Begriff „Programmiersprache“ wird durch ISO-Normen definiert. Sinngemäß heißt es dort:
Eine Programmiersprache ist eine künstliche Sprache zur Notation von Programmen.
Wörtlich wird gesagt:
01.05.10
programming language
An artificial language for expressing programs.
01.05.01
program
computer program
A syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed to solve a certain function, task, or problem.
ISO/IEC 2382-1:1993, Information technology -- Vocabulary -- Part 1: Fundamental terms
15.02.01
declaration
An explicit language construct that introduces one or more identifiers into a program and specifies how these identifiers are to be interpreted.
Examples - Declarations of data types, storage organization, packages, or tasks.
15.05.01
statement
An explicitly terminated syntactic unit either representing a declaration or prescribing a unit of work that includes identification of actions to be performed, operands (if any) to be used in performing these actions, and disposition of any results.
ISO/IEC 2382-15:1999, Information technology -- Vocabulary -- Part 15: Programming languages
Quellen
[1] Quellen zur Relevanz der Turingmaschine für die Programmiersprachen