2006-10-01から1ヶ月間の記事一覧

事例:演算 \

VDM++ での演算 \ に準拠した事例(演算子 -)を紹介します。 s1 = VDM_Set(range(1,3)) s2 = VDM_Set(range(2,4)) print ">>> %s \ %s"%(s1,s2) X = s1 - s2 print X; assert X == VDM_Set([1])集合 s1 および s2 の差集合を得るには、演算子 - を利用しま…

差集合

VDM++ の set 型には、2つの集合の差集合を定義できます。数学の世界では、2つの集合 A および B の差集合を A−B で表現します。VDM++ では、次のように表現します。 {1, 2} \ {2, 3} = {1}一方の集合から他方の集合を除いた後の要素を列挙した、差集合は …

演算 \ を実現する

VDM++ での演算 \ に準拠するように、メソッド VDM_Set.__sub__ を実現します。class VDM_Set: def __sub__(s1,s2): """ s1 \ s2 ; set of A * set of A -> set of A ; ; Difference ; yields the set containing all the elements from s1 ; that are not i…

VDM++《5》Set に対する操作(3)

《Previous|5/20|Next》 Shall_we_Agile = Java.use(better, Python) # Swing by VDM++《記事一覧》 更新♪2008/09/26

事例:演算 union/inter

VDM++ での演算 union/inter に準拠した事例を紹介します。 s1 = VDM_Set(range(1,3)) s2 = VDM_Set(range(2,4)) print "s1: %s"%s1 print "s2: %s"%s2 print ">>> s1 union s2" print s1.union(s2)集合 s1 および s2 の和集合を得るには、メソッド union を…

演算の型を規定する

演算の型を規定するのに、次のような表現をします。 set of A * set of A -> set of AA は任意の型を表わします。すると、set of A は、A 型の要素を列挙した集合型を意味します。すると、 set of nat1は、自然数を表わす nat1 型の要素を列挙した集合型を意…

自己紹介する関数オブジェクト

単体テストには、次のようなコードの断片が含まれます。 print VDM_Set.union.__doc__これは、VDM の仕様を銘記したものです。関数オブジェクト VDM_Set.union の属性 __doc__ を参照すると、そこに記述されたドキュメントコメントが得られます。このコード…

演算 union および inter を実現する

VDM++ での演算 union/inter に準拠するように、メソッド VDM_Set.union/VDM_Set.inter を実現します。class VDM_Set: def union(s1,s2): """ s1 union s2 ; set of A * set of A -> set of A ; ; Union ; yields the union of the sets s1 and s2, i.e. the…

和集合と積集合

VDM++ の set 型には、2つの集合の和集合/積集合(共通集合)を定義できます。数学の世界では、2つの集合 A および B の和集合を A∪B で、積集合を A∩B で表現します。VDM++ では、次のように表現します。 {1, 2} union {2, 3} ==> {1, 2, 3}2つの集合の…

VDM++《4》Set に対する操作(2)

《Previous|4/20|Next》 Shall_we_Agile = Java.use(better, Python) # Swing by VDM++《記事一覧》 更新♪2008/09/20

演算 in を実現する

VDM++ での演算 in に準拠するように、メソッド VDM_Set.__contains__ を実現します。class VDM_Set: def __contains__(s1,e): """ e in set s1 ; A * set of A -> bool ; ; Membership ; tests if e is a member of the set s1 e not in set s1 ; A * set o…

事例:演算 in

VDM++ での演算 in に準拠した事例を紹介します。 s1 = VDM_Set(range(1,4)) e = 3 print ">>> %s in %s"%(e,s1) X = e in s1 print X; assert X is True e = 0 print ">>> %s in %s"%(e,s1) X = e in s1 print X; assert X is False任意の要素が「含まれる…

要素の帰属関係

VDM++ の set 型には、集合に対する要素の帰属関係を定義できます。数学の世界では、ある要素 e が集合 S に含まれるか否かを、e∈S および e∉S と表現します。これを VDM++ では、次のように表現します。 3 in {3,1,2} = true整数 3 は、集合の要素に含まれ…

集合を要素とする集合

VDM++ の set 型には、「集合を要素とする」集合を定義できます。これに準拠した事例を紹介します。 s1 = VDM_Set([1,2,3]) s2 = VDM_Set([4]) s3 = VDM_Set([]) s4 = VDM_Set([5,6]) print "s1:",s1 print "s2:",s2 print "s3:",s3 print "s4:",s4 ss = VDM…

関連記事

OCL 演算 includes/excludes

VDM++《3》Set に対する演算(1)

《Previous|3/20|Next》 Shall_we_Agile = Java.use(better, Python) # Swing by VDM++《記事一覧》 Set に対する演算 《著》河野めだか《監修》小泉ひよ子とタマゴ倶楽部第1版♪2004/01/29 ● 更新 ♪2008/09/18

Contents

★ 初級/入門 ★★ 初級/基礎 ★★★ 初級/応用 ★★★★ 中級 ★★★★ 上級Pilot 2006/10/02《1》事例:2006 FIFA ワールドカップ★ 伊藤うさぎ & 小泉ひよ子 Set 2006/10/03《2》Set 集合型★ 河野かえる 2006-10-04 VDM++《3》Set に対する演算(1) 関連記事 集合を要…

● Java.use(better, Python) # Swing by VDM++ 記事一覧

Shall_we_Agile = Java.use(better, Python) # Swing by VDM++ VDM++ 形式手法への誘い:Jython 篇 《監修》小泉ひよ子とタマゴ倶楽部改訂♪2008/09/26VDM++ に準拠するクラスを実現しながら、VDM++ を理解するとともに、Python/Jython によるプログラミング…