BASIC 简介
BASIC最初是作为一种组合的计算机语言和命令解释器实现的,由 J. Kemeny 和 T. Kurtz 于 1964 年在达特茅斯学院发明。它是让大量社区(在本例中是达特茅斯学院)能够使用分时计算机访问的项目的重要组成部分。它最初是在 GE 225 计算机上实现的。BASIC 将编程和计算机控制结合到一个界面中。
该语言是一组简单的变量赋值、控制流和数据处理。它的设计目的是比Fortran更容易被大多数用户使用,但令人惊讶的是,达特茅斯版本包含了矩阵运算,而这些运算在大多数其他实现中并不存在。计算机控制允许用户执行简单的命令,如文件保存和加载以及程序启动和停止。
由于 BASIC 可以解释,并且可以以较小的解释器实现或多或少有用的变体,因此它成为最早的微型计算机的高级语言的理想选择。BASIC 解释器通常被烧录到 ROM 中,而 ROM 的大小有限(在可承受的价格范围内)到 2KB 或 4KB。Apple 在 Apple II 上的 ROM 中提供了其 IntegerBASIC;微软最初是专门为各种计算机供应商提供 ROMed BASIC 的专家,包括 Atari、Altair(最初的微软产品!)、Commodore(PET / VIC-20 / 64)、Radio Shack TRS-80 Model 1、2 等以及彩色计算机),甚至更晚的时候,IBM 也在最早的 PC 机型(即 BASICA)中提供了它。
由于许多这些早期机器上可用的 RAM 量非常有限,因此大多数 ROMed BASIC 的语法非常有限和简短,以便允许比玩具程序更复杂的程序适合安装的 RAM。不可避免地,这产生了不透明和晦涩的编程风格。例如,在大多数 Microsoft BASIC 中,注释行可以以单个“'”字符开头,而不是原来的“REM”,大多数命令可以缩写为第一个字母(“L”代表“LET”),变量名也可以类似地缩写,等等。
基于磁盘的 BASIC 版本最终也出现了(在软盘价格大幅下降之后),微软成为主要的供应商(例如,Apple II 的 Applesoft BASIC,CP/M-80 机器的 MBASIC,以及 COompaq 的 Graphic Workstation BASIC(GWBASIC),以及最终任何非 IBM PC 克隆机器。GWBASIC 旨在与 IBM PC 的 BASICA 兼容,因为没有一个 PC 克隆制造商被允许访问 ROM 版本;它最终也被实现为一个编译器,目前以多种形式提供,如 Visual BASIC。各种各样的替代方案在不同的时间出现,包括 Gordon Eubanks 的 CBASIC(最终被 Symantec 收购)、CP/M-80 机器的 NorthStar BASIC、Sinclair ZX80 的 QBASIC 及其基于 68000 的后续版本、基于 Motorola 6809 处理器的 FLEX、FLEX9 和 UNIflex 机器的大型、小型、解释型和编译/标记型 TSC BASIC,以及来自爱荷华州 Microware Systems 的 BASIC09,也适用于 6809 CPU。还有一些其他 BASIC,或者以其他名称命名的变体,在 1970 年到 1990 年之间为小型机市场(使用 12、16 甚至 32 位 CPU,价格在 10000 美元到 200000 美元之间)开发和销售。其中一些被用作数据库系统或业务管理软件的“接口”语言。其中一些至今仍在使用。各种 BASIC 也可用于来自 IBM、Burroughs、Univac 等等的大型主机系统。
BASIC 的“方言”和实现“风格”各有不同。一些 BASIC 将所有字符串变量存储为一个大型数组的一部分,另一些则没有;一些 BASIC 包含自动垃圾收集(例如,许多 Microsoft 变体),另一些则没有;等等。HP BASIC 是一个著名的“流派”,DEC BASIC 则是另一个。微软的“风格”,基本上属于 DEC 派别,到 1980 年代中期已成为几乎所有用户的实际标准风格。具有讽刺意味的是,Kemeny 和 Kurtz 决定提供他们语言的更新版本(TrueBASIC),但为时已晚 - 市场对它的需求很少。ANSI 最终开始了一个 BASIC 标准化项目,但决定不采用微软的实际标准。有一个 Minimal BASIC 标准,但它基本上被市场忽视了。
该语言最初是作为编译器实现的,但在 1980 年代,它的大多数实现都是解释器(当在另一个应用程序中使用时,Basic 通常用于脚本编写)。编译实现如今很常见(例如,Visual Basic)。
BASIC 的方言可以根据许多方面划分为许多不同的组,例如
- 它们的平台(Windows、Linux 等)
- 它们的用途(游戏、GUI 应用程序等)
- 它们是编译还是解释
一些方言
QuickBASIC:所有现代 BASIC 的起源。一些程序员已经为这种语言催生了一种狂热,因为互联网上提供了许多游戏和教程供使用。
FreeBASIC:QuickBASIC,编译。它具有更多现代功能,例如指针、64 字节类型以及对更大内存的支持。FreeBASIC 是推荐的,因为它是以下教程的标准方言。有关一些 FreeBASIC 教程,请参见BASIC 编程。
DarkBASIC:一个重要的商业 BASIC,它利用了 DirectX 库,非常适合快速编写游戏。
VisualBASIC:微软在 1990 年代初开发了这种 BASIC。说这是一种方言略有不准确,因为它与标准 BASIC 相比,代码差别很大,并且在商业用途上非常流行。Gambas 是一种类似的语言,被 Unix BASIC 程序员广泛使用。
BlitzMax,一种支持 OpenGL 的编译 BASIC 方言,用于在 Mac OS、Linux 和 Microsoft Windows 上编写图形游戏。
GLBasic 编程,一种支持 OpenGL 和内联 C++ 的编译 BASIC 方言,用于在 Widows、Linux、Mac OS X、iOS 和 Android 上编写图形游戏。
Monkey,一种来自 Blitz Research 的编译 BASIC 方言,用于 Windows、Mac OS X、Android、iOS 和 HTML5。
PBASIC 编程,由 Parallax BasicStamp 解释的 BASIC 方言。
TI-BASIC,由 TI 图形计算器解释的 BASIC 方言,显然在TI-Basic 84 编程、Talk:TI-Basic Z80 编程和TI-Basic 89 编程之间存在进一步的细微差异(?)。
REALbasic,显然也称为 Xojo。
XBasic,一种用于 Windows 和 Linux 的开源 GUI Basic,以及相关 (?) XBLite。
Gambas,一种面向对象的开源 BASIC 编程语言方言,适用于 Linux。有关温和的入门介绍,请参见从 Zip 编程 Gambas。