ケン・トンプソンが数時間でディスアセンブラを作った話(まずは基礎から)

  • ケン・トンプソンは新しいタイプセッター機械の付属ソフトが使い物にならなかったときに、真っ先にディスアセンブラを作ったそうです。
  • 根本の基礎ツールから作る発想がまさに天才的。
  • 現代でも「まず何が必要か」を見極める力は重要ですね
数時間でディスアセンブラを作った天才の問題解決法 問題 新タイプセッター導入 付属ソフトが使い物にならない ソースコードもなし 解決アプローチ 本質を見抜く 「機械を理解するには 言葉を読めるようになる」 実行 数時間で ディスアセンブラ 完成 ディスアセンブラとは 機械語 10110000 01000001 アセンブリ言語 MOV AL, 41h 人間が読める形に変換 ケンの天才性 1 速度と正確性 2 適切な問題の発見 3 幅広い分野への応用 現代でも重要:基礎ツールの価値を理解し、本質的な問題を見極める力

カーニハンが見た「別次元の才能」

“I think he’s a singularity. I have never seen anybody else who’s in the same league as him.”

「彼は特異点だ。これまで彼と同じレベルの人間を見たことがない」

カーニハンはこう断言します。多くの優秀なプログラマーを見てきた彼が、ケン・トンプソンを「別の宇宙にいる」と表現するのはなぜでしょうか。UNIX開発者として知られるケン・トンプソン。C言語の共同開発者ブライアン・カーニハンが語ったエピソードから、プログラミングの創造性について考えてみましょう。

その理由は三つの要素の組み合わせにあります。

カーニハンが見た「別次元の才能」 ブライアン・カーニハン(C言語共同開発者) 「彼は特異点だ。これまで彼と同じレベルの人間を見たことがない」 「ケンは別の宇宙にいる」 天才性を構成する3つの要素 技術力 素早く動作する 高品質なコードを 書く能力 洞察力 適切な問題を 適切な方法で 解決する 応用力 様々な分野で これらを繰り返し 発揮する
  • 素早く動作する高品質なコードを書く能力。
  • 適切な問題を適切な方法で解決する洞察力。
  • そして、これらを様々な分野で繰り返し発揮する応用力です。

数時間で作られたディスアセンブラ

ベル研究所に新しいタイプセッター(文字を印刷する機械)が導入されました。この機械は小型コンピューターで制御されていましたが、付属のソフトウェアがひどい出来でした。

数時間で作られたディスアセンブラ ベル研究所に新しいタイプセッター導入 16ビットのコンピューター制御、しかし付属ソフトが使い物にならない 夕方 カーニハン 「夕食に帰る」 7-8時間後 カーニハン帰宅 ケンが完成! ケンが数時間で作成 ディスアセンブラ 機械語→アセンブリ言語変換ツール 数時間という驚異的速度 ・マニュアル探索から実装まで ・一人で全て完成 結果:チーム全体の「足がかり」を確保 機械の動作理解→アセンブラ開発→より使いやすいソフト開発への道筋

タイプセッターの中身は16ビットの平凡なコンピューターです。しかし、ソースコード(人間が読める形のプログラム)は提供されず、機械語で動作するプログラムしかありませんでした。これでは何が起きているのか理解できません。

カーニハンとケン、そして同僚のジョー・コンドンは頭を悩ませました。夕方になってカーニハンは「夕食を食べに帰る。また後で戻ってくる」と言い残して帰宅し、午後7時か8時頃に戻ってくると、ケンは既にディスアセンブラを完成させていたのです。

ディスアセンブラとは何か

ディスアセンブラとは、機械語を人間が読めるアセンブリ言語に変換するツールです。

ディスアセンブラとは何か 機械語→アセンブリ言語への変換ツール 機械語 10110000 01000001 ディスアセンブラ アセンブリ言語 MOV AL, 41h 結果 人間が 読める 形式 なぜディスアセンブラが必要だったのか ソースコードがない → 機械の動作が分からない → 改善できない まず「機械の言葉を読める」ようになる必要があった ケンの洞察:「機械を理解するには、その言葉を読めるようになる」

コンピューターは最終的に0と1の機械語でしか動作しません。しかし、人間がこれを読むのは困難です。アセンブリ言語は機械語と一対一で対応する、より人間に読みやすい形の言語です。

例えば機械語の「10110000 01000001」は、アセンブリ言語では「MOV AL, 41h」(ALレジスタに65という値を入れる)と表現されます。ディスアセンブラはこの変換を自動化するツールなのです。

ディスアセンブラは「足がかり」となるツールでした。これにより、チームは機械の動作を理解し、次のステップに進めます。アセンブラ(人間が書いたアセンブリ言語を機械語に変換するツール)の作成、そして最終的にはより使いやすいソフトウェアの開発へとつながります。

本質を見抜いてすぐに行動する

ケンが数時間でディスアセンブラを作ったのは、なぜ驚異的なのでしょうか。

驚異的な速度の秘密 なぜ数時間での完成が驚異的なのか 情報収集の困難 インターネットなし マニュアル探しから 技術的複雑さ ビット解析の精度 一つでも間違えば失敗 洞察力の必要性 問題の本質理解 基礎ツール発想 ケンのアプローチ 1 「機械を理解するには言葉を読めるようになる」と即座に判断 2 限られた情報から正確な変換ロジックを構築 3 チーム全体の前進を可能にする「足がかり」を提供

まず、当時(1970年代)はインターネットがありませんでした。機械の命令セット(どんな命令があるか)を調べるには、分厚いマニュアルを探し出すしかありません。Googleで「この機械のオペコードは何か」と検索する、なんてことはできなかったのです。

そして最も重要なのは、問題の本質を見抜く洞察力です。ケンは「機械を理解するには、まずその言葉を読めるようになる必要がある」と即座に判断しました。これがディスアセンブラという基礎ツールの作成につながったのです。

多様な分野での創造力

ケンの才能はコンピューターシステムだけに留まりませんでした。

多様な分野での創造力 ケンの才能はコンピューターシステムに留まらない チェスプログラム 世界初マスターレベル チェスコンピューター CADツール 設計支援ソフト 開発に貢献 音楽プレーヤー MP3類似技術による 携帯音楽機器 学際的な思考 廊下の向こうの音声符号化専門家と話すだけで ウォークマン類似の音楽プレーヤーを実現 一つの分野の知識を他分野に応用する柔軟性が革新を生む 現代でも重要:専門性と学際性のバランス

チェスプログラムでは、世界初のマスターレベルのチェスコンピューターを作りました。CADツール(設計支援ソフト)の開発にも関わります。さらに、誰よりも早くMP3のような音声圧縮技術を使った携帯音楽プレーヤーを作りました。これはソニーのウォークマンのような製品でしたが、廊下の向こうにいた音声符号化の専門家と話をするだけで実現したのです。

現代に通じる本質

現在、AIツールが普及し、プログラミングの方法は大きく変わりつつあります。しかし、ケンの問題解決アプローチには変わらない価値があります。

現代に通じる本質 AIツール普及時代のプログラミング 方法は変わっても、ケンの問題解決アプローチには変わらない価値 問題の本質を見抜く 表面的対処ではなく 根本問題を特定 基礎ツールの重要性 適切な道具があれば 複雑な問題も解決可能 学際的思考 一分野の知識を 他分野に応用する柔軟性 現代エンジニアが学ぶべきこと 「まず何が必要か」を見極める力 根本的な問題解決の姿勢
  • 第一に、問題の本質を見抜く力です。
    表面的な課題に対処するのではなく、根本的な問題を特定する。
  • 第二に、基礎ツールの重要性を理解することです。
    複雑な問題は、適切な道具があれば解決可能になります。
  • 第三に、学際的な思考です。
    一つの分野の知識を他の分野に応用する柔軟性が、革新を生み出します。

プログラミングの真の面白さ

ケンの事例が示すのは、プログラミングが単なる技術的作業ではないということです。それは創造的な問題解決の芸術であり、制約の中で最適解を見つける知的ゲームです。

数時間でディスアセンブラを作る。一見地味な作業に思えるかもしれません。しかし、そこには深い洞察と創造力が込められています。限られた情報から本質を掴み、適切なツールを設計し、チーム全体の前進を可能にする。これこそがプログラミングの醍醐味なのです。

ケン・トンプソンの天才性は、技術力だけではありません。問題を正しく理解し、最適なアプローチを選択し、それを素早く実行に移す総合的な能力です。現代のエンジニアが学ぶべきは、この根本的な問題解決の姿勢かもしれません。


  1. Ken Thompson – Wikipedia – UNIX開発者ケン・トンプソンの生涯と業績についての包括的な情報
  2. Kenneth Lane Thompson – A.M. Turing Award Laureate – ACM公式によるチューリング賞受賞歴とUNIX開発の詳細な経緯
  3. Brian Kernighan – Wikipedia – C言語の共同開発者ブライアン・カーニハンの経歴とベル研での活動
  4. Wisdom from 50+ years in software featuring Brian Kernighan – カーニハンのインタビューでケン・トンプソンの天才性について語った内容を含む
  5. Disassembler – Wikipedia – ディスアセンブラの技術的定義と仕組みの詳細説明
  6. Ken Thompson │ The National Inventors Hall of Fame® – 国立発明家殿堂による公式の業績評価とUNIXの影響についての解説
  7. Kenneth L. Thompson – National Science and Technology Medals Foundation – 米国国家技術革新メダル受賞時の公式評価と貢献内容