はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part IV
はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I
前回に書き忘れました、コマンドラインを用いた処理について書きたいと思います。まず、新しく作成された MGrammar は、mg.exe にてコンパイルし、イメージを作成する必要があります。
mg MusicLibraryLanguage.mg
このようなに実行すると、MusicLibraryLanguage.mgx ファイルが出力されます。
さて、次が DSL を解釈し、M を出力するところになりますが、先ほどコンパイルした結果を用います。
mgx MoreMusic.Music /r:MusucLibraryLanguage.mgx /m:Microsoft.Samples
/r にて指定するわけですね。また、/m でモジュール名を指定することができます。実施した結果、
"M" by "浜崎あゆみ" is awesome.
"WCF と WF と私" by "M崎 剛" is great!
"Come Again" by "m-flo" is so so.
から、
module Microsoft.Samples {
MusicLibrary {
{
Album = "M",
Artist = "浜崎あゆみ",
Rating = 3
},
{
Album = "WCF と WF と私",
Artist = "M崎 剛",
Rating = 3
},
{
Album = "Come Again",
Artist = "m-flo",
Rating = 2
}
}
}
が生成されました。
さてさて、ここまで Part I から IV までで解説をしてまいりましたが、大切なことを説明しておりませんでした(^^;
それは、マルチバイト文字の扱いについてです。”Oslo” (というか ”M”)では、ユニコードを扱うことが可能です。逆にいえば、Shift JIS などはだめです。ですから、各ファイルは、ユニコードにて保存してください(Intellipad で作成したファイルは自動的にユニコードで保存されます)。
そして、もうひとつ!
“M” 言語は、”M” 言語でできてます(^^)
MGrammar で構文を定義してるんですね。そこでもうひとつ解説していないところですが、”M” で記載した文字列において、予約語っぽいところが太字で表示されましたよね?
module Microsoft.Samples {
などです。これも MGrammar にて指定できます。
token の前の行にて、@{Classification[“Keyword”]} と書けばいいのです。
@{Classification["Keyword"]}
token Rating3 = "awesome" | "great";
といった感じです。
”Oslo” の構想において欠くことができない ”M” ですが、その敷居の低さと、可能性を少しでも感じていただけたでしょうか?今回解説したのは、ほんのさわりでしかありません。今までのモデル、モデリングで困難であった点、課題であった点を克服する ”Oslo” の可能性にぜひ、今後も注目いただければと思います。
ながさわ
Comments
Anonymous
February 04, 2009
Tech Days ではありがとうございました。小島です。 記事も大変助かっております。色々と試してみることができました。Anonymous
February 04, 2009
小島さん、 コメントありがとうございます(^-^) Tech Days ではありがとうございました。お話しできてよかったです。 ブログ記事では、書き殴りでしたが、Tech Fielders のコラムでは、もう少しきっちりと、書こうと思っています。Anonymous
February 09, 2009
必要な環境: Visual Studio 2008 SP1 “Oslo” SDK January 2009 CTP (SQL Server 2008) “Oslo” SDK をインストールする際のオプションに、Visual