Um einen Interpreter zu erstellen, müssen Sie einen Quellcode-Parser, eine Bytecode-Ausführungsschleife und eine große Menge an Standardbibliothekscode schreiben. Es macht nicht immer Spaß und ist einfach, wenn Sie nicht die Tools verwenden, die der Compiler und Parser für Sie generieren. Mit ihnen wird es so einfach wie Birnen schälen, einen Sprachdolmetscher für eine sachkundige Person zu schreiben. Sehen wir uns ein Beispiel für das Schreiben eines Interpreters mit JIT in PyPy an.
Anweisungen
Schritt 1
Wählen Sie eine Sprache zum Schreiben. In diesem Fall ist es ein Hirngespinst. Es ist sehr einfach und besteht aus einem Band mit ganzen Zahlen, die auf Null initialisiert werden, und einem Zeiger auf die aktuelle Zelle im Band. Es gibt nur acht Befehle in der Sprache: ">" - Bewegen Sie den Zeiger in die nächste Zelle,"
Schritt 2
Schreiben Sie einen Interpreter in reinem Python. Der Befehlszähler speichert Zeiger auf den aktuellen Befehl. Der erste Ausdruck ruft die Anweisung ab, danach legen mehrere Anweisungen fest, wie sie ausgeführt wird. Lassen Sie die Implementierung der Operatoren "[" und "]" weg, da sie den Befehlszähler an die Position derselben Klammer ändern müssen.
Schritt 3
Implementieren Sie eine Tape-Klasse, die einen Zeiger auf die aktuelle Zahl und ein Band mit ganzen Zahlen speichert. Das Band wächst nach Bedarf. Analysieren Sie den Quellcode im Voraus, damit nicht mehrere Kommentare ein Byte nach dem anderen gelesen werden. Erstellen Sie auch ein Klammerwörterbuch, damit Sie bei Bedarf passende Klammern darin finden können.
Schritt 4
Führen Sie def parse (Programm) aus. Diese Funktion gibt nur Zeichenfolgen aus Befehlen und dem Klammerwörterbuch zurück.
Schritt 5
Setzen Sie alles zusammen und Sie haben einen funktionierenden Brainfuck-Dolmetscher. Starten Sie den Python-Interpreter und stellen Sie sicher, dass er funktioniert. Dies ist nur ein einziges Beispiel für das Schreiben eines Dolmetschers in der einfachsten Sprache. Wenn Sie möchten, können Sie in fast jeder Sprache schreiben, nachdem Sie sich mit deren Eigenschaften und Zweck vertraut gemacht haben.