Wie Schreibe ich eine Scripting Sprache mit C?
Schreiben wie man eine Skriptsprache mit C?
Irgendeine Idee? Links?
- Das ist zu allgemein, um beantwortet werden.
- Laden Sie die Quelle für die bash. Getan.
- Blick auf Lua. Getan.
- Ruby wurde in C geschrieben und ist open source, also schauen Sie, dass...
- IMO, die bestehenden Optionen, die erwähnt worden (bash, Lua, Ruby) sind entweder zu groß und zu Komplex, oder aber haben eine lange Geschichte mit der Abwärtskompatibilität beibehalten. So oder so, es endet zu groß und Komplex, um wirklich ansprechbar. Ich würde wahrscheinlich abholen eine Kopie Der UNIX-Programmierumgebung, die auch ein Projekt zur Entwicklung eines kleinen Programmiersprache in eine Anzahl von diskreten, gut erklärte Schritte. Sie wahrscheinlich nicht wollen, um es in der Sprache oder den code direkt, aber man kann immer noch daraus lernen.
- Siehe meine Antwort. Es gibt eine sehr gute Verbindung dorthin.
- Ich hasse es, wenn interessante Fragen, die erzeugen viel Antworten und Stimmen geschlossen. Es gibt gute Informationen hier, also warum abschneiden?
- McCarthy: ich kann sehen, dass es interessant ist. Aber es scheint zu vage zu beantworten. Wie könnte jemand geben eine Antwort auf ein "angenommen"? Was wären die Kriterien für die Annahme auch sein?
- Die Frage fordert insbesondere für links. Einige der vielen Antworten, erschien in der 20-Minuten-diese Frage war offen, sofern gute links. Ich denke, das ist klare Beweise, dass die Frage nicht zu allgemein, nicht zu beantworten, noch dass es nicht erzeugen genug Interesse.
- McCarthy: ich habe bereits vereinbart, dass es interessant ist. Wie könnte jemand geben eine Antwort auf ein "angenommen"? mark? Was wären die Kriterien für die Annahme auch sein? Ein "link"? Wie macht das die Frage etwas konkreter? Jeder link auf jeder Dolmetscher? Scheint, wie die Wahl der "passenden" Antworten würde, dann zufällig. Keine gute Frage, wenn es keine offensichtliche Akzeptanz-Kriterien.
- Die kanonischen Fragen der compiler Methoden ist schreiben Lernen ein compiler, und die Technik-und Ressourcen-Liste es gelten auch für Dolmetscher, die so ziemlich alles abdeckt was.
- Betrachten Jason Wahre Antwort, welche einen link zu einem guten Buch, dass erklärt wie schreibt man einen interpreter. Es scheint genau das zu finden, was der Fragesteller suchte, und es ist nützlich, um anderen auf der Suche nach guten Informationsquellen zu dem Thema.
- McCarthy: "scheint genau das zu finden, was der Fragesteller suchte". Wirklich? Wie kann das sein erschließt sich aus der Frage? Welchen Teil der Frage zielt auf eine bestimmte Antwort als akzeptabel? Warum nicht ftp.gnu.org/gnu/bash gleich gut? Ich sehe nicht, wie zu bewerten, die Antworten gegeben, die schwache Frage. Was waren die Kriterien, die Sie anwenden, zu empfehlen, dass die Antwort über die anderen?
- Ich ehrlich don ' T verstehen Ihren Standpunkt. Die Frage für Ideen und links für wie Sie schreiben, ein Dolmetscher. Einige der Antworten, dass es geschafft, zu schlüpfen, bevor dieser geschlossen wurde verwaltet, um gute Ideen und gute links. Was genau ist das problem? Ihr Beispiel zeigt auf bash wäre kein guter link, denn das ist nicht ein how-to, es ist ein Beispiel-der.
- McCarthy: "gute Ideen und gute verbindungen."? Ich verstehe nicht, wie Sie genannt werden kann, "gut". Ich verlange für die Kriterien, die Sie verwenden, um zu beurteilen, wie "gut". Ich verstehe nicht, wie Sie Ihr Urteil. Ich hab nur eine Frage: Wie -- gegeben, eine Frage, die dieses schlecht-hat nur ein paar Antworten als "gut"? Ich verstehe nicht, wie bash ist nicht ein Beispiel für einen Dolmetscher. Es scheint zu passen die Kriterien. Ich bin zu Fragen, welche Regel oder der Prozess oder die Funktion, die Sie verwenden. Ich bin neugierig, wie Menschen Urteile in Fällen wie diesem.
- Ich wollte nicht sagen, der bash war nicht ein Beispiel für einen Dolmetscher. Es ist. Ich sagte, dass es nicht ein "how-to" schreiben Dolmetscher. Was es nicht ist. Die Frage konkret gefragt, für wie-zu Informationen.
- McCarthy: Sie sagen Also", Wie Sie Schreiben..." bedeutet: "ich möchte eine Ressource, die mir zeigt, wie zu schreiben..." Interessant. Danke.
- Hey Jungs? Ich glaube nicht, dass es eine schlechte Sache zu reagieren, um eine "schlechte" Frage mit einer guten Antwort, die man vielleicht deckt viele Möglichkeiten. Die Abstimmung zu schließen, nur weil die Antwort ist nicht etwas, Sie können Google in 10 Sekunden scheint mir ein wenig schwach. Wenn Sie nicht können es selbst beantwortet, lassen Sie es an jemanden, der das kann! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meinst du, wie schreibt man eine Sprache, die interpretiert wird, in C?
Wenn dem so ist, findest du in der Wikipedia und anderen Quellen, die sich auf die folgenden Themen:
Es ist viel mehr Arbeit, als Sie vielleicht denken... viel Spaß beim Lesen!
Können Sie einen Blick auf das Buch "The UNIX programming environment"
(Quelle: bell-labs.com)
Am Ende des Buches, und so ziemlich das Letzte Kapitel, die Autoren schrieb einen kleinen interpreter, der in C mit genügend und detaillierte Informationen, Schritt für Schritt. Sehr interessant und sehr einfach zu Folgen.
Den source code, dass der interpreter ist hier
Warum Sie nicht an der C-Code für ein (einfaches) Script Sprache? Vielleicht Lua? (link
)
Vielleicht solltest du auch Lesen somesthing über parser-Generatoren, der erste Baustein, die das Programm interpretieren kann, eine Sprache. Der zweite block ist eigentlich, was wurde analysiert wird (manchmal kann man integrieren, dass in den parser, es können callback-Funktionen, die bei jedem token/jede Struktur analysiert wird). Einfache Beispiele, wie das Parsen und ausführen von mathematischen Formeln helfen könnte.
Es ist gut, wenn alte, Buch "Aufbau Sprache-Prozessoren für Kleine Sprachen" könnten Sie loslegen. Es ist sehr pragmatisch und erklärt die verschiedenen Optionen, die Sie haben, wenn Ihre Anforderungen komplexer geworden.
Darüber hinaus, Sie gehen, um im wesentlichen wollen die Forschung, ein Buch oder zwei auf-Compiler und-Interpreter. Wenn Sie möchten, einen Weg des geringeren Widerstandes, und Sie tun dies, Begriffe zu verstehen und nicht als etwas, müssen Sie für eine Klasse oder Projekten arbeiten, sich eine alternative zu C, wie Lisp oder Scheme, die machen es einfacher zu bauen, auf kleine Experimente. Oder erfahren Sie mehr über Bau von DSLs in Sprachen, die das zu erleichtern (Boo, Groovy).
Dies ist eine wirklich Allgemeine Frage und wird wahrscheinlich geschlossen werden, aber hey, ich kann auch diesen post beantworten: Lua ( http://www.lua.org ) ist eine sehr beliebte Skriptsprache in C geschrieben, die Sie verwenden können, die für inspiration.
Mein Rat wäre, zunächst mit einem Recursive-Descent-Parser.
Wenn Sie wie dieses Zeug, dann Sie sollten auf jeden Fall erhalten Sie eine Kopie des Dragonbook.
Können Sie check out ANTLR[link]