欢迎来到FreeBASIC

FreeBASIC是一个免费/开源(GPL)的BASIC语言编译器,可用于Microsoft Windows,DOS和Linux。

在“QB”语言模式下使用时,FreeBASIC为QuickBASIC编写的程序提供高级别的支持。 为QuickBASIC编写的许多程序将编译和运行在此模式下不需要更改。 但是,为了在FreeBASIC默认语言模式下进行编译,大多数重要的程序都需要更改。

  • 兼容非常好
  • 功能很强大
  • 扩展性优秀
  • 100% 免费软件
程序的简单示例。
  1. function AddNumbers( a as integer, b as integer ) as integer
  2.         return a + b
  3. end function
  4.  
  5. sub hello( )
  6.         print "hello"
  7. end sub
  8.  
  9. declare sub myprint( num as integer )
  10.  
  11. '程序之外的代码是程序的主要部分
  12. hello( )
  13. print AddNumbers( 1, 1 )
  14. myprint 5
  15.  
  16. sub myprint( num as integer )
  17.         print num
  18. end sub

FreeBASIC是一个自承载编译器,它使用GNU binutils编程工具作为后端,并可以生成控制台,图形/ GUI可执行文件,动态和静态库。 FreeBASIC完全支持C库的使用,并有部分C ++库支持。 这让程序员可以使用C语言和其他语言创建库。 它支持C风格的预处理器,能够进行多行宏,条件编译和文件包含。

FreeBASIC已经与主流工具(如GCC)进行了紧密的合作。


更多关于FreeBASIC

FreeBASIC项目是一套跨平台开发工具,由一个编译器,基于GNU的汇编器,链接器和存档器以及支持的运行时库(包括一个基于软件的图形库)组成。 编译器fbc目前支持在DOS,Linux,Windows和Xbox平台上构建基于i386的体系结构。 该项目还包含一些流行的第三方库(如C运行时库,Allegro,SDL,OpenGL,GTK +,Windows API等)以及许多这些库的示例程序的精简绑定(头文件)。

FreeBASIC是一种高级编程语言,支持程序,面向对象和元编程范例,语法与Microsoft QuickBASIC兼容。 事实上,FreeBASIC项目最初是为了创建一个与Microsoft QuickBASIC兼容的,代替代码的尝试,但它已经发展成为一个强大的开发工具。 可以看到FreeBASIC以多种方式扩展了Microsoft QuickBASIC的功能,支持更多的数据类型,语言结构,编程风格以及现代平台和API。

任何类型的程序都可以使用FreeBASIC编写,请参阅我们的应用程序库以获取一些值得注意的示例。

继续阅读有关FreeBASIC

FreeBASIC 可视化IDE 及中文汉化

FreeBASIC 只是个编译器,我们需要个简单方便的 IDE,目前最好可视化IDE是 FireFly ,其次是 FbEdit 纯代码编辑器。 QQ截图20161111194323.png QQ截图20161111200313.png

勇芳软件工作室 将FireFly 汉化并且修改BUG、增强大量功能,以及收集了大量有关FB资料,需要学习FB及下载IDE ,可以加QQ群:78458582 (Basic编程学习资料) ,里面还有全套的FB帮助汉化。

主要特点

兼容BASIC、语法简洁、跨平台、支持Unicode、64位软件、大量内置数据类型、用户定义类型、内联汇编、支持调试、代码优化、可创建OBJ、LIB、DLL和控制台或 GUI EXE、支持预处理

BASIC兼容性

FreeBASIC不是一种“新”的BASIC语言。 如果您熟悉任何Microsoft-BASIC变体,则不需要学习太多新知识。 你可以使用“-lang qb”来兼容,或者使用(默认)“-lang fb”来获得一些新的功能,但是它也带来了一些限制和与“C”编程语言的一些相似之处。 FreeBASIC不区分大小写; 明确的“主”程序是不需要的; Microsoft QuickBASIC中的大部分图形和控制台语句和过程都已实现,等等。 只有使用“-lang qb”:标量变量不需要进行标注,并且可以使用后缀; 行号支持; 在错误和Gosub支持。

简洁的语法

只添加了少量的关键字。 所有的程序都是以库的形式实现的,所以大部分程序都没有新的内部函数,因此与旧代码重名的可能性很小。

将绑定(头文件)精简到现有的C库和API

不需要包装器或帮助器,只是一个移植的头文件,使得使用外部C库非常容易。 官方发行版中已经包含了一些与现有C库的绑定,请参阅外部库以获取完整的最新列表。

跨平台

FreeBASIC目前运行在64/32位Windows,Linux和DOS上(虽然FreeBASIC本身和编译器输出是32位,但16位DOS已经足够好了),并且还为Xbox控制台创建了应用程序。 更多的平台来。 运行时库在编写时考虑到了可移植性。 所有使用的第三方工具已经存在于大多数操作系统上,因为它们来自于GNU binutils。 编译器是用100%的FreeBASIC代码编写的(也就是FreeBASIC自己编译的),这样可以很容易地引导,因为它不依赖于非可移植的工具。

支持Unicode

除了具有Unicode转义序列(\ u)的ASCII文件外,FreeBASIC可以解析UTF-8,UTF-16LE,UTF-16BE,UTF-32LE和UTF-32BE源文件(.bas)或头文件(.bi) 与其他来源/标题在同一个项目(也与其他ASCII文件)自由混合。 文字字符串可以用原始的非拉丁字母输入,只需使用支持上面列出的一些Unicode格式的文本编辑器即可。 Wstring类型包含宽字符,所有字符串过程(如Left,Trim等)也可以使用宽字符串。 Open被扩展为支持使用Encoding说明符的UTF-8,UTF-16LE和UTF-32LE文件。 输入#和行输入#以及打印#和写#可以正常使用,如果需要,Unicode到ASCII之间的任何转换都会自动完成。 打印也支持Unicode输出(请参阅要求)。

大量的内置数据类型

用户定义类型(UDT)

无限的嵌套。 支持BASIC的Type语句,以及新的Union声明(包括匿名嵌套联合)。 可以使用多达八个维度的阵列字段。 过程指针字段。 位字段。 枚举(枚举)使用Enum轻松声明具有连续值的常量列表。 数组支持固定长度和可变长度的阵列,最大可达2 GB。 多达八个维度,包括具有未知维度的数组。 任何下限和上限。 元素数据可以在使用新的Preserve说明符的Redim大小的可变长度数组期间保留。 指向上面列出的任何数据类型,包括字符串,数组元素和UDT。 使用与C.无限间接级别相同的语法(例如,指向指向...的指针)。 过程指针。 索引[](包括字符串索引)。 类型铸造。 变量,对象和数组初始化对于静态,模块级或局部变量,数组和UDT。

默认的程序参数值

用于数字,字符串和UDT参数类型。 过程重载包含具有默认参数值的过程。

内联汇编Intel语法

直接按名称引用变量; 没有“特技码”需要。

传统的预处理器支持

与C语言相同。使用#Define命令支持的单行宏,包括参数。 用#Macro命令支持的多行宏。 类型别名支持与C一样的前向引用,包括UDT和过程指针类型。 字符串文字的类似C的转义序列与C相同(除了数字被解释为十进制,而不是八进制)。

支持调试

GDB(GNU调试器)或Insight(GDB GUI前端)提供完整的调试支持。 数组边界检查(仅由-exx命令行选项启用)。 空指针检查(与上面相同)。

创建OBJ、LIB、DLL和控制台或 GUI EXE

您绝不会锁定到IDE或任何类型的编辑器。 您可以创建添加一个命令行选项(-lib或-dylib / -dll)的静态和动态/共享库。 作为32位应用程序,FreeBASIC可以编译最多2 GB的源代码文件。 符号的数量(变量,常数等)仅受编译时可用的总内存的限制。 (例如,您可以在源代码中同时包含OpenGL,GTK / SDL,BASS。)

生成优化的代码

虽然FreeBASIC不是一个优化的编译器,但是它可以在x86 CPU上产生尽可能快的代码,并且不会丢失到其他BASIC替代品,包括商业版本。 完全免费所有第三方工具也是免费的。 没有使用任何遗弃的或受版权保护的软件(除了Win32上的GoRC)。 汇编器,链接器,存档器和其他命令行应用程序来自GNU binutils编程工具。