Compartilhar via


はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part IV

はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part I

はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part II

はじめての “Oslo” – Tech Days 2009 でのサンプルと解説 - Part III

前回に書き忘れました、コマンドラインを用いた処理について書きたいと思います。まず、新しく作成された 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