<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=H%C3%B6here_Programmiersprache</id>
	<title>Höhere Programmiersprache - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=H%C3%B6here_Programmiersprache"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=H%C3%B6here_Programmiersprache&amp;action=history"/>
	<updated>2026-05-30T02:03:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=H%C3%B6here_Programmiersprache&amp;diff=25502&amp;oldid=prev</id>
		<title>212.200.164.104: /* Literatur */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=H%C3%B6here_Programmiersprache&amp;diff=25502&amp;oldid=prev"/>
		<updated>2025-05-17T20:14:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Literatur&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;höhere Programmiersprache&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmiersprache]] zur Abfassung eines [[Computerprogramm]]s, die in [[Abstraktion (Informatik)|Abstraktion]] und [[Komplexität (Informatik)|Komplexität]] von der Ebene der [[Maschinensprache]]n deutlich entfernt ist. Die Grenze zwischen einfachen und höheren Programmiersprachen ist nicht eindeutig definiert. Mindestmerkmal ist, dass die Befehle höherer Programmiersprachen nicht unmittelbar von [[Mikroprozessor]]en verstanden und ausgeführt werden können. Die Befehle müssen durch [[Interpreter]] oder [[Compiler]] in Maschinensprache übersetzt werden. Oft sind noch weitere Stufen wie umfangreiche [[Betriebssystem]]e dazwischengeschaltet.&lt;br /&gt;
&lt;br /&gt;
Die Bezeichnung als „höhere“ Sprache bezieht sich in der [[Informatik]] nicht auf den Schwierigkeitsgrad, darin zu programmieren. Im Gegenteil sollen es höhere Programmiersprachen erleichtern, komplexe Aufgaben mit einem Computerprogramm zu [[Operationalisierung|operationalisieren]]. Vielmehr bezieht sich das Attribut „höher“ auf die [[Abstraktion (Informatik)|Abstraktionsebene]] der Programmiersprache. Vereinfacht kann man sagen, dass höhere Programmiersprachen mehr und komplexere logische Zusammenhänge kürzer ausdrücken, der dann durch automatisierte Prozesse auf Maschinencode heruntergebrochen wird. Die Lesbarkeit des Programmtextes wird so erhöht und die Anzahl der expliziten rekursiven Aufgaben verringert.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Die ersten Computer wurden mit Hilfe von Programmen in [[Maschinencode]] programmiert. Dieser besteht lediglich aus einer Folge von Zahlen, die vom Prozessor als Befehlsfolge interpretiert werden. Diese Befehle bestehen aus einfachen Anweisungen wie Arithmetik, Speicherzugriffen usw. Die erste Innovation war die Erfindung von [[Assemblersprache]]n, die nicht abstrahieren, die Befehle aber in Textform darstellen.&lt;br /&gt;
&lt;br /&gt;
Als weltweit erste höhere Programmiersprache kann [[Plankalkül]] von [[Konrad Zuse]] angesehen werden, das allerdings nicht praktisch angewandt wurde. Erst Ende der [[1950]]er Jahre wurden [[Computer]] so leistungsfähig, dass Übersetzungsprogramme die Eingabe von Programmen wesentlich erleichtern konnten. [[Fortran]], [[ALGOL]] und [[Lisp]] waren die ersten Vertreter, deren Namen noch an die neuen, komfortableren Möglichkeiten der Sprachen und Übersetzerprogramme erinnern:&lt;br /&gt;
&lt;br /&gt;
* Fortran – &amp;#039;&amp;#039;FOR&amp;#039;&amp;#039;mula &amp;#039;&amp;#039;TRAN&amp;#039;&amp;#039;slation = Formelübersetzung&lt;br /&gt;
* ALGOL – &amp;#039;&amp;#039;ALGO&amp;#039;&amp;#039;rithmic &amp;#039;&amp;#039;L&amp;#039;&amp;#039;anguage = Algorithmensprache&lt;br /&gt;
* LISP – &amp;#039;&amp;#039;LIS&amp;#039;&amp;#039;t &amp;#039;&amp;#039;P&amp;#039;&amp;#039;rocessing = Listenverarbeitung&lt;br /&gt;
&lt;br /&gt;
Diese ersten höheren Sprachen enthielten abstrakte Elemente wie [[Bedingte Anweisung und Verzweigung|bedingte Anweisungen]] („wenn x wahr, dann führe y aus“) und [[Schleife (Programmierung)|Schleifen]] („solange x gilt, führe y aus“). Diese Konstrukte konnten nun mit weniger Aufwand programmiert werden und drückten in lesbarer Form ihren Zweck aus.&lt;br /&gt;
&lt;br /&gt;
Später folgten weitere Sprachen, die ein höheres Maß an Abstraktion boten. Ein Programm konnte in Unterprogramme (Prozeduren) eingeteilt und diese wiederum zu Modulen zusammengefasst werden. So war es möglich, Teilprogramme von verschiedenen Programmierern entwickeln zu lassen, ohne dass eine Konvention über die verwendeten [[Variable (Programmierung)|Variablen]] getroffen werden musste, da für jede Prozedur die Variablen neu definiert wurden. Wohl aber wurden Ein- und Ausgangsparameter vom Haupt- ans Unterprogramm übergeben und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
Die ersten höheren Sprachen wurden direkt in Assemblersprachen oder Maschinencode übersetzt, um ausgeführt werden zu können. Einige modernere Sprachen werden heute zunächst in weniger hohe Sprachen übersetzt, aus denen wiederum ein effizienter Maschinencode gewonnen werden kann. Die Programme, mit denen solche Übersetzungen ausgeführt werden, heißen [[Compiler]]. Da die Abstraktionen mittlerweile weit vorangeschritten sind, ist der Begriff „höhere Sprache“  relativ zu sehen. So sind die ersten Sprachen wie Fortran höhere Sprachen als Assembler und modernere Sprachen höher als Fortran.&lt;br /&gt;
&lt;br /&gt;
Daneben kann ein Programm in einer höheren Programmiersprache auch interpretiert werden. Dabei wird das Programm nicht vorab in Maschinencode übersetzt, sondern während seiner Laufzeit führt ein [[Interpreter]] die Anweisungen aus. Dieser bildet also eine Schnittstelle zwischen Rechner und Programm und ist heutzutage meist in einer anderen höheren Programmiersprache geschrieben.&lt;br /&gt;
&lt;br /&gt;
Die meisten „modernen“ Programmiersprachen ([[BASIC]], [[C (Programmiersprache)|C]], [[C++]], [[C-Sharp|C#]], [[Visual Basic .NET|VB.NET]], [[Pascal (Programmiersprache)|Pascal]] und [[Java (Programmiersprache)|Java]]) sind Sprachen der &amp;#039;&amp;#039;dritten Generation&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Vergleich zur Assemblersprache ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe5&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:50%&amp;quot;| [[Assemblersprache]]&lt;br /&gt;
! Höhere Programmiersprache&lt;br /&gt;
|-&lt;br /&gt;
| Stark komprimierte, platzsparende Syntax&lt;br /&gt;
| Syntax an menschliche Gewohnheiten angepasst&lt;br /&gt;
|-&lt;br /&gt;
| Nur auf einem bestimmten Prozessortyp lauffähig&lt;br /&gt;
| Großteils [[Portabilität (Informatik)|prozessorunabhängig]]&lt;br /&gt;
|-&lt;br /&gt;
| Hohe Geschwindigkeit durch maschinennahe Befehle&lt;br /&gt;
| Geschwindigkeitsverlust durch Übersetzung in [[Maschinensprache]]&lt;br /&gt;
|-&lt;br /&gt;
| Datentypen des Prozessors ([[Byte]], [[Datenwort|Wort]], [[Langwort]])&lt;br /&gt;
| Abstrakte, maschinenunabhängige [[Datentyp]]en ([[Gleitkommazahl]]en u.&amp;amp;nbsp;a.)&lt;br /&gt;
|-&lt;br /&gt;
| Nur einfache Datentypen&lt;br /&gt;
| [[Datenstruktur]]en (Feld, Record)&lt;br /&gt;
|-&lt;br /&gt;
| Sprungbefehle, [[Makro]]s&lt;br /&gt;
| Mehrere [[Kontrollstruktur]]en (&amp;#039;&amp;#039;if&amp;#039;&amp;#039;, &amp;#039;&amp;#039;while&amp;#039;&amp;#039;, …)&lt;br /&gt;
|-&lt;br /&gt;
| Grundlegende semantische Analyse möglich&lt;br /&gt;
| Weitgehende [[Semantik|semantische]] Analyse möglich&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
       .START ST&lt;br /&gt;
   ST: MOV R1,#2&lt;br /&gt;
       MOV R2,#1&lt;br /&gt;
   M1: CMP R2,#20&lt;br /&gt;
       BGT M2&lt;br /&gt;
       MUL R1,R2&lt;br /&gt;
       INI R2&lt;br /&gt;
       JMP M1&lt;br /&gt;
   M2: JSR PRINT&lt;br /&gt;
       .END&lt;br /&gt;
|&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   A:=2;&lt;br /&gt;
   FOR I:=1 TO 20 LOOP&lt;br /&gt;
       A:=A*I;&lt;br /&gt;
   END LOOP;&lt;br /&gt;
   PRINT(A);&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Einordnung und Nachfolge ==&lt;br /&gt;
Die höheren Programmiersprachen nennt man auch Programmiersprachen der dritten Generation (englisch &amp;#039;&amp;#039;third generation languages&amp;#039;&amp;#039;, kurz &amp;#039;&amp;#039;3GL&amp;#039;&amp;#039;). In Programmiersprachen der dritten Generation muss genau beschrieben werden, wie ein bestimmtes Problem gelöst werden soll. Die Aufgabenstellung ist schwierig aus dem Quellcode zu erkennen. Darum wurden Programmiersprachen der [[4GL|vierten Generation]] entwickelt, die normalerweise für spezielle Problemlösungen optimiert sind und bei denen der Code beschreibt, was der Computer ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Heute gibt es zahlreiche unterschiedliche höhere Programmiersprachen, von denen einige allgemein anwendbar sind, andere aber nur für Spezialanwendungen eingesetzt werden. Allgemein anwendbare Programmiersprachen (general purpose languages) sind nicht auf spezielle Anwendungsfälle zugeschnitten und bieten allgemeine Abstraktionen. Die sog. domänenspezifischen Sprachen ([[Domain Specific Languages]], DSL) andererseits ermöglichen Abstraktionen für einen bestimmten Anwendungsfall. Letztere werden derzeit intensiv erforscht. So gibt es Sprachen für die Gleissteuerung von Zugstrecken mit teilweise grafischer Programmierung, d.&amp;amp;nbsp;h. der „Programmtext“ besteht dort aus Grafiken, die beispielsweise per Mauseingabe manipuliert werden können. Das Ziel bei dieser Programmierweise ist es, eine Abfassung von Programmen in Textform unnötig zu machen und die Programmierung durch intuitive Bedienung einer größeren Anwendergruppe zugänglich zu machen.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Einige Beispiele für aktuelle höhere Programmiersprachen sind im Folgenden gelistet.&lt;br /&gt;
Neben dem Namen ist angegeben, ob es sich um eine interpretierte Sprache handelt, oder ob eine Übersetzung in Maschinencode durch einen Compiler erfolgt. Bei interpretierten Sprachen ist ein entsprechendes Programm (Interpreter) zur Laufzeit erforderlich, um den Quellcode zu interpretieren und auszuführen.&lt;br /&gt;
* [[Java (Programmiersprache)|Java]] – in [[Bytecode]] kompiliert; durch [[Java Virtual Machine]] interpretiert oder weiter in Maschinencode [[Just-in-time-Kompilierung|kompiliert]]&lt;br /&gt;
* [[C++]] – kompiliert&lt;br /&gt;
* [[JavaScript]] – interpretiert&lt;br /&gt;
* [[C-Sharp|C#]] – in [[Common Intermediate Language]] kompiliert; durch [[Virtual Execution System]] interpretiert&amp;lt;ref&amp;gt;{{Internetquelle |autor=blackdwarf |url=https://docs.microsoft.com/de-de/dotnet/standard/managed-code |titel=Was ist verwalteter Code? |sprache=de-DE |abruf=2019-03-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Python (Programmiersprache)|Python]] – interpretiert&lt;br /&gt;
* [[PHP]] – interpretiert&lt;br /&gt;
* [[Ruby (Programmiersprache)|Ruby]] – interpretiert&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Zeittafel der Programmiersprachen]]&lt;br /&gt;
* [[Liste von Programmiersprachen]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Wolf Zimmermann und Roswitha Picht: &amp;#039;&amp;#039;Konzepte höherer Programmiersprachen&amp;#039;&amp;#039;.  [[De Gruyter|De Gruyter Oldenbourg]] 2022. ISBN 978-3-486-58102-7&lt;br /&gt;
* Achim Clausing: &amp;#039;&amp;#039;Programmiersprachen – Konzepte, Strukturen und Implementierung in Java&amp;#039;&amp;#039;. [[Spektrum Akademischer Verlag]] 2011, ISBN 978-3-8274-2850-9&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4160367-9|LCCN=|NDL=|VIAF=}}&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Hohere Programmiersprache}}&lt;br /&gt;
[[Kategorie:Programmiersprachklasse]]&lt;/div&gt;</summary>
		<author><name>212.200.164.104</name></author>
	</entry>
</feed>