目录
- TIOBE Index for January 2023
- 概述
- 特点
- BASIC兼容性
- 干净的语法
- 多平台
- Unicode支持
- 大量内置数据类型
- 用户定义类型(UDT)
- 默认过程参数值
- 内联汇编Intel语法
- 传统的预处理器支持
- 调试支持
- 创建OBJ、LIB、DLL和控制台或GUI EXE
- 优化代码生成
- 下载安装
TIOBE Index for January 2023
2023年一月编程语言排行
python、C、C++上前三名不奇怪,java下滑非常正常。
让我惊讶的是basic在前20就占了2个。
所以有想法重新研究一下basic,百度了一下,看到了freebasic,于是就这个了
https://freebasic.net/
概述
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编写。
特点
BASIC兼容性
FreeBASIC不是一种“新的”BASIC语言。如果您熟悉任何Microsoft BASIC变体,则无需学习太多新知识。您可以使用“-lang-qb”来实现兼容性,或者(默认)使用“-lang fb”来实现某些新功能,但它也带来了一些限制,并且与“C”编程语言有些相似。FreeBASIC不区分大小写;不需要明确的“主要”程序;Microsoft QuickBASIC中的大多数图形和控制台语句和过程都是实现的。仅使用“-langqb”:标量变量不需要标注尺寸,可以使用后缀;支持行号;支持On Error和Gosub。
干净的语法
只添加了少量关键字。所有过程都作为库实现,因此在大多数情况下,没有新的内在例程,因此与旧代码名称重复的可能性很低。
现有C库和API的精简绑定(头文件)
不需要包装器或助手,只需要一个移植的头文件,就可以很容易地使用外部C库。官方发行版已经提供了几个到现有C库的绑定,有关完整的最新列表,请参阅外部库。
多平台
FreeBASIC目前在64/32位Windows、Linux和DOS上运行(16位DOS已经足够好了,尽管FreeBASIC本身和编译器输出都是32位),还可以为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被扩展为支持UTF-8、UTF-16LE和UTF-32LE文件以及编码说明符。输入#和行输入#以及打印#和写入#可以正常使用,如果需要,Unicode到ASCII之间的任何转换都会自动完成。打印还支持Unicode输出(请参阅要求)。
大量内置数据类型
整数:Byte、Ubyte、Short、Ushort、Integer、UInteger、Long、ULong、Longnt、Ulongint
浮点:单(32位)、双(64位)
字符串:固定、可变长度或以空结尾(Zstring),最多2GB长的Unicode字符串(Wstring),如Zstring,但支持宽字符。直接使用Windows Unicode API过程等。
用户定义类型(UDT)
无限嵌套。BASIC的Type语句与新的Union语句(包括匿名嵌套联合)一起受到支持。最多可使用八个维度的阵列字段。过程指针字段。位字段。枚举(enums)使用Enum轻松声明具有顺序值的常量列表。阵列支持固定长度和可变长度的阵列,大小可达2GB。最多八个维度,包括具有未知维度的数组。任何下限和上限。在使用Redim重新调整可变长度数组的大小期间,可以使用新的Preserve说明符来保留元素数据。指向上面列出的任何数据类型的指针,包括字符串字符、数组元素和UDT。使用与C相同的语法。无限间接级别(例如,指向…的指针)。过程指针。索引[](包括字符串索引)。类型铸造。变量、对象和数组初始化用于静态、模块级或局部变量、数组和UDT。
默认过程参数值
对于数字、字符串和UDT参数类型。过程重载包括具有默认参数值的过程。
内联汇编Intel语法
直接按名称引用变量;不需要“特技代码”。
传统的预处理器支持
与C中的语法相同。#Define命令支持单行宏,包括参数。#宏命令支持多行宏。类型别名支持C中的前向引用,包括UDT和过程指针类型。字符串文字的类似C的转义序列与C中的相同(除了数字被解释为十进制,而不是八进制)。
调试支持
GDB(GNU调试器)或Insight(GDB GUI前端)的完全调试支持。数组边界检查(仅由-exx命令行选项启用)。空指针检查(同上)。
创建OBJ、LIB、DLL和控制台或GUI EXE
您决不会被任何类型的IDE或编辑器锁定。您可以创建静态和动态/共享库,只需添加一个命令行选项(-lib或-dylib/-dll)。作为一个32位应用程序,FreeBASIC可以编译最大2GB的源代码文件。符号(变量、常量等)的数量仅受编译时可用内存总量的限制。(例如,您可以在源代码中同时包含OpenGL、GTK/SDL、BASS。)
优化代码生成
虽然FreeBASIC不是一个优化编译器,但它进行了多种通用优化,以在x86 CPU上生成尽可能快的代码,而不输给其他BASIC替代方案,包括商业版。完全免费所有第三方工具也是免费的。未使用任何废弃或受版权保护的软件(Win32上的GoRC除外)。汇编程序、链接器、archiver和其他命令行应用程序来自GNUbinutils编程工具。
下载安装
方法在
https://sourceforge.net/projects/fbc/files/
以windows为例
先下载https://sourceforge.net/projects/fbide/中的IDE
然后,再下载图中画线部分的任何一下
解压后,覆盖FreeBASIC安装目录下的文件
打开IDE
编译后,运行,会发现没反应,因为终端窗口运行后关闭了
打开终端窗口
参照以下命令
fbc -version显示当前编译器版本
fbc 1.bas编译