2

私はDSLを書いたことがありませんが、それを新しいプロジェクトの機能として考えています(架空)。エンドユーザーは、月の最初の月曜日を除いて、平日10〜11などの自然言語の概念で表現できるようになります。

オランダのユーザーは、op de eerste maandag vandemaandに代わってweekdagentussen10en11と書くかもしれません。この場合、単語の位置は一致しているように見えますが、言語によって動詞や名詞などの位置が異なる表現がある場合があります。

私は明白な答えを理解します(それは異なります)。私は.NET開発者であり、Booの使用を検討していますが、提案を受け付けています。各変換で実装の一部(どの部分)を書き直す必要があるのか​​、または実際の変換を行う方法がある場合は、おそらく何らかのプリプロセッサで行う必要があるのか​​を理解する必要があります。

4

2 に答える 2

2

いくつかの言語(たとえば、1つまたは2つの言語と英語の間)でこれを実行できる翻訳者を見つけるつもりはありません。特に、英語自体に少なくとも3つの書き方がある可能性があることを考慮してください。

DSLを作成する場合は、最初に制作ルール(何を作成できるか)を考え出し、次にそれを英語/オランダ語/マーティアンなどで表現する方法に組み込む必要があります。

例:Schedule:= FrameInclusion[例外]

これは次のようになります。

  • フレーム:月、年、週、平日、週末、曜日、休日など
  • 包含:間、ない、周り、含むなど
  • 例外:[Schedule]を除くが、[Schedule]を除き、[Schedule]を除く

次に、特定の文法を修正し、それをその形式のプロダクションに配置するレクサー/パーサーについて心配することができます。

これらは私の頭のてっぺんから外れていて、近くにさえありませんが、始めるには十分なはずです。

于 2010-03-16T19:55:36.537 に答える
1

ドメイン固有言語ツールで作成されたDSLはローカライズできます。すべての文字列を.resxファイルに配置します。

于 2010-03-16T19:59:13.120 に答える