[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 17:08 / Filesize : 172 KB / Number-of Response : 681
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型言語Part IV



1 名前:デフォルトの名無しさん [04/05/04 14:53]
Lisp Scheme ML Haskell FP Mirranda など
関数型言語について話し合いましょう


関連スレ

関数型プログラミング言語ML
pc3.2ch.net/test/read.cgi/tech/1012445015/

関数型プログラミング言語Haskell
pc3.2ch.net/test/read.cgi/tech/1013846140/

LISP Scheme Part6
pc3.2ch.net/test/read.cgi/tech/1031560687/

Emacs Lisp
pc3.2ch.net/test/read.cgi/tech/1004551074/



10 名前:デフォルトの名無しさん [04/05/04 15:15]
【公理的意味論】kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/axiomaticsemantics.html

公理的意味論では意味をプログラムのセオリーとして記述する。
そしてセオリー の証明という作業を通じて、意味の正しさを確かめる。
セオリーは以下の3 つの要素から構成される

  ・構文規則
  ・公理
  ・推論規則

そして、プログラムαを次のような形式で表現する

              {事前条件}α{事後条件}

これをpre-post式と呼ぶ。公理と推論規則はこのpre-post式を利用する。
この式は、事前条件が成り立っている(真である)という条件下でαを実行すると 事後条件が成り立つ、
と言う事を表現している。そして公理的意味論はこの 式を証明する(真偽を判定する)手段を提供している。
具体的にはαが文の列とするし、それをα1、α2、....、αnとすると、次のような式の列を順次証明する事になる

              {事前条件1}α1{事後条件1}
              {事前条件2}α1{事後条件2}
              ......
              {事前条件n}αn{事後条件n}

ここで事後条件iは事前条件i+1と同じものである。
公理としては、プログラミン グ言語の各基本要素に対して、pre-post式を与える事になる。

---------------------------------------------------------------------------------------------

11 名前:デフォルトの名無しさん [04/05/04 15:17]
では例題のプログラミング言語の定義を考える。公理的意味論の場合も個々の命 令に対してpre-post式を定義する事になる

 {P(register,file)} Double_to_even {even(register) ∧ P(register/2 ,file)}

 {P(register,file)} Double_to_odd {odd(register) ∧ P((register-1)/2 ,file)}

 {P(register,file)} Halve {P(2*register ,file) ∨ P(2*register+1, file)}

registerは入力として与えられた変数であり、fileは実行環境における局所的な 値の集合である。またpre、postの条件におけるregisterとfileは各々 Double_to_evenの実行前と実行後の値を意味する。

--------------------------------------------------------------------------------

公理的手法はこの様に意味を定義するためのものとしてだけではなく、
プログラ ムの証明のための手段としても使われている。
すなわちプログラム全体を以下の様にpre-post式で表し、
プログラムが満たすべき条件を事後条件として、
この式を分割し、各式を証明する事により、
プログラムが正しいと言う事が 証明できた事になる、という物である

               {事前条件}プログラム{事後条件}

例えばa,b,cを入力として、それを係数とする二次方程式の解をx,yに求めるプログラムをPとすると、
その証明のための式は次の様に書ける

     {a,b,cは任意の実数、但しb*b-4.0*a*c>0}P{a*x*x+b*x*c=0 AND a*y*y+b*y+c=0}







[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<172KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef