チャールズ・アンソニー・リチャード・ホアorまたは父のクイックソート、NULL、そして食事哲学者の問題





教育とコンピューターサイエンスの騎士、ロジックにちなんで名付けられた男、彼の10億ドルの間違いを認めた最初の人、qsort開発者は、今日1月11日に82歳の誕生日を祝います。 (確かにKnutで 。)



クイックソート



画像

1960年にモスクワ州立大学で茶flaskについてコルモゴロフと話し合った後、Hoarは配列をソートするための最も高速な既知の汎用アルゴリズムの1つを開発しました。 詳細については、ウィキペディアをご覧ください



誰かが壊れた場合、ダンスの説明は次のとおりです。





Hoの論理





コンピュータープログラムの正確性を証明するために設計された一連の論理ルールを備えた正式なシステム。 1969年にコンピューター科学と数学論理Hoarの分野の英国の科学者によって提案され、後にHoar自身と他の研究者によって開発されました。 ( ウィキペディアの詳細。



順次プロセスの通信(CSP



画像

これはトランスピュータです



並列システムの相互作用モデルを記述するための正式な言語。 チャネルを介したメッセージの送信に基づいた、プロセスの計算(またはプロセス代数)として知られる並列性の数学的理論を指します。 彼はオッカム、リンボ、ゴー語の開発に影響を与えました。



CSP理論は、1978年のCharles E. Hoarの記事で初めて説明されました。 この初期バージョンは、無限の不確定性を表していないため失敗しました。 その後、Carl Hewitt Actorsモデルから借用したアイデアの影響下で、理論は大幅に変更されました。 (1985年以降のHoarの現代CSPは、無限の不確定性を使用しています)。 それ以来、大幅に開発されました。 実際には、CSPは、たとえばT9000トランスピュータや安全なeコマースシステムなどの同時実行システムの正式な仕様を作成するためのツールとして使用されていました。 CSP理論は、実際の適用可能性の拡大、特に分析対象システムのサイズの拡大という観点から、依然として活発な研究の対象となっています。 ( ウィキペディアの詳細。)



哲学者の食事の問題





この問題は、1965年にEdsger Dijkstroyによって学生向けの試験問題として策定されました。 例として、テープドライブへの競合するアクセスが取得されました。 すぐに問題はリチャード・ホアによって今日知られている形式で定式化されました



5人の静かな哲学者が丸いテーブルの周りに座り、各哲学者の前にはスパゲッティのプレートがあります。 フォークは、最も近い哲学者の各ペアの間のテーブルにあります。



すべての哲学者は、食べるか反省することができます。 食べることは、残りのスパゲッティの量によって制限されません-無限の供給が暗示されます。 ただし、哲学者は、左右から取った2つのフォークを持っている場合にのみ食べることができます(この問題の別の定式化には、スパゲッティとフォークのプレートの代わりにご飯と箸のボウルが含まれます)。



各哲学者は、最も近いプラグ(利用可能な場合)を取るか、すでに持っている場合はそれを置くことができます。 各フォークを取得してテーブルに返すことは、次々に実行する必要がある個別のアクションです。



問題の本質は、行動のモデル(並列アルゴリズム)を開発することです。このモデルでは、哲学者は誰も飢えません。つまり、食べることと考えることを永遠に交互にします。 ( ウィキペディアの詳細。)



億エラー





2009年のQConカンファレンスで、Hoarは謝罪しました。



「10億ドルの間違いと呼んでいます。 それは1965年のnull参照の発明でした。当時、私はオブジェクト指向言語(ALGOL W)での参照のための最初の包括的な型システムを設計していました。 私の目標は、コンパイラによって自動的に実行されるチェックを使用して、参照のすべての使用が絶対に安全であることを保証することでした。 しかし、実装が非常に簡単だったという理由だけで、null参照を挿入する誘惑に抵抗することはできませんでした。 これにより、無数のエラー、脆弱性、およびシステムクラッシュが発生し、過去40年間で数十億ドルの痛みと損害をもたらした可能性があります。 近年、MicrosoftのPREfixやPREfastなどの多くのプログラムアナライザーを使用して参照をチェックし、null以外のリスクがある場合は警告を発します。 Spec#のような最近のプログラミング言語では、非null参照の宣言が導入されています。 これが解決策であり、1965年に拒否しました。」




証明ビデオはこちら



ビデオ講義「コンピューターは自分のプログラムを理解できた」







お誕生日おめでとう



All Articles