タグ

ブックマーク / kyasmt.hatenablog.com (3)

  • Bメソッドの抽象機械の証明責務 - コンピュータってすごいらしい

    授業でBメソッドに入門してきた。 参考文献:「先端スキル開発特別講義?:形式手法を使ったデータ指向モデリングと検証」の資料 http://honiden-lab.ex.nii.ac.jp/u-tokyo/lecture2009/ BメソッドのツールであるAtelier Bのマニュアル http://www.atelierb.eu/index-en.php Bメソッド概要 わかったこと。 Bメソッドは、形式的に証明できる形で仕様を記述し、検証する形式手法の一種である。 Bメソッドは、操作というインターフェースをもつ抽象機械としてシステムを記述する。 抽象機械は、変数をもち、操作の際の代入(substitution)によってその状態を変える。代入は非決定的でもよい。 各操作には、操作を行うための条件(事前条件)がある。 不変条件(invariant, 抽象機械が常に満たすべき命題)は、集合によ

    Bメソッドの抽象機械の証明責務 - コンピュータってすごいらしい
    yojik
    yojik 2012/10/05
  • 2010-01-07

    (1/8改良版を末尾に追加) 問題 foreachループでインデックスが使いたい。(今何番目?) かといって下のようにローカル変数iを使うとiがループの後で見えてしまうのが嫌。 参考:foreachでインデックスが使いたい場合はそれなりにある http://blog.livedoor.jp/thinkmeta/archives/51306169.html //前略 List<Integer> list = new ArrayList<Integer>(); //中略 int i = 0; for (Integer integer : list) { //integerでなんかする i++; } //以下iが見える 続きを読む (1/8微妙に追記) メソッドのthrowsに同じ例外を複数書いていいと知った。 これでもかとExceptionを投げると宣言することができる。 これで共同開発者に例

    2010-01-07
    yojik
    yojik 2010/01/07
    こういうの、いろいろ考えた挙句、根負けしてtoArray(T[])してしまうことが多いです。配列っぽいことしたい場合は配列がやっぱ楽なんだよな。。
  • 君は必ずmainのところに戻ってくる - コンピュータってすごいらしい

    (8/5更新) 実験4を追加。 概要 Scalaでは、遅延評価が許されているので returnがメソッドの実行ではない場所で評価されることがある。 これで遊んでみる。 実験1: foreachの中でreturn まずは簡単な使い道。foreachに渡すブロックの中でreturnする。 package returntest object ReturnInFor { def main(args : Array[String]) : Unit = { for(i <- List(1,2,3,4)){ println(i + "th block call") val st = new Throwable().getStackTrace() println(st(0)) return } } } 実行結果 1th block call returntest.ReturnInFor$$anonfun$

    君は必ずmainのところに戻ってくる - コンピュータってすごいらしい
    yojik
    yojik 2009/08/05
  • 1