Auf niedriger Stufe Programmiersprache

In der Informatik ist eine auf niedriger Stufe Programmiersprache eine Programmiersprache, die wenig oder keine Abstraktion von einer Befehlssatz-Architektur eines Computers zur Verfügung stellt. Allgemein bezieht sich das entweder auf den Maschinencode oder auf die Zusammenbau-Sprache. Das Wort bezieht sich "niedrig" auf den kleinen oder nicht existierenden Betrag der Abstraktion zwischen der Sprache und Maschinensprache; wegen dessen werden auf niedriger Stufe Sprachen manchmal beschrieben als, "in der Nähe von der Hardware zu sein."

Auf niedriger Stufe Sprachen können zum Maschinencode umgewandelt werden, ohne einen Bearbeiter oder Dolmetscher zu verwenden, und der resultierende Code läuft direkt auf dem Verarbeiter. Ein auf einer auf niedriger Stufe Sprache geschriebenes Programm kann gemacht werden, sehr schnell, und mit einem sehr kleinen Speicherfußabdruck zu laufen; ein gleichwertiges Programm auf einer höheren Programmiersprache wird mehr Schwergewicht sein. Auf niedriger Stufe Sprachen sind einfach, aber werden schwierig betrachtet, wegen der zahlreichen technischen Details zu verwenden, die nicht vergessen werden müssen.

Vergleichsweise isoliert eine Programmiersprache auf höchster Ebene die Ausführungssemantik einer Computerarchitektur von der Spezifizierung des Programms, das Entwicklung vereinfacht.

Auf niedriger Stufe Programmiersprachen werden manchmal in zwei Kategorien geteilt: die erste Generation und die zweite Generation.

Maschinencode

Maschinencode ist die einzige Sprache, die ein Mikroprozessor direkt ohne eine vorherige Transformation bearbeiten kann. Zurzeit schreiben Programmierer fast nie Programme direkt im Maschinencode, weil er Aufmerksamkeit auf zahlreiche Details verlangt, die eine höhere Programmiersprache automatisch behandeln würde, und auch das Merken oder Aufblicken numerische Codes für jede Instruktion verlangt, die verwendet wird. Deshalb stellen die zweiten Generationsprogrammiersprachen ein Abstraktionsniveau oben auf dem Maschinencode zur Verfügung.

Beispiel: Eine Funktion in 32 Bit x86 Maschinencode, um die n-te Fibonacci-Zahl zu berechnen:

8B542408 83FA0077 06B80000 0000C383

FA027706 B8010000 00C353BB 01000000

B9010000 008D0419 83FA0376 078BD98B

C84AEBF1 5BC3

</pre>

Zusammenbau

Zusammenbau-Sprache wird als eine auf niedriger Stufe Sprache betrachtet, weil, während es nicht eine Muttersprache eines Mikroprozessors ist, ein Zusammenbau-Sprachprogrammierer noch die einzigartige Architektur des Mikroprozessors (wie seine Register und Instruktionen) verstehen muss. Diese einfachen Instruktionen werden dann direkt in den Maschinencode gesammelt. Der Zusammenbau-Code kann auch zu einer anderen Schicht auf eine ähnliche Weise abstrahiert werden, wie Maschinencode in den Zusammenbau-Code abstrahiert wird.

Beispiel: Dieselbe Fibonacci-Zahl-Rechenmaschine wie oben, aber auf der x86 Zusammenbau-Sprache mit der MASM Syntax:

Flunkerei:

mov edx, [esp+8]

cmp edx, 0

ja @f

mov eax, 0

rösten Sie

@@:

cmp edx, 2

ja @f

mov eax, 1

rösten Sie @@:

stoßen Sie ebx

mov ebx, 1

mov ecx, 1

@@:

Weide eax, [ebx+ecx]

cmp edx, 3

jbe @f

mov ebx, ecx

mov ecx, eax

Dez edx

jmp @b

@@:

lassen Sie ebx knallen

rösten Sie</pre>

Auf niedriger Stufe Programmierung auf höheren Programmiersprachen

Experimente mit der Hardware-Unterstützung auf höheren Programmiersprachen gegen Ende der 1960er Jahre haben zu solchen Sprachen wie PL/S, SELIGKEIT, BCPL geführt, und haben Algol für Burroughs große Systeme erweitert, die für die auf niedriger Stufe Programmierung verwenden werden. Hervor auch hat Anwendungen als eine Systemsprache. Jedoch war die Sprache, die herausragend in der Systemprogrammierung geworden ist, C.

C wird als eine dritte Generationsprogrammiersprache betrachtet, da er strukturiert wird und Auszüge aus dem Maschinencode (historisch, ist keine zweite Generationsprogrammiersprache erschienen, der für die auf niedriger Stufe Programmierung besonders passend war). Jedoch könnten sich viele Programmierer heute auf so auf niedriger Stufe C beziehen, wie er an einem großen Laufzeitsystem (keine Müll-Sammlung usw.) Mangel hat Grundsätzlich stellen Unterstützungen nur Skalaroperationen, und das direkte Speicherwenden zur Verfügung. Es verschmilzt deshalb sogleich mit der Zusammenbau-Sprache und dem Maschinenniveau von Zentraleinheiten und Mikrokontrolleuren. Die Fähigkeit von C, vom Maschinenniveau zu abstrahieren, bedeutet, dass derselbe Code für verschiedene Hardware-Plattformen kompiliert werden kann; jedoch ist die feinkörnige Kontrolle am Systemniveau noch mögliche Versorgung, dass die Zielplattform bestimmte weit gehend definierte Eigenschaften im Platz, wie ein flaches Speichermodell und Gedächtnis hat, das in Bytes geteilt wird. C Programme kann einen bestimmten Betrag 'des Zwickens' verlangen, das häufig durch die bedingte Kompilation für verschiedene Zielplattformen durchgeführt ist. Der Prozess, ein Systemprogramm an eine verschiedene Plattform anzupassen, ist als Halten nach Backbord bekannt.

Beispiel - eine Funktion, die die n-te Fibonacci-Zahl in C berechnet

nicht unterzeichnete int Flunkerei (nicht unterzeichnete interne Nummer n)

{\

wenn (n

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. Viele Programmierer könnten sich heute auf C als auf niedriger Stufe beziehen.

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.

Siehe auch

Programmiersprachen sehr auf höchster Ebene
  • Programmiersprache-Generationen

Standardzeit von Korea / Vereinigte Staaten Schiff Nevada
Impressum & Datenschutz