Angenommen, ich wollte jemanden dafür bezahlen, eine Programmiersprache oder Skriptsprache für mich zu erstellen. Welche Art von Dokument würden sie brauchen, um vollständig zu verstehen, was genau ich will.
Ich meine, gibt es Standarddokumente, die die betreffende neue Programmiersprache beschreiben?
Antworten:
Was Sie schreiben müssen, wird als Sprachspezifikation bezeichnet .
Es sollte eine Beschreibung der Grammatik der Sprache (vorzugsweise in Extended Backus-Naur-Form ) und ihrer Semantik enthalten.
Für den letzten Teil könnten Sie entweder eine Beschreibung in Ihren eigenen Worten (aber seien Sie vorsichtig, um genau zu sein) oder eine formale Semantik schreiben .
quelle
Sie benötigen Folgendes:
Wie wird deine Sprache anders sein? Was ist ihre Mission? Ist es funktionsfähig? Ist es objektorientiert? Ist es eine Metasprache? Was sind seine einzigartigen Eigenschaften? Was wird es der Welt geben, die nicht existiert (oder auf hässliche Weise existiert)? Wie willst du etwas verändern? Wird es kompiliert oder interpretiert? Eine DSL- oder Allzwecksprache? Dies ist Ihre Philosophie und bestimmt viel über das Design Ihrer Sprache.
Als nächstes arbeiten Sie daran, grobe Syntax und Semantik auf Papier zu schreiben. Dies wird Ihre semantische Definition sein . Das Schreiben von gefälschtem Code ist eine großartige Möglichkeit, Ihre Gedanken zu entwickeln. Lesen Sie "Die Programmiersprache C", um ein hervorragendes Beispiel dafür zu erhalten. Spiel damit.
Sie müssen dann Ihre Token und die Syntax auf irgendeine Weise definieren. Programme verarbeiten diese dann zu Automaten, die Zeichenfolgen einlesen und die Syntax verarbeiten können. Yacc und Bison verwenden reguläre Ausdrücke und eine BNF-Syntax für die lexikalische Analyse bzw. die Syntaxanalyse. Es gibt auch Yacc- und Bison-ähnliche Tools für andere Sprachen.
Sie benötigen auch eine Grundausbildung in Sprachtheorie / Compilern, um zu wissen, was NICHT zu tun ist. Beispiele hierfür sind mehrdeutige Grammatiken, Probleme bei der AST-Generierung und -Manipulation sowie allgemeine Hinweise zur Vereinfachung des Lebens. Die Theorie zu kennen ist sehr wichtig. Ich würde Folgendes in Betracht ziehen, um anzufangen:
Compiler: Prinzipien, Techniken und Werkzeuge (Dragon Book)
Moderne Compiler-Implementierung in C oder Moderne Compiler-Implementierung in Java
quelle
In 99,9% der Fälle ist das Erstellen einer neuen Sprache nicht erforderlich. Der Return on Investment wäre höchstwahrscheinlich winzig und Sie hätten nur Ihre Zeit verschwendet.
Höchstwahrscheinlich können Sie Javascript als anfällige Skriptsprache verwenden, und für die meisten Sprachen sind bereits Parser verfügbar. Sie können auch andere Skriptsprachen verwenden, die Ihnen gefallen, wenn Sie einen geeigneten Parser für diese finden. Die Implementierung in Ihr Programm würde viel weniger Arbeit erfordern und eine größere Rendite bringen. Die Leute müssen keine andere Sprache lernen, sie müssen nur Ihre API lernen. Es ist eine viel bessere Lösung.
Das Erstellen einer neuen Sprache ist fast immer schlecht.
quelle
Sie können die Grammatik Ihrer Sprache in BNF beschreiben .
Dies ist beispielsweise Pythons Grammatik .
quelle
Wenn Sie .NET verwenden, ist hier etwas, über das ich vor einiger Zeit gestolpert bin. Ich habe es nur mit einem merkwürdigen Blick betrachtet, aber vielleicht würde es Ihnen etwas nützen: Ironie .
quelle