ページ

2004年11月17日水曜日

Spec#

Spec# for Visual Studio .NET 2003 より。


Spec# っていうのは C# のスーパーセットで、



  • non-null type (参照型だけど null にできない。Hoge! hoge; のように宣言)

  • exception のチェック

  • メソッドの contract (Eiffel の表明みたいなやつ)

  • オブジェクトの invariant (不変性?具体的にどういう機能なのかよくわからない)

を追加したものとのことです。
# Spec# 自体は、すでに 名無しさん#さんのところ で既出です。


これは、まだペーパーだけなのかな?Microsoft Research の Download を見てもそれらしいのはないですし。
けど blog のタイトルが "for Visual Studio .NET 2003" とやけに具体的ですし、記事の中にも 「Visual Studio と統合された Spec# コンパイラ」 とか 「test generation と model-based testing のための SpecExplorer tool へのインターフェース」 とかって書かれています。Cω みたいにそのうち preview リリースとかがでるのかもしれませんね。
あと、この SpecExplorer というのもちょっと気になります。ググってみると、どうやら model-based testing のツールらしいんですが。。。


それと、いちおう書いておきますが、この Spec# は Cω (シーオメガ) と同じように Microsoft Research (Microsoft の研究機関) で研究中のものです。この先 Spec# や Cω がどうなるのかはなんともいえません。個別の言語としてリリースされる可能性もあるでしょうし、Spec# や Cω の機能の一部が将来の C# に取り込まれるという形になるかもしれません。ひょっとすると F# のように MS Research で育って、(Visual Studio とは関係なく) いつのまにか version 1.0 がリリースされたりするかもしれません。Spec# や Cω はそういった代物です。

1 件のコメント:

  1. ttp://research.microsoft.com/projects/T5/ppt/SpecSharpShort.ppt


    このプレゼンにVS2003で動いてる画面が出てますよ。

    意外とサクっとプレビュー版が出てくるかもしれませんね。

    返信削除