2010-12-29

マルチスレッドとデータ競合をまともに規定するとユークリッドの原論になる

C++0x Memory Model 第0回 - メモリモデルとは何か
C++0x Memory Model 第1回 - 1.9 Program execution

だいたい2300年ぐらい前に、ユークリッドという原理主義者が、原論という本を書いた。原論では、実に当たり前で、わざわざ言うまでもないことを説明している。例えば、「点とは大きさのない位置のことである」とか、「線とは幅のない長さのことである」などといったどうでもいい定義や、「任意の点から任意の点に、直線を引くことができる」などといった当たり前すぎる公理の類である。原論が日本に入ってきたのは、1730年代のことであったが、このような当然の事柄を延々と羅列しただけの本を見た当時の日本の和算学者は、一笑して無視したという。

しかし、このような定義と公理の羅列は、やはり重要なのだ。しかし、それを真面目にやると、プログラミングの参考書ではなくなってしまう。一般のプログラマが参考書に求めることは、このような原理主義的な定義の列挙ではなく、スレッドや同期処理ライブラリの使い方だろう。

2 comments:

  1. もちろん、言論の純粋な日本語訳も必要ですけどね。

    ReplyDelete
  2. 英語を学ぶという解法もあるよ。
    原論のためだけに古代ギリシア語を学ぶのはさすがにコスト高すぎだがC++の規格書は原典が英語だし。

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.