2017-11-14 5 views
0

In meinem Skriptum „Systemsprache Implementation“ wird als,Programmiersprache Umsetzung

erklärt

Ein Sprachführungssystem stellt eine Schnittstelle fro Programme in höheren Sprachen zu Maschinenbefehlen.

Und nach einer Suche mir Wikipedia gab,

Eine Programmiersprache Implementierung ist ein System Computerprogramme zur Ausführung.

Aber ich habe es schwer, dieses Konzept zu verstehen. Geht es um etwas wie eine JVM (Java Virtual Machine)?

Kann mir jemand das einfacher erklären?

Antwort

2

Ich gebe es eine Chance.

Programmiersprache Implementierung beschreibt die Methode, wie Ihr Code (z. B. Java) als Beispiel in eine Sprache konvertiert wird, die die Maschine (Prozessor usw.) versteht. Wir bezeichnen dies als Maschinencode.

Es gibt zwei Hauptformen von dieser, Kompilation und Interpretation.

Technisch, wie die Wikipedia-Seite zeigt, konvertiert eine Kompilation eine Programmiersprache in eine andere (normalerweise eine niedrigere). Traditionell bezieht sich dies auf die Kombination mehrerer Eingabedateien in einer einzigen Datei, die auf dem Zielsystem ausgeführt werden kann.

In einer Sprache interpretierte wird das Programm Stück für Stück konvertiert, während es auf Ihrem Computer läuft.

Sie erwähnen die Java Virtual Machine, also werde ich das als Beispiel verwenden. In der JVM ist der Java-Code kompiliert in Java-Bytecode mit javac. Dieser Bytecode wird dann von der Java Virtual Machine interpretiert und auf der zugrunde liegenden Hardware ausgeführt. Dies ist der Befehl java. Während Java als eine kompilierte und interpretierte Sprache beschrieben werden könnte, ist es wahrscheinlich einfacher, Java selbst als kompilierte Sprache und Java Bytecode als interpretierte Sprache zu denken.

Im Gegensatz dazu werden andere Sprachen wie C und C++ normalerweise direkt in den Maschinencode der Zielhardwareplattform konvertiert (kompiliert).

Zusätzlich zu diesen, wie @kostix in den Kommentaren darauf hingewiesen, gibt es transpiling oder Source-to-Source-Compiling. Transpiling bezieht sich auf das Konvertieren einer höheren Sprache in eine höhere Ebene. Ein gängiges Beispiel ist die Konvertierung von JavaScript ES6 nach JavaScript ES5 aus Gründen der Abwärtskompatibilität oder von C++ nach JavaScript

+0

Ich würde den letzten Satz so umformulieren, dass "... normalerweise direkt in den Maschinencode der Ziel-Hardwareplattform umgewandelt" wird. – kostix

+0

Ich würde auch bemerken, dass der Begriff "Kompilierung" selbst ein bisschen unbegründet ist, wenn wir über die Umwandlung eines in einer High-Level-PL geschriebenen Programms in etwas Low-Level, wie Maschinencode, sprechen.Das liegt daran, dass der Ursprung dieses Wortes darin liegt, dass der Compiler * Code aus mehreren Eingaben (normalerweise Dateien) zu einem einzigen Programm kombinieren kann, das auf dem Zielsystem ausgeführt werden kann. – kostix

+0

Um das, was ich meine, vielleicht klarer zu machen, gibt es den Begriff * transpiling *, der heutzutage hauptsächlich dazu benutzt wird, die Konvertierung eines Programms von einer Hochsprache in eine andere, wie C++ in JavaScript, zu beschreiben. – kostix