ブログっ...!

最近はミソフォニアのことばかり書いています。もうミソフォニアブログです。

同前々3

まろくって。。

文字列(というかchar*)は、'\0'を末尾につけることにより、値の終わりを示せるわけだが、 まろく(mmap/sbrk/brk)はそのへんどうなっているの。。 よくよく調べてみれば不思議なこと(現状理解していないところ)が多い。

mallocによる確保外の領域への参照 - C・C++ 解決済 | 教えて!goo

これ見てよくわからなくなった。 (セグメンテーションフォルトがどういうときに起きるのかをちゃんと分かっていない。 C言語のポインタは私の思っている以上の以上に緩いらしく、(キャスト至上主義だと最近知った) セグフォはもっと、頻繁に起きるものだと思っていた。)

以下のようなアクセスのしかたは「確保していない領域を使用している」ので、セグメンテーションフォルトが起きてしかるべきだと思っていた。

1) (pelem_point+100)->x

あと、

2) ( (point *)(pelem_point+100) )->x

で構造体としてアクセスできるのはまあいいけど、 1)でも可能なのがよくわからなくなった。 (Cのコソパヨヤーの仕組みがよくわかっていない。)

・x[y] は (x + y) の糖衣構文 ... (i) ・x->y は (x).y の糖衣構文 ... (ii) と知ったときにはいろいろ理解が進んだ気がした。まあそうなんだけど... あと、こんな年にもなってひどいんだけど、structの宣言をポインタ変数でしかしたことがなかったので、ドット演算子があることを知らなかった。(おかむるいえーい)

第十三回-03 ドット演算子とアロー演算子

この話をもってくると、 (pelem_point + 100)->x は (ii)より、(*(pelem_point + 100)).x (i)より、(pelem_point[100]).x

ここで漸く納得である。

しかし、なぜこれで違反にならないかはわからないままだ。:-D

static /

C言語システムコール-brk CapmNetwork

mmap/brk/sbrkのmanぺじ読んでいると、知らない単語が出てくるので、調べると、またそのぺじに知らない単語が出てきて... その繰り返しである。

リンカの話が出てきたときは闇だった。なんせ事前知識が皆無に近いので。(そういうdocumentを見る程、他のぺじに飛ばされる数が多くなる。)

同前2

1) ブルームフィルタのお話。

サーバsに問い合わせたいファイル名のリストxがある。
このリストxに含まれる任意のファイル名のファイルfが、サーバsに全てあるわけではないらしい。
全てのfを実際に一気にリクエストすると通信負荷が大きいので、
「実体がsにあるf」のみだけにしたいところ。
sの管理するファイル数がほどほどに小さいなら、その全ファイル名リストをとってきて、それにfが含まれるなら、実際にお問い合わせする
という手でもいいが、まあ、そんな手で回るような世の中ではない。。

そこで現れるブルームフィルタ。詳しくは以下。
 

ブルームフィルタ - Wikipedia
 

この技術により、「fの実体がsにあるか」が確認でき、実際に通信するものを篩にかけることができる。
篩に通ったら、通信する。。
しかし、この篩は100%正確なわけではなく、
fの実体がsにないにもかかわらず篩に通してしまうことがある。
(小麦粉のダマとか普通に通す荒い篩あるよね。。)

・フィルタが「ないよ」って言ったら、ないことは確実 (本当はありました〜ということは起き得ない)
・フィルタが「あるよ」って言ったら、たまにないことがあるが大体はある


第一種過誤と第二種過誤 - Wikipedia

これ数理統計学の授業でやっていたけど、形式的に問題を解くゲーにしてしまったため、ほとんど記憶に残っていなかった。
帰無仮説については、その単語を聞く度に頭の中に「氷室京介」という固有名詞が浮かび、(語感が似ているからか?)
ほとんど内容が入ってこなかったことが印象ぶかい。

統計学の文章は、今全く読む気分じゃないので、搔い摘んで読んだ。超適当に説明することにする。

偽陽性(False Positive)は帰無仮説が実際には真であるのに棄却してしまう過誤
偽陰性(False Negative)は対立仮説が実際には真であるのに帰無仮説を採用してしまう過誤


ここで、ブルームフィルタの話に戻ってみる。
対立仮説 = 「ファイルがある」
帰無仮説 = 「ファイルがない」


ファイルfについて、サーバsのフィルタに問い質してみる。

i) フィルタ「ねえです」
a) fの実体がsにある場合
起き得ない。
b) fの実体がsにない場合
10割

ii) フィルタ「あるよ」
a) fの実体がsにある場合
8割くらい(例えば)
b) fの実体がsにない場合
2割くらい

偽陽性(False Positive)は帰無仮説が実際には真であるのに棄却してしまう過誤
ii)b)のケースにあたる。
もっていないファイルに対して、「もっている」と判定してしまうケース
偽陰性(False Negative)は対立仮説が実際には真であるのに帰無仮説を採用してしまう過誤
i)a)のケースにあたるが、ブルームフィルタでは起きえない。

もっているファイルに対して、「ない」と判定してしまうケース
 

2) コルーチン in C言語
以下、そのメカニズムをわかりやすく記録するために自己満足スライドを作成。
(もちろん、自分のためのメモなので、リンク先は自分だけしか見れない設定になっているし、そのURLも載せるつもりはない。)

アセンブリを読みたい気分になった。
以下の記事を読んだり。

Super Technique 講座〜longjmpと例外

(あと上記の記事を読んでる最中、気になるリンクがあった
Deep Side of Java〜Java 言語再入門 第2回 〜 例外
Super Technique 講座〜シグナルとコールバック)
 

読んだめも1

よんだはしかたないやつだ!(それは「やんだ」である。。)(よつばとネタ)


callccによる排中律の証明 - sumiiの日記

これ面白かったw
寸劇の話はcallccというワードがヒントになって、わかったw おもしろい。

callccがカリーハワード同型で二重否定に当たる、という話は小耳に挟んだことはあるが、
あんまりよく知らなかった(調べることを忘れていた)ので、調べた。
下のリンクの「call/ccの型」

call/ccと古典論理のカリー・ハワード対応 - 再帰の反復

途中の
λx.(Left x) : A→A∨¬A
のとこで、なんでこうなんだ?と思っていたが、そうだった。
記憶が薄れてて困る。
(下、AgdaのData.Sumリンク。
http://www.cse.chalmers.se/~nad/repos/lib/src/Data/Sum.agda)
(ので、ひとつめのリンク先のInRight(λx:T. k(InLeft x)))は、
InLeft x : T v not T
k(InLeft x) : not
λx:T. k(InLeft x)) : T -> not
となって、InRight(λx:T. k(InLeft x))) : T v not T となるのが解釈。(%s/not/¬/g))
(いっこっつ型を確認する主義)

すごくわかりやすい記事だった...
しっかり理解している方の説明はしゅごいありがたい。

更にこれを読んで、納得してシメ。

http://www.kmonos.net/wlog/61.html#_0538060508

はわわ。。

あと次いでに、voidの話もよんだ。

void - sumiiの日記

Void (コンピュータ) - Wikipedia

あと、前回の記事書いた続きとして、
直観主義論理の話のリンクを超かみつまんで読んだ。

http://www.kurims.kyoto-u.ac.jp/~terui/summer2013.pdf


はっっ、こんなことをしていたらゆうがたに。。じゃあ。。

「構成的」ってなんだ

構成的という言葉の意味がわからなくなって調べてた。
調べたら、「数学的構成主義」「構成的数学」という言葉がちらちら出現。
それも追っかけてたら「数学的直観主義」などなども出現。

直感主義論理は授業でやったので覚えていた。

他もろもろ。

 

数学的直観主義 - Wikipedia

構成的数学とその周辺

数学的直観主義 数学的構成主義 形式主義

 

1) 直感主義論理

授業で先生が以下のようなことを言っていた。

------

A「私のこと本当に好きなの?」

B「好きじゃないわけじゃないよ」

古典主義なA「嬉しい♡ありがとう♡♡」

直感主義なA「ひどい!どういうことっっ」

------

 

2) 構成的論理

(二つ目のリンクがとてもよい。適当に主要だけまとめると)

  • 「現代では直観主義論理は、数学の証明は全て構成的に為されなければならないという主張(数学的構成主義)と関連が深い」(Wikipedia より)
  • あるものの存在dを示すには、dそれ自体を明示する。
  • 「非存在を仮定 => 矛盾 => 存在(背理法)」の流れでは示すことができない。
  • 「AまたはB」の成立を示すには、Aが成り立つことを示すか、Bが成り立つことを示すかどちらか。
  • 「not A かつ not Bを仮定 => 矛盾 => AまたはB」の流れでは示すことができない。
  • 「自分でそれ自体を確認するまでは何も言えない」考え
  • 古典論理に(強い)縛りをかけたものが構成的論理である。

肝心の「構成的」の意味は、「本質的」と言ったほうがしっくりくるような印象をもったんだが、どうだろうか。

 

※二つ目のリンクの冒頭で述べられていた通り、「構成的」という形容詞の解釈がゆらいでいた感じがあった。ちなみに、('constructive' の)英訳を読んでみると、日本語でのイメージとは結構違った。

Constitutively - definition of constitutively by The Free Dictionary

このページもおもしろかった。

アニヲタWiki(仮) - 数学的構成主義

 

3) 形式主義

このページ。

形式主義 ( 哲学 ) - honky tonk manの黙示録 - Yahoo!ブログ

 

でしたー。