Wo speichert Perl seinen Zwischenbyte-Code?

7

Nachdem ich einige Links durchgelesen habe, habe ich erfahren, dass Perl die Kompilierung und Erstellung durchführt ein Zwischenbytecode und interpretiere dann diesen Bytecode. Meine Frage ist, wo befindet sich dieser Byte-Code?

Wie in anderen Sprachen wie Java, c können wir nach der Kompilierung den maschinenausführbaren Objektcode sehen. Obwohl Perl keinen ausführbaren Maschinencode erstellt, sollte es doch einige geben Ort, wo es den Byte-Code vorübergehend speichert.

    
Joe 01.10.2010, 12:40
quelle

2 Antworten

18

Das Ergebnis der Kompilierung wird im Speicher als Opcode-Baum gespeichert. Diese Struktur wird von Perl zur Laufzeit durchlaufen, um Ihr Programm auszuführen.

Sie werden wahrscheinlich den Abschnitt "Kompilierter Code" von Perlgut interessant finden. Es erklärt viele der Details zum Erstellen einer Perl-Option.

Es ist auch möglich, das optiere auf den Datenträger zu schreiben und es erneut in einen anderen Perl-Prozess zu laden, indem man die B::C -Distribution und das ByteLoader -Modul verwendet, die darin enthalten sind. Allerdings funktioniert diese Technik in vielen Programmen nicht so gut, daher wird sie in keiner Weise empfohlen.

    
rafl 01.10.2010, 13:21
quelle
2

Es speichert es als AST .

    
Chas. Owens 01.10.2010 12:45
quelle

Tags und Links