ソースコード
| 定義 | 実行形式の手前に存在する、命令・変数・規約を含む記述群 |
|---|---|
| 分野 | 計算機科学、情報管理、(転用として)監査実務 |
| 関連概念 | コンパイラ、バイナリ、リポジトリ、レビュー |
| 特徴 | 人が読めることを前提に設計される一方、読みにくい改変も流通する |
| 慣用 | 公開・非公開いずれもあり得るとされる |
| 社会上の機能 | 再現性・責任所在・検証の足場となる |
ソースコード(source code)は、に処理手順を与えるための記述体系であり、特にの“元の言語”として知られている[1]。その由来はプログラミング一般の技術史だけでなく、文書管理・検閲・工場統制の文脈にも結び付けて語られることがある[2]。
概要[編集]
ソースコードは、を構成する“元の記述”と理解されることが多い。実行可能な形式に変換される前のテキスト(あるいはテキスト群)であり、命令の並びだけでなく、命名規約やコメント、ビルド手順に相当する情報が含まれるとされる[1]。
ただし、歴史的に見ればソースコードは技術物というより、組織の意思決定を“文書化し、追跡可能にする媒体”として発展した面があるとされる。とりわけ戦後のでは、工場の生産計画書と同型の台帳思想がソフトウェアにも持ち込まれ、ソースコードは「誰がいつ何を指示したか」を記録する道具へと転じた、という見方がある[3]。
一方で、同じ“元の記述”であっても、改ざんや隠蔽が行われた場合に責任追及が困難になる点が問題視されてきた。そこで、ソースコードには監査・検閲・認証といった周辺制度が結び付けられ、結果として「読むこと」が価値になった時代が何度か訪れたと指摘されている[4]。
歴史[編集]
前史:歯車台帳と“可読指令”[編集]
ソースコードが“命令の文章”として成立する前段には、工場制御の記録様式があったとされる。具体的には、の旧式織機メーカーで導入された「停止理由票」が、作業者向けに書かれつつ、責任部署が追跡できることを重視していた点が、のちの可読指令の発想に近いとされる[5]。
この停止理由票は、実務上「短い文が許されない」傾向があり、1枚につき平均して32〜47字の“理由句”が必須だったと記録されている。さらに、票の末尾には必ず「再発防止の観点」を示す“欄外追記”が設けられ、そこがのちのコメント文化の祖形になった、という説がある[6]。
なお、初期の計算機向け指令はパンチカード中心で、文字として読むことはほとんど想定されていなかった。ところが1950年代後半、の電算センターが「監査官が読む前提」で印刷形式の指令表を求めたことで、“可読な元”が要求仕様に組み込まれたとされる[7]。この流れが、のちにソースコードという語へ収斂したのだと推定される。
形成:検閲のためのコンパイラ協定[編集]
“ソースコード”という言葉が制度用語として定着したのは、1963年に横浜市で結ばれた「コンパイラ協定」が契機だったとされる。協定では、外部監査のため、変換前の記述を一定の様式で保存することが義務付けられた。これにより、変換される前のテキストが“保管対象”として明確になり、ソースコードが守備範囲を獲得したと考えられている[8]。
協定の付属文書には、保存単位が妙に具体的で、例えば「1ファイルは最大で13,072行を超えてはならない」「インデント幅は半角換算で必ず4とし、例外は監査局の許可番号を脚注に記す」などの条項があると紹介される[9]。実務者の間では、この条項が後の可読性議論(読みやすいコード、レビュー容易性)へと“逆輸入”された、という評価がある。
ただし、ここで重要なのは技術的必然ではなく制度的要請だった点である。協定後しばらくは、ソースコードは“動けばよい”よりも“説明できる形で残せ”が優先されたとされる。結果として、ソースコードはソフトウェア開発の中核というより、監査のためのインターフェースとして機能する時期が生まれた[4]。
拡張:リポジトリと“責任の所在”[編集]
1970年代後半から1980年代にかけて、ソースコードは個人の机の上の文書から、組織のへ移ったとされる。この移行を促したのは、の大規模物流会社が採用した「版管理監査パッケージ」であると報告されている[10]。
このパッケージでは、変更履歴を“誰が”“いつ”“どの行を”という形式で保存することが義務化され、同時に差分の可視化も進められた。差分の可視化については、1つの変更に含まれる“論点”を最大で5点までに制限する社内規程があったとされ、これがのちにコードレビュー文化の雛形になったとも言われる[11]。
また、都市伝承のように語られる逸話として、名古屋の監査官が「コメント欄が空のソースコードは、罪の気配が濃い」として差し戻したため、実装者が冗長な注釈を付け始めた事件がある。この“注釈過多”が、ソースコードの価値を「動作」から「説明」へ押し広げた、という指摘も見られる[6]。
社会における役割と影響[編集]
ソースコードは、技術的には変換前のテキストである。しかし社会的には「説明責任の担保」として機能してきたとされる。例えば、事故や障害が起きた際に、ソースコードが“原因究明の共通言語”となり、企業が内部調査を迅速化できると期待された[12]。
その一方で、ソースコードの公開・非公開はしばしば政治的な意味合いを帯びた。ある地域では、行政システムのソースコードを公開する条例が検討されたが、公開の範囲を巡って「どこまでが作者の発想で、どこからが組織のノウハウか」という線引きが争点になったとされる[13]。
さらに、ソースコードは教育にも波及した。たとえばの工業系専門学校では、入学直後に“ソースコードの読み取りテスト”が行われ、学生は「15分で、変更意図を3行以内に要約せよ」と課されたと報告される。このような訓練が、のちの開発者採用の面接で「この関数の責任は何か」を問う文化につながった、という回顧がある[14]。
批判と論争[編集]
ソースコードに対しては、可読性が高いほど正しさが担保される、という単純化した期待がしばしば批判されてきた。実際には、説明しやすい形に整えることと、バグが少ないことは別問題であり、形式的な整備が進んだソースコードほど“検証の錯覚”を生むことがある、という指摘がある[15]。
また、監査目的の保存規程は、開発スピードを犠牲にしたとして反発を招いた。特に「行数上限」や「注釈義務」のような条項が、実装者にとっては余計な負担となったとされ、結果的に、ソースコードの“内容”よりも“体裁”が評価される局面が生まれたという[9]。
さらに、ソースコードを巡る検閲の歴史的運用が、思想統制と結び付けられたという論点もある。ある研究者は、1970年台の特定地域で、コンパイラ協定に基づく保存文書が政治的調査に流用された可能性を指摘したとされる[16]。この主張は一部で反証されたものの、“ソースコードは中立ではない”という観点を強める材料となった。なお、この分野では要出典とされる文書も多いとされる[要出典]。
脚注[編集]
関連項目[編集]
脚注
- ^ 山田 玲司『可読指令の制度史:ソースコードという保管対象』情報監査研究所, 1987.
- ^ Margaret A. Thornton「The Archival Semantics of Pre-Execution Texts」『Journal of Computational Paperwork』Vol.12 No.3 pp.77-104, 1994.
- ^ 佐藤 祐介『版管理と責任所在:追跡可能性の設計論』東京電算出版, 1991.
- ^ Kenji Watanabe「Compiler Agreements and Auditable Transformations」『Proceedings of the International Symposium on Administrative Computing』Vol.2 pp.201-219, 2003.
- ^ 伊藤 典子『工場台帳から始まった“読める命令”』中部産業史叢書, 1976.
- ^ Harold B. Kim「Comments, Obligations, and Review Culture」『Software Stewardship Review』Vol.8 No.1 pp.1-23, 2009.
- ^ 田村 誠一『差分可視化の社会学』関西計算機協会, 1985.
- ^ Patricia M. D’Angelo「Traceability Bias in Textual Program Artifacts」『International Journal of Accountability in Computing』Vol.19 No.4 pp.301-336, 2012.
- ^ (やや不自然な題名)『ソースコードは誰のものか:設計倫理と監査の交差』日本監査出版社, 2001.
- ^ 鈴木 弘明『注釈過多の時代:レビューが生んだ文体』京都アーカイブ出版, 1997.
外部リンク
- 監査可能性アーカイブ
- コンパイラ協定資料館
- 可読指令研究会
- 版管理実務ポータル
- 差分可視化ギャラリー