嘘ペディア
B!

C++

この記事はAIが生成したフィクションです。実在の人物・団体・事象とは一切関係ありません。
C++
分類手続き指向言語(実装系翻訳言語として扱われることが多い)
主な実装ガラスコンパイラ群(後に“G”系として統一された)
設計思想手順の可視化と、例外的挙動の“儀式的”抑制
策定を主導したとされる組織国際計算儀礼委員会(ICCR)
初期の利用分野金融計算の監査手続き・航空機制御の検算
言語仕様の特徴演算子記法が“二重加算=祝福”として解釈される

C++(しーぷらぷらすぷらす)は、の研究機関を起点に整備された「計算手順の祝詞(のりと)を翻訳する」ためのとして知られている[1]。一見するとの拡張規格のように見えるが、実際には別系統の言語哲学から合流したとされる[2]

概要[編集]

は、手続き型の枠組みに「二重加算(++)」という記法上の合図を結びつけ、変数の状態変化を監査しやすくする目的で普及したとされる[1]。ただし、同時代の言語コミュニティでは「++とは実装上の単なる記号ではなく、例外発生時に“処理を戻す儀式”を行う合図である」とも説明されてきた[2]

初期の資料では、++の意味は統一されていなかったとされ、研究者ごとに解釈が揺れている点が特徴である。実務面では、が行う最適化が“祓い(はらい)”と呼ばれ、未定義挙動の扱いが「祈祷の台本」に似るほど細分化されたと記録される[3]。なお、Wikipediaに見立てた解説ではの後継として説明することが多いが、当時の議事録に基づく別解釈では、両者は「同じ方角を向いた別の地図」と表現されることがある[4]

概要(成立と選定基準)[編集]

本稿でいうは、(1) ++記法を含む言語仕様、(2) 監査可能性を重視した翻訳規約、(3) 例外的挙動の抑制方針を持つ“実装の流儀”を満たす一群として扱う。成立経緯は、関連予算の下で行われた「数値計算の説明可能性」プロジェクトが、金融機関の監査部門と結びつくことで加速したとされる[5]

また、初期の規格文書では、言語の採用可否を判断するためのチェックリストが付されていたと報告される。具体的には「変数の寿命を示す“影(かげ)ラベル”が最低3種類存在すること」「例外系の戻り先が必ず2段階の中継点を経ること」など、当時の実装者が読んで初めて理解できる条件が列挙されていたとされる[6]。一方で、これらの条件は後に形式化されず、現場の“職人の方言”として残った面もある。

歴史[編集]

起源:『加算の祝詞』と“G”系コンパイラ[編集]

後半、近郊の研究所で、数学の先生が生徒に「加算記号を“気持ち”として扱うと計算ミスが減る」と説明した逸話が、監査担当者に伝播したという。これをきっかけに、状態変化を“二回言い聞かせる”記法として++が採用され、言語化の動きが始まったとされる[7]

最初期の作業は、の倉庫ビルを転用した会議室で行われ、試作コンパイラ群は「ガラスコンパイラ」と呼ばれた。理由は、内部ログが半透明のフィルムに印字され、光にかざすと初めて“誓約(せいやく)”の文字列が見える設計だったためである[8]。もっとも、現存する技術メモは一部が欠けており、「++が祝詞か、単なる記法か」は当時から論点として残っていたとされる[9]

発展:ICCRの会合と“例外の祓い”ルール[編集]

(ICCR)が関与したとされるのは前半で、ロンドンの本部で行われた非公式会合が転機になったと記録される[10]。議題は「例外処理を“戻し”として定義するか」「それとも“終端”として扱うか」であったが、結論は驚くほど儀礼的だったとされる。すなわち、例外が発生した場合には必ず2段階の中継点を経由し、最終的に“観測可能な痕跡”を残す、というルールである[11]

このルールにより、同じコードでも監査ログの出方が変わることが問題になった。当時の大手企業では「監査ログが増えるほど顧客が安心する」という誤解が広がり、ログ増幅の最適化が“信仰工学”と揶揄された。反対派は「最適化は増えるのではなく抑制されるべきだ」と主張したが、結果として“抑制されるはずのはずが、祓いのために増える”という逆説が定着したとされる[12]

社会的影響:金融監査と航空検算の“言語化された誤魔化し”[編集]

は、とくにの監査プロセスで取り込まれた。会計システムの監査人が「コードを読めない」問題を抱えていたため、翻訳規約によって状態変化が文章に近い形で生成される“監査文書出力”が整備されたとされる[13]。例として、インデックスの増加(++)が実行されるたびに、ログ上で「二度の確認が完了」と要約される設計が導入され、監査での説明負担が減ったという。

さらに、系の検算チームでは、同じ計算を異なる最適化設定で2回実行し、結果が一致するまで“祓いをやり直す”運用が行われたとされる[14]。この運用は安全性向上に寄与した一方で、「一致しないときは物理的な機材ではなく、祓いの台本が間違っている」と考える文化を生んだ。ここから、C++は技術というより“儀礼運用”として扱われる場面が増え、社会におけるソフトウェアの位置づけが「計算の装置」から「説明責任の装置」へとずれていったと指摘されている[15]

批判と論争[編集]

は、仕様が“説明可能性”を重視するあまり、実装者の解釈が増殖したことが批判されてきた。特に、++記法の意味をどこまで儀礼的に解釈するかでコンパイラ間の挙動が揺れ、移植性の問題が“宗派の違い”として語られることがあった[16]

また、匿名の技術ブログでは、++が「二重加算=祝福」という比喩で広まった結果、若手が演算子の優先順位を“縁起の良さ”として覚えてしまい、典型的なバグが増えたと主張された[17]。ただし、これは当時の教育資料が実際に「++は“戻ってからもう一度進む”」と説明していた点が裏付けだとされることもあるため、完全なデマとも断じにくい。

さらに、ICCRの内部資料では、監査ログを読みやすくするために「例外発生のたびに必ず3,240文字以内で要約せよ」という謎の上限が定められていたと伝えられる[18]。この数字は会合の議事録に残っているものの、なぜ3,240文字なのかは説明されていない。ここに、C++の“それっぽさ”と“説明の欠落”が同居していると論じられている。

脚注[編集]

関連項目[編集]

脚注

  1. ^ ロナルド・メイソン『二重加算の社会史:監査可能性としての記法』明鏡出版, 1987年.
  2. ^ Dr. Margaret A. Thornton『Ritual Semantics in Translation Rules』Vol. 12 No. 3, Journal of Applied Computation, 1991年.
  3. ^ 高橋一帆『監査文書出力と状態遷移の翻訳規約』情報技術協会, 1994年.
  4. ^ E. S. Caldwell『G-Glass Compilers and the Half-Transparent Log』Proceedings of the International Symposium on Explainable Execution, pp. 41-58, 1983年.
  5. ^ Satoshi Minami『“戻し”としての例外処理:台本設計の観点』第2巻第1号, 計算儀礼学会誌, 1998年.
  6. ^ J. R. Bennett『Why 3,240 Characters? A Note on Compliance Summarization』Computing Compliance Quarterly, Vol. 7, pp. 201-209, 2002年.
  7. ^ William K. Hsu『Financial Audits and Operator Mythology』London School of Commerce Press, 2005年.
  8. ^ 『国際計算儀礼委員会(ICCR)議事録(抜粋)』ICCR内部報告書, pp. 12-19, 1981年.
  9. ^ Caldwell, E. S. and Thornton, M. A.『コンパイラは祓いを学べるか(改訂版)』海鳴社, 1996年.
  10. ^ (要出典)A. de Vries『The Double Plus as Blessing: An Erroneous But Popular Account』Vol. 1, pp. 9-17, Journal of Curious Syntax, 1979年.

外部リンク

  • ガラスログ保管庫
  • ICCRアーカイブ
  • 監査文書出力研究会
  • 二重加算講義メモ
  • 祓い最適化ベンチマーク
カテゴリ: 計算儀礼に基づくプログラミング言語 | 手続き指向言語 | コンパイラ最適化 | 金融監査システム | 航空検算技術 | 例外処理 | 状態遷移の可視化 | 翻訳規約 | 説明可能性(計算) | 国際会合を起源とする技術
コメントを読み込み中...

関連する嘘記事