- ドメイン固有のクエリ言語を作成したい
- それを作成する手順と、作成したドメイン固有のクエリ言語から通常の SQL クエリに移行して実行する方法が必要です。
- 推奨ツールはありますか??
1 に答える
DSL は SQL とはあまり関係がありません。
まず、DSL を紙に指定する必要があります。それをしながら、プログラミング言語に関する良い本を読むことを強くお勧めします。(例えば、C.Queinnec によるLisp in Small Pieces )。
次に、DSL をインタープリターとして実装する必要があります。標準の lexing、解析、およびインタープリター(または場合によってはコンパイラー) 手法を使用します。おそらく、ガベージ コレクターを使用または実装する(またはBoehm の GCを使用する) 必要があります。ANTLRのようなパーサー ジェネレーターが役に立ちます。
DSL の共同設計と実装を並行して行うことは、通常は良い方法です。
独自の DSL を設計および実装する前に、複数の言語に関する書籍や論文を読む必要があります。
これを行う実際的な方法は、Luaなどの既存のインタープリターをアプリケーションに埋め込むか、アプリケーションをocamlやpythonなどのインタープリター内に埋め込むことです。
優れた DSL の設計と実装は簡単ではなく (数か月または数年の作業)、コンピューター サイエンスとプログラミング文化とノウハウが必要です。おそらく、DSL2011のような会議の議事録を読むことが役立つでしょう。
C.Queinnec の本に加えて、Programming Languages: Principles and Paradigms (by Maurizio Gabbrielli & Simone Martini) & Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Tate による) & Programmming Language Pragmatics (による) も読むことができます。 M.スコット)