- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
表现系工学讲义メモ
知能ソフトウェア特論(第Ⅰ部)講義メモ
項書換え系(1)
代数的仕様と項書換え
等式(たとえば,)を左辺から右辺へ(または右辺から左辺へ)向き付けたもの(たとえば,)を書換え規則という.書換え規則を用いて,のように,式(項)の書換えを行うことができる.書換え規則の集合を項書換え系という.
ソフトウェアの世界では,等式の集合が「仕様」,項書換え系が「プログラム」,書換えの実行が「計算」に対応する.
1.項書換え系の構文論
変数 variable
定数 constant
関数記号 function symbol (それぞれ,アリティ arity:引数の個数 が定まっている)
項 term 1 変数および定数は項である.
2 がアリティnの関数記号,が項ならば,は項である.
書換え規則 rewrite rule 2つの項(左辺,右辺)の順序対のこと.
左辺のインスタンス instance をそれに対応する右辺のインスタンスに書換え可能であることを表す.
項書換え系 term rewriting system: TRS 書換え規則の集合.
■例1
2.項書換え系の操作的意味論
項書換え系に含まれる1つの書換え規則を項の部分項に1回適用することによって項が項に書換え可能であるとき,と書く.(単にとも書く.)
【例】例1のにより,.
初期項が与えられたときの書換え列 で「計算」を表現する.
をそれ以上書き換えられないとき,はの正規形 normal form であるという.正規形は「計算結果」を表現している.
から書換え可能なは一般には何通りもある(非決定性).いずれを選ぶかは書換え戦略による.
【例】最内最左戦略(最も内側の最も左側を選択)
.
最外最左戦略(最も外側の最も左側を選択)
.
3.ソフトウェアの代数的仕様記述
代数的仕様 algebraic specification プログラミングすべき関数間の関係を等式の集合で記述することにより抽象データ型 abstract data type を定義するもの.
代数的仕様記述の直接実行 等式をに向き付けて項書換え系として実行.
■例題1:スタック
push: Element×Stack → Stack
pop: Stack → Stack
top: Stack → Element
emptyStack: Stack
pop push x,y y
top push x,y x
【直接実行の例】top pop push A,push B,pop push C,push D,emptyStack → top pop push A,push B,push D,emptyStack → top push B,push D,emptyStack → B
■例題2:自然数の加算
後者関数 successor function により自然数を項0,s 0 ,s s 0 ,…で表現.
s: Nat → Nat
plus: Nat×Nat → Nat
plus 0,x x
plus s x ,y s plus x,y
【直接実行の例】plus s s 0 ,s s 0 → s plus s 0 ,s s 0 → s s plus 0,s s 0 → s s s s 0 ■例題3:n番目の素数
最外最左戦略で遅延評価 delayed evaluation を模擬して,prime 2 →…→5となる.
prime n nth primes ,n // n番目に小さな素数(先頭は0番目)
nth x:y,0 x // nth L,n はリストLのn番目の要素
nth x:y,s n nth y,n
primes sieve ints s s 0 //素数が昇順に並ぶ無限リスト
ints x x:ints s x //x以降の整数が昇順に並ぶ無限リスト
sieve x:y x:sieve filt x,y //エラトステネスのふるい
// リストからxの倍数をすべて削除(フィルター)
filt x,y:z if eq mod y,x ,0 , filt x,z , y:filt x,z
if true,x,y x
if false,x,y y
演習問題 5
自然数を0と後者関数sを用いてコード化したとき,以下の関数を定義する代数的仕様を示せ.(それにより例題3の記述が完結する.組込み演算子 は使えないものとする.)
1 eq x,y : x yならばtrue,でなければfalse
2 ge x,y : x≧yならばtrue,でなければfalse
3 minus x,y : x≧yならばx-y,でなければ
您可能关注的文档
最近下载
- 变电站风险分析与应对措施.docx VIP
- 小学二年级上学期期末数学试卷.doc VIP
- 八年级数学上册同步精品讲义(人教版):分式方程(教师版).pdf VIP
- 初中道德与法治六年级第一学期期末试卷及答案_沪教版_2024-2025学年.docx VIP
- 五音技术规范:通用要求.docx VIP
- 《中华人民共和国监狱法》解读专业解读.pptx VIP
- 2024《基于哈佛分析框架的房地产公司财务研究国内外文献综述》5100字.doc VIP
- 《中华人民共和国监狱法》培训解读课件.pptx VIP
- 《第26课 寻找最短的路径》精品课件.pptx VIP
- 陕09J01 建筑用料及做法.docx VIP
原创力文档


文档评论(0)