Skip to content

FreeBASIC 与 QBasic


FreeBASIC 的继承者身份

FreeBASIC 被设计为 MS-DOS 高级编译器"QuickBASIC"的官方继承者,该编译器编译 BASIC 代码,这是一种由 John Kemeny 和 Thomas Kurtz 于 1964 年创建的易于阅读的编程语言。"QB"附带了一个用户友好的 IDE 和解释器,使编写自定义应用程序变得非常容易。这一系列产品今天以"Visual Basic"的形式正式延续,作为微软 Visual Studio .NET 编程套件的一部分。

微软与 BASIC 产品

微软与 BASIC 的渊源远早于 QuickBASIC。事实上,微软的第一个产品是 1975 年为 Altair 计算机发布的小型 BASIC 解释器,直到 1980 年代初,微软仅以语言供应商而著称。他们将 BASIC 软件移植到当时的几款不同个人计算机上,并以此获得了不错的收益。

1981 年 8 月,微软发布了 BASIC 系列的下一个重大版本——"高级 BASIC",作为 IBM PC-DOS 委托开发的一部分,通常以其可执行文件名 BASICA.EXE 来称呼。对于微软的新 MS-DOS,他们发布了 GW-BASIC,这基本上是 BASICA 的移植版本,不需要 IBM 系统附带的 Basic ROM。

BASICA 和 GW-BASIC 是解释器。解释器读取源代码并在读取时将其"解释"为计算机代码。这很有用,但速度较慢。1983 年,微软为 MS-DOS 发布了 BASCOM。BASCOM 将 BASIC 代码编译为原生机器码,运行速度比解释执行快得多。1985 年,BASCOM 被重新包装为附带 IDE 的 QuickBASIC。

QuickBASIC

从 1985 年到 1992 年,QuickBASIC 是微软发布的主要 BASIC 产品,使用 BASCOM,后来使用 Microsoft BASIC 编译器。1991 年,一个经过精简的解释器——常被认为是缺失的"QuickBASIC 5.0"——随 MS-DOS 5.0 附带发布,名为"QBasic 1.1"。

作为一种 BASIC 方言,QuickBASIC 为现代 BASIC 编译器提供了一个宽泛的标准。它取消了早期 BASIC 解释器中行号的需要,区分大小写,并使用英文关键字。QuickBASIC 还提供了一个运行时库,这个库默认编译并可在源代码中使用,包含许多有用的命令。

1991 年,微软将 1988 年制作的拖放式 GUI 设计器"Ruby"与 QuickBASIC 结合。这款产品被称为"Visual Basic",标志着 QuickBASIC 走向终结的开始。1992 年,微软发布了 QuickBASIC 的最后一个版本——"Visual Basic for DOS",此后永久停产。

互联网与 QBasic 的第二春

由于"QBasic 1.1"解释器随 MS-DOS 附带,它随着每一份 DOS 发行直到其最后时期、Windows 3.1,甚至 Windows 95、98 和 ME 一同发布。随着 Windows 的巨大成功,QBasic 成为 Microsoft 操作系统上使用最广泛的编程工具。

当万维网在 1990 年代中期流行起来时,许多业余程序员建立了专注于 QuickBASIC 的网站,不是将其作为应用工具,而是作为演示和游戏的平台。微软停止支持后,大量汇编库为其创建,随着这些演示和游戏变得越来越复杂,"QB 社区"也越来越壮大。从 1990 年代中期,经过新千年,一直到今天,QuickBASIC 一直拥有着小但持续的追随者群体。

FreeBASIC 的创建者 Andre Victor,最初在互联网上以 QuickBASIC 扩展库的作者著称。他创建了提高浮点运算速度、访问互联网、使用 SVGA 图形以及提供强大 QBasic 语言编程功能的例程。2004 年夏末,他开始使用 Visual Basic for DOS 着手开发一个 32 位编译器。

FreeBASIC 的诞生

FreeBASIC 最初用 VB-DOS 编写,目标是能够编译自身。正因如此,其语法和运行时库都被设计为在 32 位 Windows 环境中尽可能模拟 QB 的语法和运行时。在大多数情况下,两种方言非常相似,大多数代码只需少量或无需修改即可移植,但在某些情况下,依赖于 16 位 DOS 的例程需要重写。由此产生的编译器与 QB 的相似度比市场上任何编译器都高,包括 Visual Basic。

由于其开源性、良好的代码质量以及与 QB 的相似性,FreeBASIC 在"QB 社区"中越来越受欢迎,随着它获得更多关注并不断增添新特性,其边界也在不断扩展,有望将 BASIC 带入未来。

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系