Bytecode

Bytecode, auch bekannt als P-Code (tragbarer Code), sind ein Begriff, der verwendet worden ist, um verschiedene Formen von Befehlssätzen anzuzeigen, die für die effiziente Ausführung durch einen Softwaredolmetscher entworfen sind sowie zu sein, passend für die weitere Kompilation in den Maschinencode. Da Instruktionen durch die Software bearbeitet werden, können sie willkürlich kompliziert sein, aber sind dennoch häufig mit traditionellen Hardware-Instruktionen verwandt; virtuelle Stapel-Maschinen sind die allgemeinsten aber virtuellen Register-Maschinen sind auch gebaut worden. Verschiedene Teile können häufig in getrennten Dateien versorgt, ähnlich werden, um Module, aber dynamisch geladen während der Ausführung einzuwenden.

Der Name bytecode stammt von Befehlssätzen, die ein Byte opcodes gefolgt von fakultativen Rahmen haben. Zwischendarstellungen wie bytecode können Produktion durch Programmiersprache-Durchführungen sein, um Interpretation zu erleichtern, oder es kann verwendet werden, um Hardware und Betriebssystemabhängigkeit zu reduzieren, indem es demselben Code erlaubt wird, auf verschiedenen Plattformen zu laufen. Bytecode kann häufig entweder auf einer virtuellen Maschine (d. h. Dolmetscher) direkt durchgeführt werden, oder er kann weiter in den Maschinencode für die bessere Leistung kompiliert werden.

Verschieden vom menschlich-lesbaren Quellcode sind bytecodes numerische Kompaktcodes, Konstanten und Verweisungen (normalerweise numerische Adressen), die das Ergebnis der Syntaxanalyse und semantischen Analyse von Dingen wie Typ, Spielraum und nistende Tiefen von Programm-Gegenständen verschlüsseln. Sie erlauben deshalb viel bessere Leistung als direkte Interpretation des Quellcodes.

Ausführung

Ein bytecode Programm kann durch die Syntaxanalyse und direkt die Durchführung der Instruktionen einer nach dem anderen durchgeführt werden. Diese Art des bytecode Dolmetschers ist sehr tragbar. Einige Systeme, genannt dynamische Übersetzer, oder "gerade rechtzeitig" (JIT) Bearbeiter, übersetzen bytecode in die Maschinensprache als notwendig an der Durchlaufzeit: Das macht die virtuelle Maschine untragbar, aber verliert die Beweglichkeit des bytecode selbst nicht. Zum Beispiel, wird Java und Plausch-Code normalerweise im Bytecoded-Format versorgt, das normalerweise dann JIT ist, der kompiliert ist, um den bytecode zu übersetzen, um Code vor der Ausführung maschinell herzustellen. Das führt eine Verzögerung ein, bevor ein Programm geführt wird, wenn bytecode zum heimischen Maschinencode kompiliert wird, aber Ausführungsgeschwindigkeit beträchtlich im Vergleich zur direkten Interpretation des Quellcodes normalerweise um mehrere Umfänge verbessert.

Wegen seines Leistungsvorteils heute führen viele Sprachdurchführungen ein Programm in zwei Phasen durch, zuerst den Quellcode in bytecode kompilierend, und dann den bytecode zur virtuellen Maschine passierend. Deshalb gibt es virtuelle Maschinen für Java, Pythonschlange, PHP, Hervor, und Tcl. Die Durchführung von Perl und Ruby 1.8 stattdessen Arbeit durch das Wandern einer abstrakten Syntax-Baumdarstellung ist auf den Quellcode zurückzuführen gewesen.

Beispiele

  • ActionScript führt in ActionScript Virtual Machine (AVM) durch, die ein Teil des Blitz-Spielers und der LUFT ist. Code von ActionScript wird normalerweise ins Bytecode-Format durch einen Bearbeiter umgestaltet. Beispiele von Bearbeitern schließen denjenigen ein, der in zu Adobe Flash Professional und demjenigen gebaut ist, der in zu Adobe Flash Builder gebaut und in Adobe Flex SDK verfügbar wird.
  • Adobe Flash wendet ein
  • BANCStar, ursprünglich bytecode für ein Schnittstelle bauendes Werkzeug, aber verwendet als eine Sprache in seinem eigenen Recht.
  • Byte-Codetechnikbibliothek
  • C nach Java Virtuelle Maschinenbearbeiter
  • Die CLISP Durchführung des Allgemeinen Lispelns kompiliert nur zu bytecode
  • CMUCL und Scieneer Allgemeine Lispeln-Durchführungen des Allgemeinen Lispelns können entweder zu bytecode oder zum heimischen Code kompilieren; bytecode ist viel kompakterer
  • Dalvik bytecode, der für die Androide-Plattform entworfen ist, wird von Dalvik virtuelle Maschine durchgeführt.
  • EiffelStudio für die Programmiersprache von Eiffel
  • Emacs ist ein Textaufbereiter mit einer Mehrheit seiner durch seinen spezifischen Dialekt des Lispelns durchgeführten Funktionalität. Diese Eigenschaften werden in bytecode kompiliert. Diese Architektur erlaubt Benutzern, den Redakteur mit einer hohen Sprache kundengerecht anzufertigen, die nach der Kompilation in bytecode angemessene Leistung nachgibt.
  • Embeddable, die die Allgemeine Lispeln-Durchführung des Allgemeinen Lispelns zu bytecode oder C kompilieren kann, codieren
  • Die Durchführung von Ericsson von Erlang verwendet BALKEN bytecodes
  • Ikone und Unikonenprogrammiersprachen
  • Infocom hat die Z-Maschine verwendet, um seine Softwareanwendungen mehr tragbar zu machen.
  • Java bytecode, der durch Java Virtuelle Maschine durchgeführt wird
  • ASM
  • BCEL
  • Javassist
  • JMangler
  • LLVM, ein bytecode Modulbearbeiter und virtuelle Maschine
  • Lua, mit einer Register-basierten virtuellen Maschine, kompiliert auch LUAC-Formen seiner Schriften für kleine schnelle Systeme, die den Bearbeiter nicht einzuschließen brauchen.
  • M Code der MATLAB Programmiersprache
  • Geführter Code wie Microsoft.NET Allgemeine Zwischensprache, die von.NET Common Language Runtime (CLR) durchgeführt ist
  • O-Code der BCPL Programmiersprache
  • OCaml Programmiersprache kompiliert fakultativ zu einem kompakten bytecode Form
  • P-Code der UCSD Durchführung von Pascal der Programmiersprache von Pascal
  • Papagei virtuelle Maschine
  • Die R Umgebung für statistische Rechenangebote ein Byte-Codebearbeiter durch das Bearbeiter-Paket, jetzt Standard mit der R Version 2.13.0. Es ist möglich, diese Version von R zu kompilieren, so dass die Basis und empfohlenen Pakete das ausnutzen.
  • Durchführung des Schemas 48 des Schemas mit bytecode Dolmetscher
  • Bytecodes von vielen Durchführungen der Plausch-Programmiersprache
  • Der DREHUNGS-Dolmetscher, der in den Parallaxe-Propeller-Mikrokontrolleur eingebaut ist
  • SWEET16
  • Visueller FoxPro kompiliert zu bytecode
  • YARV und Rubinius für den Rubin.

Referenzen


Taligent / Vorkolumbianisches Zeitalter
Impressum & Datenschutz