
| FreeBASIC | |
|---|---|
![]() |
|
| 过程 / 面向对象 | |
|
面市時間
|
2004 |
|
设计者
|
Andre Victor |
|
实作者
|
The FreeBASIC Development Team |
| 最近释出日期 | 0.20.0 Beta/ 2008年8月10日 (2008-08-10);114天前 |
| 静态 | |
|
启发语言
|
QuickBASIC, C |
| DOS, Linux, Microsoft Windows | |
| GNU GPL, Standard libraries licensed under the GNU LGPL | |
| http://www.freebasic.net | |
FreeBASIC是一个自由/开源(GPL)的32位BASIC编译器[1],可运行在Microsoft Windows、保护模式的DOS(DOS扩展)、Linux以及Xbox上。
FreeBASIC通过使用"QB"关键字可以在高级别上支持用QBASIC编写的程序。许多用QBASIC写的程序可以在不需任何修改的情况下编译和运行在这个模式下。但是如果使用默认的参数来编译的话,大部分的程序还是要进行一些修改的。
目录 |
FreeBASIC是一个自托管编译器,源代码(编译器内核,不包括库)大概有12万行。
它使用GNU Binutils软件开发工具作为后端,除了动态和静态库,还可以制作控制台和图形/GUI可执行文件。FreeBASIC完全支持C库和部分C++库。这使得程序员可以使用和创建C和许多其他语言的库。
FreeBASIC还不是一个优化编译器,但是它的速度被认为接近主流工具,如GCC[2]。
FreeBASIC语法试图尽量保持接近BASIC语法,特别是QuickBASIC。虽然语法上试图保持与其前辈一致,FreeBASIC还是遵循了一些现代的标准和编码实现。具有标准的过程特性以及面向对象特性,如对象、运算符重载、函数重载和命名空间等等,已经被加入到FreeBASIC中。
FreeBASIC的行在遇到行尾字符或冒号时结束。因此不需要使用特殊字符(如C语言中的分号)来通知编译器此行结束。多条语句可以通过冒号:分割写在一行里。
FreeBASIC支持块注释和行尾注释。整行注释使用一个撇号',块注释从/'开始,到'/结束。
FreeBASIC继承自QuickBASIC[1]。为了使FreeBASIC与现代的工具兼容并且具有高级编程特性,在开发FreeBASIC的时候还是进行了一些修改的。而-lang选项的设置使得FreeBASIC编译器也能够适应GCC和QuickBASIC兼容语言。
- 当选择FB语言设置时(命令行参数为-lang fb),将开启所有的FreeBASIC新特性,并且不允许使用QuickBASIC的"hackish"特性(该特性不符合现代编程实践)。
- FB-Lite语言设置(-lang fblite)提供了访问大多数FreeBASIC中新的非面向对象的特性,但是允许使用与老版本BASIC类似的代码风格。语法规则,如允许隐变量、后缀、GOSUB / RETURN、行号等等。
- QB语言设置(-lang qb)与-lang fblite类似,但是它更专注于复制QBASIC式的行为。-lang qb被设计用来使为QBASIC写的程序能够更容易地运行,在有的情况下-lang fblite的兼容性不够好,这时-lang qb就会很有用。
和QBasic一样,在屏幕上写入一行文本的程序可以写成如下的简单语句:
print "Hello, World!"
FreeBASIC拥有一个内置的2D软件图形库,与QuickBASIC兼容,为用户提供了简单的图形元素(如矩形,线和圆), has a built-in 2D, software graphics library to be QuickBASIC compatible, which provides the user with simple graphics primitives (such as rectangles, lines, and circles)、位块传输以及一些QuickBASIC的图形库中没有的附加特性。图形库本身并不依赖于操作系统,因此可以跨平台使用。
虽然图形库是内置的,但是只有在选择使用时才会被包含,这可以简单地通过调用FBgfx Screen命令来实现。通用库(如OpenGL+)为了硬件加速使用API(Windows、Linux等)来创建一个窗口可以不包含FreeBASIC的图形库。
FreeBASIC仍然继续开发,目标是成为一个GCC前端[3],这将带来许多C++和其他面向对象编程语言中的新特性,高级优化技术,以及可以移植到任何现代系统上的能力。
0.17版中已经加入了面向对象程序设计的类,扩展了基本的数据类型。还有更多的新特性值得期待。
|
查 • 论 • 编 • 历
|
|
|---|---|
| 传统 | Atari BASIC ·Atari ST BASIC ·Dartmouth BASIC ·GW-BASIC ·Microsoft BASICA ·MSX BASIC ·Turbo-Basic XL ·UBasic ·Vilnius BASIC ·HP BASIC for OpenVMS |
| 面向过程 | BBC BASIC ·Liberty BASIC ·PowerBASIC ·PureBasic ·QBasic ·QuickBASIC ·True BASIC ·Turbo Basic ·XBasic ·Xblite ·Small Basic |
| 带有对象扩展 | FreeBASIC ·Gambas ·RapidQ ·REALbasic ·StarOffice Basic ·Visual Basic ·Visual Basic .NET |
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History