何でブール代数がプログラムに使えるか教えろ

■ このスレッドは過去ログ倉庫に格納されています
2013/09/19(木) 19:21:58.64
頼む
2013/09/19(木) 19:26:41.22
低レベルではCPUが論理演算と条件分岐できるから。
高レベルでは、コンパイラが論理式を翻訳できるから。
3デフォルトの名無しさん
垢版 |
2013/09/19(木) 19:43:50.60
おらおら、徒歩暴走族のお出ましだぜ
4デフォルトの名無しさん
垢版 |
2013/09/19(木) 19:51:20.70
ブーン、ブンブブンブン
ブンブブンブ、ブブーンブン
2013/09/19(木) 19:59:11.39
もうちょい詳しく頼む
6デフォルトの名無しさん
垢版 |
2013/09/19(木) 20:28:49.45
x86 CPUについて解説しよう。このCPUにはAND命令、OR命令、TEST命令、
XOR命令、NOT命令がある。CPU内部にはZFというフラグがあって、
計算後にJZというジャンプ命令を使えば計算結果がゼロか確認することができる。
7デフォルトの名無しさん
垢版 |
2013/09/19(木) 20:32:47.50
さらにJZの反対にJNZというジャンプ命令がある。これらを組み合わせれば
プログラムでブール代数が表現可能であるし、ブール式(論理式)の値に従って実行内容を切り換えることが可能。
8デフォルトの名無しさん
垢版 |
2013/09/19(木) 20:44:53.62
例えばTEST AX,AXという命令は、AXがゼロならばZFが0になり、AXが非ゼロならZFが1になる。
この直後にJZを呼べばAXの値を確認できる。
9デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:00:01.74
整数の0と1を代数系Xの元とすれば、
AND命令の直後のZFは、論理積となり、OR命令の直後のZFは、
論理和となる。NOT命令の直後のZFは、論理否定となる。
ZFに従ってレジスタに0か1を代入した結果をX上の各
演算の値とすると、Xをブール代数と見なすことができる。
10デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:11:56.14
ここまででわからなかったことがあれば質問せよ。
2013/09/19(木) 21:24:19.61
ZFは0か1しかなくて
AXはZFが0の時は0
それ以外は1という理解でおk?
12デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:25:42.21
ブーン、ブンブブンブン
ブンブブンブ、ブブーンブン
13デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:30:15.73
>ZFは0か1しかない

正しい。

>AXはZFが0の時は0 それ以外は1

間違い。AXは整数レジスタで色々な値になる。ZFに従ってAXを変更するというプログラムの文脈においてAX==ZFとなる。
14デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:40:18.74
ブーン、ブンブブンブン
ブンブブンブ、ブブーンブン
2013/09/19(木) 21:40:50.54
ここまで理解した
16デフォルトの名無しさん
垢版 |
2013/09/19(木) 21:50:41.08
有限な計算式は、有限な計算木(構文木)で表現できる。論理式も計算式の一種である。
計算木の各ノードに再帰的に付値を行えば、計算木全体の値を求めることができる。
17デフォルトの名無しさん
垢版 |
2013/09/19(木) 22:06:59.44
コンパイラは計算式を解釈し、計算結果を求めるプログラムを再帰的に作り出し、そのプログラムを最適化する。
その過程は計算木の解釈である。
18デフォルトの名無しさん
垢版 |
2013/09/19(木) 22:12:13.84
ここまでで何か質問は?
2013/09/19(木) 22:17:36.52
計算木とノードってなに?
20デフォルトの名無しさん
垢版 |
2013/09/19(木) 22:22:16.28
計算木は、計算のための木構造データ。二分木みたいなもの。葉っぱは、定数か変数。
枝分かれした所が演算子。ノードは、構造の頂点。詳しくは数学のグラフ理論を勉強してくれ。
2013/09/19(木) 22:26:52.75
コンパイラは計算結果と計算式をから計算過程を最短化するっていうことでいいのか?
22デフォルトの名無しさん
垢版 |
2013/09/19(木) 22:33:41.47
葉っぱが定数の場合は、すぐに計算結果が求められるからね。
重要なことは、それぞれの部分計算木がある部分計算式に対応していること。そして、最適化しない場合は、
部分計算木がそれを計算するプログラムに対応していること。
だから、再帰を使って計算木の全体を計算するプログラムが作れるということ。
2013/09/19(木) 22:37:20.34
おk!わかった
24真・スレッドストッパー
垢版 |
2013/09/19(木) 22:41:24.89
このスレッドは終了しました。。。( ̄ー ̄)ニヤリ
2013/09/19(木) 22:48:39.23
テスト
2013/09/19(木) 22:50:58.61
半加算機って何ですか?
2013/09/19(木) 23:03:40.96
オートマトンで状態遷移する時にどう表現するつもりよ
2013/09/19(木) 23:10:24.06
倍返しだ!
29デフォルトの名無しさん
垢版 |
2013/09/19(木) 23:15:57.85
10倍返しだ!
2013/09/19(木) 23:29:00.33
>>22
もっと数学的に厳密に説明できませんか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況