Programmiersprache auf höchster Ebene

Eine Programmiersprache auf höchster Ebene ist eine Programmiersprache mit der starken Abstraktion von den Details des Computers. Im Vergleich mit auf niedriger Stufe Programmiersprachen kann es Elemente der natürlichen Sprache verwenden, leichter sein, zu verwenden, oder von der Spezifizierung des Programms zu sein, den Prozess machend, ein Programm zu entwickeln, das einfacher und in Bezug auf eine auf niedriger Stufe Sprache verständlicher ist. Der Betrag der zur Verfügung gestellten Abstraktion definiert, wie "auf höchster Ebene" eine Programmiersprache ist.

Die erste für Computer entworfene Programmiersprache auf höchster Ebene war Plankalkül, der von Konrad Zuse geschaffen ist. Jedoch wurde es in seiner Zeit nicht durchgeführt, und seine ursprünglichen Beiträge wurden von anderen Entwicklungen größtenteils isoliert (es hat die Sprache von Heinz Rutishauser "Superplan" beeinflusst).

Eigenschaften

"Höhere Programmiersprache" bezieht sich auf das höhere Niveau der Abstraktion aus der Maschinensprache. Anstatt sich mit Registern, Speicheradressen und Anruf-Stapeln zu befassen, befassen sich höhere Programmiersprachen mit Variablen, Reihe, Gegenständen, komplizierter Arithmetik oder boolean Ausdrücken, Unterprogrammen und Funktionen, Schleifen, Fäden, Schlössern und anderen abstrakten Informatik-Konzepten mit einem Fokus auf der Brauchbarkeit über die optimale Programm-Leistungsfähigkeit. Verschieden von auf niedriger Stufe Zusammenbau-Sprachen haben höhere Programmiersprachen wenige, falls etwa, Sprachelemente, die direkt in einen Eingeborenen einer Maschine opcodes übersetzen. Andere Eigenschaften, wie Schnur-Berühren-Routinen, objektorientierte Spracheigenschaften, und Dateieingang/Produktion, können auch da sein.

Abstraktionsstrafe

Während höhere Programmiersprachen beabsichtigt sind, um komplizierte Programmierung zu machen, erzeugen einfachere, auf niedriger Stufe Sprachen häufig effizienteren Code. Abstraktionsstrafe ist die Barriere, die Programmiertechniken auf höchster Ebene davon abhält, in Situationen angewandt zu werden, wo rechenbetonte Mittel beschränkt werden. Programmiereigenschaften auf höchster Ebene wie mehr allgemeine Datenstrukturen, Laufzeitinterpretation und Zwischencodedateien laufen häufig auf langsamere Ausführungsgeschwindigkeit, höheren Speicherverbrauch und größere binäre Programm-Größe hinaus. Deshalb Code, der besonders schnell laufen muss und effizient den Gebrauch einer Sprache der niedrigeren Ebene verlangen kann, selbst wenn eine Sprache des höheren Niveaus das Codieren leichter machen würde. In vielen Fällen können kritische Teile eines Programms größtenteils auf einer höheren Programmiersprache auf der Zusammenbau-Sprache handcodiert werden, zu einem viel schnelleren oder effizienteren optimierten Programm führend.

Jedoch, mit der wachsenden Kompliziertheit von modernen Mikroprozessor-Architekturen, erzeugen gut bestimmte Bearbeiter für höhere Programmiersprachen oft Code, der in der Leistungsfähigkeit dazu vergleichbar ist, was die meisten auf niedriger Stufe Programmierer mit der Hand erzeugen können, und die höhere Abstraktion berücksichtigen kann, dass stärkere Techniken bessere Gesamtergebnisse zur Verfügung stellen als ihre auf niedriger Stufe Kollegen in besonderen Einstellungen.

Hohe Sprachen werden unabhängig der Struktur eines spezifischen Computers entworfen. Das erleichtert Durchführung eines Programms, das auf solch einer Sprache über verschiedene Computer geschrieben ist.

Verhältnisbedeutung

Die Begriffe auf höchster Ebene und auf niedriger Stufe sind von Natur aus relativ. Vor einigen Jahrzehnten wurden die c Sprache und ähnlichen Sprachen, meistenteils "auf höchster Ebene" betrachtet, weil sie Konzepte wie Ausdruck-Einschätzung unterstützt hat, hat rekursive Funktionen, und Datentypen und Strukturen parametrisiert, während Zusammenbau-Sprache "auf niedriger Stufe" betrachtet wurde. Viele Programmierer könnten sich heute auf so auf niedriger Stufe C beziehen, wie er an einem großen Laufzeitsystem (keine Müll-Sammlung, usw.) Mangel hat, grundsätzlich nur Skalaroperationen unterstützt, und das direkte Speicherwenden zur Verfügung stellt. Es verschmilzt deshalb sogleich mit der Zusammenbau-Sprache und dem Maschinenniveau von Zentraleinheiten und Mikrokontrolleuren.

Zusammenbau-Sprache kann selbst als ein höheres Niveau (aber häufig noch isomorph, wenn verwendet, ohne Makros) Darstellung des Maschinencodes betrachtet werden, weil es Konzepte wie Konstanten und (beschränkte) Ausdrücke, manchmal sogar Variablen, Verfahren und Datenstrukturen unterstützt. Maschinencode ist seinerseits von Natur aus an einem ein bisschen höheren Niveau als der Mikrocode oder die Mikrooperationen verwendet innerlich in vielen Verarbeitern.

Ausführungsmodelle

Es gibt drei Modelle der Ausführung für moderne höhere Programmiersprachen:

Interpretiert: Interpretierte Sprachen werden gelesen und dann direkt ohne Kompilationsbühne durchgeführt. Ein Programm hat gerufen ein Dolmetscher liest jede Programm-Linie im Anschluss an den Programm-Fluss, wandelt es zum Maschinencode um, und führt es durch; der Maschinencode wird dann verworfen, um von neuem interpretiert zu werden, wenn die Linie wieder durchgeführt wird.

Kompiliert: Kompilierte Sprachen werden in eine rechtskräftige Form vor dem Laufen umgestaltet. Es gibt zwei Typen der Kompilation:

:; Maschinencodegeneration: Einige Bearbeiter kompilieren Quellcode direkt in den Maschinencode. Das ist die ursprüngliche Weise der Kompilation, und Sprachen, die in den maschinenheimischen Code auf diese Weise direkt und völlig umgestaltet werden, können "aufrichtig kompilierte" Sprachen genannt werden.

:; Zwischendarstellungen: Wenn eine Sprache zu einer Zwischendarstellung kompiliert wird, kann diese Darstellung optimiert oder für die spätere Ausführung ohne das Bedürfnis gespart werden, die Quelldatei nochmals zu lesen. Wenn die Zwischendarstellung gespart wird, wird sie häufig als Byte-Code vertreten. Die Zwischendarstellung muss dann interpretiert oder weiter kompiliert werden, um es durchzuführen. Virtuelle Maschinen, die Byte-Code direkt durchführen oder ihn weiter in den Maschinencode umgestalten, haben einmal klare Unterscheidung zwischen Zwischendarstellungen verschmiert und aufrichtig Sprachen kompiliert.

Übersetzt: Eine Sprache kann in eine Programmiersprache der niedrigeren Ebene übersetzt werden, für die heimische Codebearbeiter bereits weit verfügbar sind. Die C Programmiersprache ist ein allgemeines Ziel für solche Übersetzer.

Siehe auch

Außenverbindungen


Vereinigte Staaten Schiff Nebraska (BB-14) / Standardzeit von Korea
Impressum & Datenschutz