PHP zu JavaScript Compiler

22. Mai 2017 um 14:19 Uhr von Wolfgang Stengel zu Programmierung, PHP, JavaScript
Seit ein paar Jahren arbeite ich "on and off" an einem Compiler der PHP in JavaScript umwandelt. Etwas Ähnliches gibt es mit Niklas von Herztens php.js schon, meine Engine ist jedoch keine VM sondern ein in PHP geschriebener Parser und Compiler. Während das resultierende JavaScript immer noch eine kleine Runtime (~50 K komprimiert) benötigt, findet die Hauptarbeit in PHP statt.

Hier ist eine kleine Online-Demo. (Ausgaben werden in die Browser-Konsole geschrieben.)

Die meisten im alltäglichen Gebrauch wichtigen Features sowie eine ganze Reihe von spezielleren Eigenschaften von PHP (Referenzen, Iteratoren, Output Buffering, Anonyme Funktionen, Magic Methods, ArrayAccess u.v.m.) sind bereits umgesetzt und der Compiler besteht auch den Großteil der PHP-nativen Unit-Tests (sofern relevant). Zu den größsten fehlenden Bereichen gehören das Dateisystem, Traits und Generators. Wozu das Ganze? Gute Frage. Für mich war es hauptsächlich eine Fingerübung für JavaScript-Programmierung und der Reiz am Detailverständnis der Hintergründe von PHP. Zugegebenermassen motivierte mich auch die zunehmende Fragmentierung in der modernen Webentwicklung (HTML, CSS, PHP, MySQL, JavaScript, Client/Server-Interaktion).
PHP Wolfgang Stengel