第2部 第4章 PC-9801に誰が魂を吹き込むか |
1982 悪夢の迷宮、互換ベーシックの開発 |
古山、OSと出合い、戸惑う
富田倫生
2010/4/19
本連載を初めて読む人へ:先行き不透明な時代をITエンジニアとして生き抜くためには、何が必要なのでしょうか。それを学ぶ1つの手段として、わたしたちはIT業界で活躍してきた人々の偉業を知ることが有効だと考えます。本連載では、日本のパソコン業界黎明期に活躍したさまざまなヒーローを取り上げています。普段は触れる機会の少ない日本のIT業界の歴史を知り、より誇りを持って仕事に取り組む一助としていただければ幸いです。(編集部) |
本連載は『パソコン創世記』の著者である富田倫生氏の許可を得て公開しています。「青空文庫」版のテキストファイル(2003年1月16日最終更新)が底本です。「青空文庫収録ファイルの取り扱い規準」に則り、表記の一部を@ITの校正ルールに沿って直しています。例)全角英数字⇒半角英数字、コンピューター⇒コンピュータ など |
「アメリカではソフト開発に、自動プログラミングという手法が使われているらしい」と教えてくれたのは、上司の金田弘だった。
エンジニアライフ コラムニスト募集中! |
あなたも@ITでコラムを書いてみないか 自分のスキル・キャリアの棚卸し、勉強会のレポート、 プロとしてのアドバイス……書くことは無限にある! コードもコラムも書けるエンジニアになりたい挑戦者からの応募、絶賛受付中 |
NEAC-2203が手本にしていたIBMの650には、フォートランという英語の構文に近いプログラミング言語で書いたソフトウエアを、自動的に機械語に変換してくれるコンパイラーが用意されていた。このマニュアルを入手して勉強してみると、確かに機械語で書くよりはプログラミングが容易になると実感できた。「自動プログラミング」という名称にも納得がいった。これを参考に、古山は半年ほどかけて、フォートランとアルゴルをごちゃ混ぜにしたような言語のコンパイラーをNEAC-2203用に作ってみた。
それまでプログラムというものは、与えられたメモリー容量に収めるために削りに削って書き、ともかく目的の計算処理がやれればいいとだけ考えてきた。だが高級言語を学んでみると、開発効率や保守という観点もプログラミングにとって意味を持ってくるのだと実感できた。もしもハードウエアの側がより大きなメモリー空間を与えてくれるのなら、高級言語を使えば作業はより効率的になり、プログラムの変更や修正は確かに楽になるはずだった★。
★古山良ニが2203用にコンパイラーを書き、NARCと名付けた当時の状況は、前出の『日本のコンピュータの歴史』第3部、第4章「日本電気」に以下のように記述されている。 「当時は現在のようなオペレーティングシステムの概念はまだなく、業務プログラムの開発がそれ専用のオペレーティングシステムの開発を含んでいたといえよう。使用者はイニシャルプログラムを使用して機械語でプログラムを作っており、逐次標準サブルーチンが拡充されていった。一方、小規模ながらアセンブラやコンパイラの開発もはじまっていた。SIP(シンボリックインプットプログラム)は、電子工業振興協会で森口繁一(東京大学)の指導で共通仕様がまとめられ、刑部政司がNEAC2203用を開発した。また古山良ニは科学計算用のコンパイラNARCを開発したが、これは我が国最初の商用コンパイラであった。このほかNEAC2203には2パスアセンブラも開発されたが、これらのアセンブラやコンパイラは磁気ドラム2000語、紙テープ入出力装置という基本構成をもとに開発されたため、目的プログラムを得るのに時間がかかりすぎ、大部分の使用者は機械語でプログラムを作ったものである」 筆者の目の前のマシンは32Mバイトのメモリーを備え、2Gバイトのハードディスクがつながっている。なんだかどうも、申し訳がない。 |
1962(昭和37)年に日本電気とハネウェルの提携が本決まりとなる直前、古山は研修のためにボストンに赴いた。
OSの役割をはっきりと意識したのは、ハネウェルのマシンを支えるソフトウエアの体系について3カ月かけて学んだこのときだった。
それまではハードウエアが与えてくれる小さな空間に仕事をこなすプログラムをかろうじて押し込んでいた。ところが、ハネウェルでは入出力のコントロールやファイルの管理を一括してになうOSが、別個に確立されていた。さまざまな仕事で頻繁に使われるユーティリティーやプログラミング言語は、みなOSの上で使う形で整えられていた。
コンピュータの基本的な動作を受け持つ部分をまとめて基本システムとして用意しておくことには、目を開かれるような新鮮さを感じた。
こうしておけばこれまでのように、1つ1つのプログラムで基本的な動作にかかわるところまで、いちいちそのたびごとにカバーする必要はなくなる。基本システムをひとまとめにして読み込むとなればメモリーに対する要求はますます大きくなるが、ハードウエアが許してくれるのなら、こうした手法がより合理的であることは間違いなかった。
ただし方向付けとしては正しいと分かってはいても、OSの世界には戸惑いを感じさせる要素もあった。
基本ソフトウエアなどほとんど存在しない機械語のみの時代があり、言語がその役割の一部をにないはじめ、そしてOSが確立されようとしている。こうした流れに沿って基本ソフトウエアの規模が拡大するにつれ、開発作業もまたどんどん膨らみ、ハネウェルでは多くの要員が1つの仕事にかかわるようになっていた。作業の肥大化が、混乱と開発効率の低下につながることを恐れたハネウェルでは、OSを小さなモジュール単位に切り分けてそれぞれの担当者に割り振っていた。日本電気では、ソフトウエアのことは古山にたずねれば何から何まで解決がついた。だがハネウェルのスタッフに質問すると、自分の担当分に関しては答えることができても、その他の内容に関してはまったく答えられなかった。「これでどうして、あんなに大きな規模のOSを組み上げることができるのか」と胸に浮かび上がってきた疑問は、全体の構成と個々のモジュールのつなぎ目だけを定義する担当がまた別に存在するのだと知ってはじめて氷解した。
これだけ規模の大きなOSを開発するには、作業を厳密に分担していくことが不可欠なのだと頭では理解できた。その一方で、1つ1つのソフトウエアに関して何から何までを1人でこなしてきた古山にとって、分業システムの徹底にはどこか寂しさを感じさせるところがあった。
» @IT自分戦略研究所 トップページへ |
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。