- マイクロソフトの50年にわたる革新は Altair BASICのコード から始まった
- Office、Windows 95、Xbox、AIよりも前に存在した最初の製品
- このコードがパーソナルコンピューター時代を切り開き、マイクロソフト成長の基盤となった
私が書いた中で最もクールなコード
- 1975年、Bill GatesとPaul Allenは「すべての机と家庭にコンピューターを」というビジョンのもとMicrosoftを創業した
- マイクロソフトが50年を迎えられたのは、Steve Ballmer、Satya Nadellaのような優れたリーダーと数多くの社員の功績によるところが大きい
- Gatesはこの記念すべき瞬間を迎え、喜びと同時に名残惜しさも感じた
- ハーバードのPDP-10の前でコーディングしていたあの頃が、つい昨日のことのように感じられる
- マイクロソフトの始まりは、1975年に Popular Electronics誌の表紙 で見た Altair 8800コンピューター だった
- AltairはMITSという小規模な電子機器会社が作ったキット型PCで、当時としては革新的な製品だった
- 雑誌を見た瞬間、GatesとAllenはPC革命が近づいていると直感し、その流れに加わることを決意した
BASICコードを書くと決めたきっかけ
- 2人は学生時代、Lakeside校でコンピューターに魅了された
- Altairが一般の人々にもプログラミングの機会を与えられることに感銘を受けた
- GatesとAllenはAltair向けBASIC言語を開発したと、先にMITSへ提案した
- しかし実際には まだ存在すらしていないソフトウェアだった ため、自分たちで作る必要があった
BASIC言語の基本概念
- BASICは1964年、ダートマス大学の2人の教授が作った初心者向けプログラミング言語
- コンピューター経験がまったくない人でも、短い学習だけで自分でプログラムを作れるよう設計されていた
- GatesとAllenが最初に学んだプログラミング言語であり、現在でも使われている
- BASICは英語のように コンピューターに作業を指示する言語 で、命令の実行、数学の問題の解決、機能の実行などを可能にする
BASICをコンピューターに理解させる方法
- 問題は、コンピューターがBASICを理解できないことだった
- GatesとAllenは、BASICコードをコンピューター命令へ 1行ずつ翻訳して実行するインタープリター(Interpreter) を作ることに決めた
- リアルタイムのフィードバックを提供し、初心者がエラーをすばやく修正できる利点があった
- プログラム全体を一度に翻訳する コンパイラー(Compiler) 方式も検討したが、初心者に優しいインタープリター方式のほうが適していると判断した
開発の開始
- 当時はAltairに使われていた Intel 8080チップ がなかったため、PaulはハーバードのPDP-10上でそのチップを エミュレーション するプログラムを開発した
- Gatesはインタープリターのメインコードを書き、友人のMonte Davidoffは 数学演算モジュール を担当した
- この3人は2か月間昼夜を問わず作業し、実在しなかったソフトウェアを完成させた
メモリ制約の克服
- 当時のコンピューターメモリは非常に高価で、Altairにメモリを追加すると費用がPC本体の価格を上回ることもありえた
- BASICインタープリターを 4KB以内で実装 することが目標だった
- そうすることで、ユーザーは自分自身のプログラムを実行するためのメモリを確保できた
- Gatesはさまざまな メモリ最適化技法 を使ってこの目標を達成した
マイクロソフトの誕生
- 幾度もの徹夜作業の末に完成したBASICインタープリターを、MITSの代表Ed Robertsにデモした
- デモは成功し、MITSはこのソフトウェアの ライセンスを購入 した
- この成功により、Altair BASICはマイクロソフトの最初の製品となり、Micro-Soft という社名が生まれた(のちにハイフンは削除された)
- この1つのコードが、その後50年にわたって続くマイクロソフトのあらゆる革新の出発点となった
- より詳しい話は回顧録 Source Code で確認できる
ソースコードのダウンロード
- マイクロソフトの出発点となった Altair BASICのオリジナルソースコード を直接確認できる
- 過去50年間でプログラミングがどれほど発展したかを示す歴史的資料であり、Gatesはこのコードに今なお大きな誇りを感じている
ソースコードをダウンロード (PDF)
2件のコメント
MicrosoftがOEMとして供給した6502向けBASICのソースコード(Apple II、Commodore など)が、ビルド可能な状態に復元(?)されています。
https://github.com/mist64/msbasic
自作の6502 SBCを作って、そこにMSBASICをポーティングするケースもかなり多いですね。
https://github.com/beneater/msbasic
感心しているだけでもいいですが、実際に飛び込んでみるともっと面白いかもしれません… ;)
Hacker News の意見
%記号を入力しなければならない、というコメントがある