SQL埋め込み

プログラミング言語内でSQLを取り扱う際に、文字列として取り扱うのは何かとアレなので、SQL埋め込みとして扱うということについて考えてみた。いや、SQLに関わらず、埋め込みとして処理する一般的なこととして考えたのだが、一番卑近な例としてSQLを考えたということだ。
で、LINQのように、SQLを言語側に取り込んでしまうと、DBの拡張機能や進化へのアクセスに問題が起こる可能性がある(SQLはもう収束傾向なのかも知れないが)。じゃあ、どうしようか?
コンパイラプラグインするという考え方はどうだろう?キーワードなどを決めておいて、それあてはまる場合は、コンパイラ自身ではなく、プラグイン構文解析を委譲する。その際、コンパイラが知っている文脈や型などの情報はプラグインから利用できる。こうすれば、言語仕様やコンパイラに手を入れずに、埋め込み処理の機能を拡張したり変更したりできる。