微软通过一篇博客文章宣布开放 GW-BASIC 的源代码。并表示,自从 MS-DOS 1.25 和 2.0 开源后,社区中要求同样开源 BASIC 语言的呼声颇高。因此微软选择将 1983 年以来的 8088 汇编语言开源出来,但仅作历史参考和教育用途,不再接收任何修改源码的拉取请求。
GW-BASIC 是 BASIC 的一个方言版本,诞生于 1983 年 2 月 10 日,作为 MS-DOS 的一个组成部分而问世。根据微软的介绍,它是从 IBM Advanced BASIC/BASICA 衍生而来的 BASIC 解释器,本身也是 Microsoft BASIC 的端口。
GW-BASIC 和微软提供给 IBM PC 的 BASICA 完全兼容,不同的是,后者依赖于 ROM 中的 BASIC 解释器,而前者并不需要。所以,GW-BASIC 能在众多 IBM PC 兼容机器上运行。在 70 和 80 年代后期,BASIC 被移植到许多 OEM 平台上,并适应了当时流行的几种处理器,包括 8088、6502、6809,Z80 等。
就像那个年代的所有其他软件(例如 MS-DOS)一样,GW-BASIC 的源代码 100% 由汇编语言编写而成 。微软解释,当时也可以选择 FORTRAN、LISP、COBOL、RPG、CPL/BCPL 和 C 等高级语言,然而这类语言的编译器比较昂贵,代码生成效率也不高,还受空间和性能限制,不适合家用或个人计算机。并且在早期编写 PC 软件时,每个字节、每条指令都需要为内存做考虑,汇编语言是不二之选。
迄今为止,微软已经发布了各种 BASIC 实现方案,其历史可以追溯到比尔·盖茨和保罗·艾伦在微软发布的第一款产品,即用于 Altair 8800 的 BASIC 解释器。
不少人希望 808x 以外的处理器的实现也能够开源,不过微软表示,目前无法提供这些资源。
转自 https://www.oschina.net/news/115918/microsoft-open-sources-gw-basic