DSL
Wider Language Processing(幅広い言語処理) †
一言要約 †
言語処理をしているからと言ってDSLであるとは限らないが、そのテクニックは有用である。
要約 †
- ドメイン固有言語についての本だが、ここでは言語処理の技術について述べている
- 2つの例を上げて説明
- COBOLコピーブック*1で定義されているのが誰のデータかを、メッセージで別システムに送信する例
- COBOLコピーブック構文のパーサを作って解決した
- COBOLコピーブックのパーサを以前にも作ったことがあり、コードを読まずにパーサを作れた
- COBOLコピーブックをDSLと呼んでしまう拡大解釈だが、外部DSLを使うためのよくある基本テクニック
- ジョエル(Joel Spolsky)が書いたWasabiの例
- VBScriptで作られたバグトラッキング製品FogBugz?を、UNIX対応する為にPHPで動かす必要が出たが、アプリを書き直したくはなかった
- Wasabiという独自言語を作り、VBScriptとPHPへのコードジェネレータを用意した
- かなりの人はこれをDSLと思っているが、WasabiはVBScript用のパーサ(?)で書かれているのでDSLでなく汎用言語
ファウラーへのフィードバック †
担当者のつぶやき †
- VBScript用のパーサで書かれているってのが良く分からんですが、WasabiはVBScriptの拡張??「WasabiはVBScriptと100%後方互換性がある」ってあるからそういう事なのかな?
- 独自言語と言いつつ、基本はVBScriptだからDSLではなく汎用言語ということか。
- ジョエル本読んでないorz
- 全訳難しい。。
みんなの突っ込み †