Third generation language

Third generation language

Eine höhere Programmiersprache (engl. high level language) ist eine Programmiersprache, die die Abfassung eines Computerprogramms in einer abstrakten Sprache ermöglicht (die so zwar für Menschen, aber nicht unmittelbar für Computer verständlich ist).

Geschichte

Als weltweit erste höhere Programmiersprache gilt der Plankalkül von Konrad Zuse, der allerdings keinen Einfluss auf die Entwicklung späterer Sprachen hatte.

Die ersten Computer wurden mit Hilfe von Programmen in Maschinencode instruiert. Dieser besteht lediglich aus einer Folge von Zahlen, die vom Prozessor als Befehlsfolge interpretiert wurden. Diese Befehle bestanden (und bestehen heute immer noch) aus einfachen Anweisungen wie Arithmetik, Speicherzugriffen usw. Die erste Innovation war die Erfindung von Assemblersprachen, die nicht abstrahieren, die Befehle aber in Textform darstellen.

Ende der 1950er 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:

  • Fortran - FORmula TRANslation = Formelübersetzung
  • ALGOL - ALGOrithmic Language = Algorithmensprache
  • LISP - LISt Processing = Listenverarbeitung

Diese ersten höheren Sprachen enthielten abstrakte Elemente wie bedingte Anweisungen („wenn x wahr, dann führe y aus“) und 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.

Später folgten weitere Sprachen, die ein höheres Maß an Abstraktion boten (daher der Begriff höhere Programmiersprache). Ein Programm konnte in Unterprogramme (Prozeduren) eingeteilt und diese wiederum zu Modulen zusammengefasst werden. So war es möglich, Teilprogramme von verschiedenen Personen entwickeln zu lassen, ohne dass eine Konvention über die verwendeten 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. Prinzipiell kann gesagt werden, dass höhere Programmiersprachen mehr (Logik) mit weniger Text ausdrücken. Gleichzeitig wird die Lesbarkeit des Programmtextes erhöht.

Mittlerweile sind die Abstraktionen so weit vorangeschritten, dass der Begriff Hochsprache relativ geworden ist. So sind die ersten Sprachen wie Fortran höhere Sprachen als Assembler und modernere Sprachen höher als Fortran. Der Ausdruck Hochsprache beinhaltet also stets einen Bezug auf eine Sprache(familie).

Dies wird auch aus einer weiteren Tatsache ersichtlich: Die ersten höheren Sprachen wurden zuerst in Assemblersprachen bzw. Maschinencode übersetzt, um dann ausgeführt werden zu können. Einige modernere Sprachen werden heute erst in weniger hohe Sprachen übersetzt, aus denen selbst wiederum relativ effizienter Maschinencode gewonnen werden kann. Die Programme, mit denen solche Übersetzungen ausgeführt werden, heißen Compiler.

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.

Die meisten „modernen“ Programmiersprachen (BASIC, C, C++, C#, Borland Delphi und Java) sind Sprachen der dritten Generation.

Vergleich zur Assemblersprache

Höhere Programmiersprache Assemblersprache
Syntax oft an menschliche Denkgewohnheiten angepasst Platzsparende, stark komprimierte Syntax
Größtenteils maschinenunabhängig Nur auf einem bestimmten Prozessortyp lauffähig
Geschwindigkeitsverlust durch Abstraktion (tendenziell) Maschinennahe Befehle erhöhen die Geschwindigkeit
Abstrakte, maschinenunabhängige Datentypen (Ganzzahl, Gleitkommazahl, ...) Datentypen des Prozessors (Byte, Wort, Langwort)
Mehrere Kontrollstrukturen (if, while,...) Sprungbefehle, Makros
Datenstrukturen (Feld, Record) Nur einfache Typen
Weitgehende semantische Analyse möglich Nur grundlegende semantische Analyse möglich

Beispiel:

  A:=2;
  FOR I:=1 TO 20 LOOP
      A:=A*I;
  END LOOP;
  PRINT(A);

Beispiel:

      .START ST
  ST: MOV R1,#2
      MOV R2,#1
  M1: CMP R2,#20
      BGT M2
      MUL R1,R2
      INI R2
      JMP M1
  M2: JSR PRINT
      .END

Einordnung und Nachfolge

Die Höheren Programmiersprachen nennt man auch Third generation languages oder kurz 3GL. 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 vierten Generation entwickelt, die normalerweise für spezielle Problemlösungen optimiert sind und bei denen der Code beschreibt, was der Computer ausführen soll.

Heute existieren 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.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.


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Third Generation Language —   [dt. »Sprache der dritten Generation«] (3GL), Computergeneration …   Universal-Lexikon

  • Third-generation programming language — A third generation language (3GL) is a programming language designed to be easier for a human to understand, including things like named variables, abstract data types, and algebraic expression syntax. Another crucial difference compared to… …   Wikipedia

  • Third-generation Chevrolet Camaro — Infobox Automobile name = Third generation Chevrolet Camaro aka = manufacturer = Chevrolet parent company = General Motors production = 1982 1992 assembly = Van Nuys, California Norwood, OH 1982 1987 only predecessor = Second ndash;gen Camaro… …   Wikipedia

  • Third Generation /composers — The Third Generation’ composers refers to those who entered the conservatories in 1978 when universities again began to recruit students after the Cultural Revolution. The best known names among the ‘Third Generation’ composers are: Qu Xiaosong,… …   Encyclopedia of Contemporary Chinese Culture

  • Third Generation /poets — Vaguely denoting a collective identity of younger poets in the mid 1980s, the term ‘Third Generation poets’ (Disandai shiren) was first used in a 1985 essay by Wan Xia in Contemporary Poetry (Xiandai shi, Chengdu). Defined by Wan Xia, the ‘first… …   Encyclopedia of Contemporary Chinese Culture

  • The Third Generation — For the 2009 documentary, see The Third Generation (2009 film). The Third Generation Theatrical release poster Directed by Rainer …   Wikipedia

  • fourth-generation language (4GL) — Fourth generation computer programming language. 4GLs are closer to human language than other high level languages and are accessible to people without formal training as programmers. They allow multiple common operations to be performed with a… …   Universalium

  • Unto the Third Generation — Infobox Film name = Unto the Third Generation image size = caption = director = Harry Solter producer = writer = Walter MacNamara (story) narrator = starring = Earle Foxe Florence Lawrence Matt Moore music = cinematography = editing = distributor …   Wikipedia

  • language — /lang gwij/, n. 1. a body of words and the systems for their use common to a people who are of the same community or nation, the same geographical area, or the same cultural tradition: the two languages of Belgium; a Bantu language; the French… …   Universalium

  • Third-wave feminism — is a term identified with several diverse strains of feminist activity and study beginning in the early 1990s. The movement arose as a response to perceived failures and backlash against initiatives and movements created by second wave feminism… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”