Wie schreibe ich eine Skriptsprache mit C? [geschlossen]

7

Wie schreibe ich eine Skriptsprache mit C? Irgendeine Idee? Links?

    
user432213 26.08.2010, 18:40
quelle

7 Antworten

16

Meinst du, wie man eine Sprache schreibt, die in C interpretiert wird?

Wenn ja, sollten Sie Wikipedia und andere Quellen zu folgenden Themen überprüfen:

  • Lexikalische Analyse (Umwandlung von Quellcode in Tokens, wie Schlüsselwörter, Integer- / Float-Literale, String-Literale usw.)
  • Parsen (Überprüfen dieser Token gegen eine vordefinierte, in der Regel kontextfreie Grammatik, um sicherzustellen, dass das Programm syntaktisch korrekt ist)
  • Syntax Trees (wird normalerweise beim Parsen erstellt; erstellt eine intermediäre Baumdarstellung, die durchlaufen werden kann, um den Code auszuführen)
  • Symboltabellen (Im Grunde, wie man nach Variablennamen sucht)
  • Peephole Optimizations (wenn Sie möchten, dass Ihr Code schneller ausgeführt wird und dafür mehr Zeit in der Phase vor der Ausführung benötigt wird)

Es ist viel mehr Arbeit, als Sie vielleicht denken ... Viel Spaß beim Lesen!

    
Platinum Azure 26.08.2010 18:45
quelle
5

Sie können sich das Buch "Die UNIX-Programmierumgebung" ansehen

Ссылка

Am Ende des Buches, und so ziemlich das letzte Kapitel, schrieben die Autoren Schritt für Schritt einen kleinen Interpreter in C mit genügend und detaillierten Informationen. Sehr interessant und sehr einfach zu folgen.

Der Quellcode dieses Interpreters ist hier

    
OscarRyz 26.08.2010 18:49
quelle
4

Warum nicht den C-Code für eine (einfache) Skriptsprache betrachten? Vielleicht Lua? ( Link ) )

Vielleicht sollten Sie auch etwas über Parser-Generatoren lesen, die der erste Baustein sind, den Ihr Programm interpretieren kann Sprache. Der zweite Block soll tatsächlich tun, was geparst wurde (manchmal kann man das in den Parser integrieren, es können Callback-Funktionen bei jedem Token / jeder Struktur analysiert werden). Einfache Beispiele wie das Parsen und Ausführen mathematischer Formeln könnten helfen.

    
nob 26.08.2010 18:44
quelle
3

Es gibt ein gutes, wenn auch altes, Buch namens "Sprachprogramme für kleine Sprachen erstellen" Sprachen ", mit denen Sie beginnen können. Es ist sehr pragmatisch und erklärt die verschiedenen Möglichkeiten, die Sie haben, wenn Ihre Bedürfnisse komplexer werden.

Darüber hinaus werden Sie im Wesentlichen ein oder zwei Bücher über Compiler und Interpreter recherchieren wollen. Wenn Sie einen Pfad mit niedrigerem Widerstand suchen und dies zum Verstehen von Konzepten und nicht für eine Klasse oder Arbeitsprojekte tun, sollten Sie sich eine Alternative zu C wie Lisp oder Scheme ansehen, die den Aufbau erleichtert an kleinen Experimenten. Oder lernen Sie DSLs in Sprachen zu entwickeln, die das einfacher machen (Boo, Groovy).

    
JasonTrue 26.08.2010 18:47
quelle
1

Das ist eine wirklich allgemeine Frage und wird wahrscheinlich geschlossen werden, aber hey, ich könnte genauso gut diese Antwort posten: Lua ( Ссылка ) ) ist eine sehr beliebte Skriptsprache, die in C geschrieben ist. Sie können das als Inspiration verwenden.

    
EboMike 26.08.2010 18:44
quelle
1

Mein Rat wäre, mit einem Recursive Descent Parser zu beginnen.

Wenn dir dieses Zeug gefällt, solltest du definitiv eine Kopie des Drachenbuchs bekommen.

    
stacker 26.08.2010 18:56
quelle
0

Sie können sich ANTLR [link]

ansehen     
ideawu 15.07.2012 01:52
quelle

Tags und Links