SlideShare a Scribd company logo
1 of 51
形式手法でバグの少ない
モデリングができたらいいな

   2012/4/19 by TANAKA Daisuke
形式手法って?
• 計算機科学における数学を基盤としたソフト

ウェアおよびハードウェアシステムの仕様記
述、開発、検証の技術である。




  http://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E6%89%8B%E6%B3%95
仕様記述?
identifier
      ::= "a..z,$,_" { "a..z,$,_,
0..9,unicode character over 00C0" }

 class_name
      ::=
      identifier
      | ( package_name "." identifier )


• バッカス・ナウア記法でJavaのクラス名の仕

 様を記述
検証?
モデル検査、自動定理証明…
モデル検査

• モデル検査(Model              Checking)とは、形式システムをア
ルゴリズム的に検証する手法である。ハードウェアや
ソフトウェアの設計から導出されたモデルが形式仕様
を満足するかどうか検証する。




 http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB%E6%A4%9C%E6%9F%BB
自動定理証明

 • コンピュータプログラムによって数学的定理に対する

   証明を発見すること。
   →プログラムの正しさを保証したり、安全なプログラ
   ムを書くことができる。




http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95%E5%AE%9A%E7%90%86%E8%A8%BC%E6%98%8E
…( ゚Д゚)ポカーン
(ー_ー)...ZZZZZZ乙乙
まずはalloyで始めてみよう
alloyで何ができるの?
• ソフトウェア設計の仕様記述言語


• 統合アプリケーション


• 検証はもちろん、視覚化がすごい
数独
(充足可能性問題(SAT)
    NP困難)
数独
1つのブロックに1∼9
1つの行に1∼9
1つの列に1∼9
数独のルール=仕様
 を記述する
Numberの定義
                         集合論でいう直和

abstract sig Number { data: Number -> Number }
abstract sig Region1, Region2, Region3 extends
 Number {}

one sig N1, N2, N3 extends Region1 {}
one sig N4, N5, N6 extends Region2 {}
one sig N7, N8, N9 extends Region3 {}
3×3のブロック
      の定義                集合論でいう継承

abstract sig Number { data: Number -> Number }
abstract sig Region1, Region2, Region3 extends
 Number {}

one sig N1, N2, N3 extends Region1 {}
one sig N4, N5, N6 extends Region2 {}
one sig N7, N8, N9 extends Region3 {}
(R1,R1),(R1,R2),(R1,R3)
    実体の定義              (R2,R1),(R2,R2),(R2,R3)
                       (R3,R1),(R3,R2),(R3,R3)
abstract sig Number { data: Number -> Number }
abstract sig Region1, Region2, Region3 extends
 Number {}

one sig N1, N2, N3 extends Region1 {}
one sig N4, N5, N6 extends Region2 {}
one sig N7, N8, N9 extends Region3 {}


       Nは数字であり座標である
pred complete(rows: set Number,
cols: set Number) {
! Number in cols.(rows.data)
}

          指定された行or列に
        N1∼N9が1つずつ存在
pred rules() {
! all x, y: Number { lone y.(x.data) }     N1∼N9は1つずつ、か
                                          つN1∼N9のマップを保
                                                    持している
!   all row: Number { complete[row , Number]    }
!   all col: Number { complete[Number, col] }


!
!
    complete[Region1,
    complete[Region1,
                        Region1]
                        Region2]
                                   行・列に1∼9まで存在
!   complete[Region1,   Region3]
!   complete[Region2,   Region1]
!   complete[Region2,   Region2]
!
!
    complete[Region2,
    complete[Region3,
                        Region3]
                        Region1]
                                   9個のブロックはそれ
!   complete[Region3,   Region2]
!   complete[Region3,   Region3]   ぞれ1∼9が1つずつ存在
}
DEMO
┐(´-`)┌で?
参照カウント式GC


      from きしだのはてな

http://d.hatena.ne.jp/nowokay/20120106#1325874065
「参照されているかどうか」
でGCする仕様は問題ないか?
abstract sig メモリ{
                    参照しているメモリ(ルート)
    参照: set 割り当て    参照されているメモリ(割り当
}                       て)の定義

one sig ルート extends メモリ{
}

sig 割り当て extends メモリ{
}
fact{
  all a:割り当て | some m:メモリ |
    not a in a.参照 and
    a in m.参照
}

                 自己参照はなし
DEMO
視覚化するとこんな感じ
assert ルートからたどれる{
    no a:割り当て |
     not a in ルート.^参照
}

check ルートからたどれる

          全ての割り当てメモリがルー
           トからたどれるかチェック
DEMO
視覚化するとこんな感じ
「参照されているかどうか」で
はGCできないメモリがあった
おさらい
仕様を記述した
初期値を入力し、
仕様を満たすか確認した
さらに仕様を満たす OR 満た
さない組み合わせを調べた
(参考)中身が気になる人向け
• 実世界の問題(だいたいは論理命題に変換する)を扱う

 場合、考えられる全ての状態を確認するモデル検査
 は、得てして状態組み合わせ爆発を起こすことが多い

• しかし記号的アルゴリズムを使用して、暗黙的にグラ

 フ化し解くことが可能

• alloyには強力なSAT   Solverが実装されている
形式手法って
使われているの?
Coq


• 自動定理証明のための言語


• 関数指向言語のような、副作用のない言語と仲がよい


• 某SIerで研究・検討されている
CSP


• 仕様記述言語


• NASAなどでも研究されている。実際に“普通のソフト

ウェアテスト”では見つからないバグを発見している
まとめ
仕様を記述する
UTをやる前に、その仕様が正
  しいかを検証する
でも集合理論、論理命題、圏
論のような抽象的指向は難し
     そう
alloy、無料です


  http://alloy.mit.edu/alloy/
以上、ご清聴
ありがとうございました

More Related Content

What's hot

Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Yuto Takei
 
Rxに入門しようとしている
Rxに入門しようとしているRxに入門しようとしている
Rxに入門しようとしているonotchi_
 
MlnagoyaRx02
MlnagoyaRx02MlnagoyaRx02
MlnagoyaRx02mega80b
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarrayRyosuke839
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
SEH on mingw32
SEH on mingw32SEH on mingw32
SEH on mingw32kikairoya
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccYujiSoftware
 
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...Masahiro Sakai
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsYoshifumi Kawai
 

What's hot (20)

Effective modern-c++#9
Effective modern-c++#9Effective modern-c++#9
Effective modern-c++#9
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
emc++ chapter32
emc++ chapter32emc++ chapter32
emc++ chapter32
 
Rxに入門しようとしている
Rxに入門しようとしているRxに入門しようとしている
Rxに入門しようとしている
 
Stack pivot
Stack pivotStack pivot
Stack pivot
 
Lockfree Queue
Lockfree QueueLockfree Queue
Lockfree Queue
 
集約署名
集約署名集約署名
集約署名
 
emcjp Item 42
emcjp Item 42emcjp Item 42
emcjp Item 42
 
MlnagoyaRx02
MlnagoyaRx02MlnagoyaRx02
MlnagoyaRx02
 
Altanative macro
Altanative macroAltanative macro
Altanative macro
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
SEH on mingw32
SEH on mingw32SEH on mingw32
SEH on mingw32
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
 
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
 
Clojure
ClojureClojure
Clojure
 

Viewers also liked

形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfestay_taka_23
 
サンプルで学ぶAlloy
サンプルで学ぶAlloyサンプルで学ぶAlloy
サンプルで学ぶAlloyNSaitoNmiri
 
Alloy ではじめる簡単モデル検査
Alloy ではじめる簡単モデル検査Alloy ではじめる簡単モデル検査
Alloy ではじめる簡単モデル検査y_taka_23
 
形式手法で捗る!インフラ構成の設計と検証
形式手法で捗る!インフラ構成の設計と検証形式手法で捗る!インフラ構成の設計と検証
形式手法で捗る!インフラ構成の設計と検証y_taka_23
 
CSPによるコンカレントシステムの検証(1)
CSPによるコンカレントシステムの検証(1)CSPによるコンカレントシステムの検証(1)
CSPによるコンカレントシステムの検証(1)Yamagata Yoriyuki
 
Alloyで川渡問題を解く
Alloyで川渡問題を解くAlloyで川渡問題を解く
Alloyで川渡問題を解くichigo_o_re
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Hiroki Mizuno
 
Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記Kazuro Fukuhara
 
Alloyでパズル
AlloyでパズルAlloyでパズル
AlloyでパズルReanisz
 
Tiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいTiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいMori Shingo
 
XP祭り2016 - SWチームとHWチームがスクラムを組んだら
XP祭り2016 - SWチームとHWチームがスクラムを組んだらXP祭り2016 - SWチームとHWチームがスクラムを組んだら
XP祭り2016 - SWチームとHWチームがスクラムを組んだらLife Robotics
 
Alloyによるハミルトン閉路
Alloyによるハミルトン閉路Alloyによるハミルトン閉路
Alloyによるハミルトン閉路Takamasa Saichi
 
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)啓 小笠原
 
Global Innovation Nights - Spark
Global Innovation Nights - SparkGlobal Innovation Nights - Spark
Global Innovation Nights - SparkWorks Applications
 
まだまだ踏み足りないAlloy地雷原始末記
まだまだ踏み足りないAlloy地雷原始末記まだまだ踏み足りないAlloy地雷原始末記
まだまだ踏み足りないAlloy地雷原始末記Kazuro Fukuhara
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用Ruo Ando
 
恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例Life Robotics
 
SensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoTSensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoTDaisuke Tanaka
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as codeWorks Applications
 

Viewers also liked (20)

形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
 
サンプルで学ぶAlloy
サンプルで学ぶAlloyサンプルで学ぶAlloy
サンプルで学ぶAlloy
 
Alloy ではじめる簡単モデル検査
Alloy ではじめる簡単モデル検査Alloy ではじめる簡単モデル検査
Alloy ではじめる簡単モデル検査
 
形式手法で捗る!インフラ構成の設計と検証
形式手法で捗る!インフラ構成の設計と検証形式手法で捗る!インフラ構成の設計と検証
形式手法で捗る!インフラ構成の設計と検証
 
CSPによるコンカレントシステムの検証(1)
CSPによるコンカレントシステムの検証(1)CSPによるコンカレントシステムの検証(1)
CSPによるコンカレントシステムの検証(1)
 
Alloyで川渡問題を解く
Alloyで川渡問題を解くAlloyで川渡問題を解く
Alloyで川渡問題を解く
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力
 
Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記
 
Alloyでパズル
AlloyでパズルAlloyでパズル
Alloyでパズル
 
Tiなごや vol.3 Alloyやろまい
Tiなごや vol.3 AlloyやろまいTiなごや vol.3 Alloyやろまい
Tiなごや vol.3 Alloyやろまい
 
XP祭り2016 - SWチームとHWチームがスクラムを組んだら
XP祭り2016 - SWチームとHWチームがスクラムを組んだらXP祭り2016 - SWチームとHWチームがスクラムを組んだら
XP祭り2016 - SWチームとHWチームがスクラムを組んだら
 
Alloyによるハミルトン閉路
Alloyによるハミルトン閉路Alloyによるハミルトン閉路
Alloyによるハミルトン閉路
 
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)
状態遷移機械を構成するための新しいイベントコンビネーターの提案(PPL2014 カテ3ポスター)
 
Global Innovation Nights - Spark
Global Innovation Nights - SparkGlobal Innovation Nights - Spark
Global Innovation Nights - Spark
 
まだまだ踏み足りないAlloy地雷原始末記
まだまだ踏み足りないAlloy地雷原始末記まだまだ踏み足りないAlloy地雷原始末記
まだまだ踏み足りないAlloy地雷原始末記
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用
 
恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例
 
Alloyへの挑戦
Alloyへの挑戦Alloyへの挑戦
Alloyへの挑戦
 
SensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoTSensorBee: Stream Processing Engine in IoT
SensorBee: Stream Processing Engine in IoT
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as code
 

Similar to 形式手法とalloyの紹介

第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
Intoroduction of Pandas with Python
Intoroduction of Pandas with PythonIntoroduction of Pandas with Python
Intoroduction of Pandas with PythonAtsushi Hayakawa
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析Preferred Networks
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20Yasuo Tabei
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門Yuichiro Kobayashi
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルAkinori Abe
 
2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門Yuya Matsumura
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門AimingStudy
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Takeshi Arabiki
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編) daiki hojo
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeMasahiro Tanaka
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)yutannihilation
 

Similar to 形式手法とalloyの紹介 (20)

第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
Tokyo r27
Tokyo r27Tokyo r27
Tokyo r27
 
R language definition3.1_3.2
R language definition3.1_3.2R language definition3.1_3.2
R language definition3.1_3.2
 
Intoroduction of Pandas with Python
Intoroduction of Pandas with PythonIntoroduction of Pandas with Python
Intoroduction of Pandas with Python
 
R_note_01_ver1.1
R_note_01_ver1.1 R_note_01_ver1.1
R_note_01_ver1.1
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 
2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門2016年6月版データマエショリスト入門
2016年6月版データマエショリスト入門
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
 
R note 01_ver1.2
R note 01_ver1.2R note 01_ver1.2
R note 01_ver1.2
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)ggplot2再入門(2015年バージョン)
ggplot2再入門(2015年バージョン)
 

形式手法とalloyの紹介

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n