Frage

Ich habe noch nie einen DSL geschrieben, aber ich bin am überlegen es als ein Merkmal für ein neues Projekt (hypothetischen). Es wäre für den Endverbraucher der Lage sein, in natürlicher Sprache Konzepten auszudrücken wie Wochentag zwischen 10 und 11, außer am ersten Montag des Monats .

Dutch Benutzer möglicherweise schreiben weekdagen tussen 10 en 11 behalve op de eerste maandag van de maand . In diesem Fall scheint die Position der Worte übereinstimmen, aber es kann Ausdrücke sein, wo die Position von Verben / Substantive usw. unterschiedlich zwischen den Sprachen sein könnten.

Ich weiß, die offensichtliche Antwort ( es hängt ). Ich bin ein .NET-Entwickler und ich halte Boo verwenden, aber ich bin offen für Vorschläge. Ich muss verstehen, ob jede Übersetzung erfordert einen Teil der Umsetzung Umschreiben (welcher Teil) oder wenn es einen Weg gibt eigentlichen Übersetzungen zu tun, vielleicht in einer Art Prä-Prozessor.

War es hilfreich?

Lösung

Ihr geht nicht einen Übersetzer zu finden, die für mehr dies zu tun, als ein paar Sprachen kann (etwa zwischen ein oder zwei Sprachen und Englisch), insbesondere Englisch bedenkt, welche sich mindestens 3 Möglichkeiten haben könnte, es zu schreiben.

Wenn Sie einen DSL schreiben möchten, müssen Sie zunächst mit den Produktionsregeln kommen (was können Sie schreiben) und dann arbeiten in einer Weise, es in Englisch / Niederländisch / mars auszudrücken /usw.

Zum Beispiel: Zeitplan: = Rahmen Inclusion [Ausnahme]

, welche wäre:

  • Rahmen: Monat, Jahr, Woche, Wochentage, Wochenenden, Tage des Monats, Feiertage, usw.
  • Aufnahme: Zwischen, Nicht in, um mit einem Gehalt usw.
  • Ausnahme: Mit Ausnahme [Schedule], aber nicht [Schedule], es sei denn [Schedule]

Sie können Sorgen dann über einen Lexer / Parser, die eine bestimmte Grammatik korrigiert und legt es in dieser Form von Produktionen.

Dies sind aus der Spitze von meinem Kopf und nicht einmal in der Nähe, aber sollte genug sein, um loszulegen.

Andere Tipps

Ein DSL erstellt mit der Domain-Specific Language Tool Dose lokalisiert werden. Sie stellen alle Strings in RESX-Dateien.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top