Microsoftは、「Microsoft GW-BASIC」をオープンソースとして公開した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2020年5月21日(米国時間)、「Microsoft GW-BASIC」をGitHubでオープンソースとして公開したと発表した。2019年に「MS-DOS 1.25」「MS-DOS 2.0」をオープンソース化して以来「Microsoft BASIC」のオープンソース化を求める声が多数寄せられたため、この要望に対応したとしている。
今回公開されたソースコードは、Intel 8088プロセッサ用GW-BASICの1983年2月10日付のソースコードで、アセンブリ言語で記述されている。Microsoftは、歴史的な参考資料として教育目的で公開したとしており、ソースコードを変更するプルリクエストは受け付けていない。
GW-BASICは、IBMのAdvanced BASIC/BASICAをベースにしたBASICインタープリタ。Advanced BASIC/BASICAは、Microsoft BASICを移植したものだ。
MicrosoftのさまざまなBASIC実装は、ビル・ゲイツ氏とポール・アレン氏が実装したMicrosoft初の製品であるAltair 8800コンピュータ用BASICインタープリタにさかのぼる。
1970年代後半から80年代にかけてMicrosoftのBASICは、さまざまなOEMの特定のプラットフォームおよびハードウェアニーズに応じて、8088、6502(MOS Technology)、MC6809(Motorola)、Z80(Zilog)といった当時普及していたプロセッサに移植された。
MicrosoftはGW-BASICのオープンソース化についてFAQでも説明している。その概要は以下の通り。
Q.C言語のソースコードはないのか。
A.1970〜80年代の多くのソフトウェア(MS-DOSを含む)と同様に、GW-BASICのソースコードは全てアセンブリ言語で記述されている。
Q.なぜアセンブリ言語なのか。なぜ開発者はCやPascalのような高級言語を使わなかったのか。
A.当時のメインフレームやミニコンピュータ上で、あるいはそれらをターゲットに開発を行う場合は、FORTRAN、LISP、COBOL、RPG、CPL/BCPL、Cなどの高級言語を使える場合もあった。だが、こうした言語のコンパイラは極めて高価な場合が多く、効率的なコードを生成することはめったになかった。また通常、当時のホームコンピュータやパーソナルコンピュータでは、容量や性能の制約から使えなかった。
そこで開発者は、初期のPC向けソフトウェアを作成する際、ソフトウェアを使用可能なメモリで動かせるサイズに収める目的と、コンピュータのリソースおよび内部機構にアクセスする目的のために、コード全体をアセンブリ言語で記述することが多かった。
こうしたことから、GW-BASICのソースコードは全て純粋なアセンブリコードとなっている。これらはコア/マスターソースから、プロセッサ/マシンごとにトランスレーターで変換された。
Copyright © ITmedia, Inc. All Rights Reserved.