GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — FreeBASIC - Wikipedia

Not to be confused with Free Basics.
FreeBASIC
ParadigmProcedural, object-oriented
Designed byAndre Victor T. Vicentini[1]
DeveloperThe FreeBASIC Development Team
First appeared2004 (2004)
Stable release
1.10.1 / December 25, 2023 (2023-12-25)
Typing disciplineStatic
OSMS-DOS, FreeBSD, Linux, Microsoft Windows
LicenseGNU GPLv2+, Standard libraries licensed under the GNU LGPLv2+
Websitewww.freebasic.net
Influenced by
QuickBASIC, C

FreeBASIC is a free and open-source multiplatform compiler and programming language based on BASIC licensed under the GNU GPL for Microsoft Windows, protected-mode MS-DOS (DOS extender), Linux, FreeBSD, and Xbox. (The Xbox version is no longer maintained.)[2]

According to its official website,[3] FreeBASIC provides syntax compatibility with programs originally written in Microsoft QuickBASIC (QB). Unlike QuickBASIC, however, FreeBASIC is a command line only compiler, unless users manually install an external integrated development environment (IDE) of their choice.[4]

Compiler features

On its back end, FreeBASIC makes use of GNU Binutils in order to produce console and graphical user interface applications. FreeBASIC supports the linking and creation of C static and dynamic libraries and has limited support for C++ libraries. As a result, code compiled in FreeBASIC can be reused in most native development environments.

While not an optimizing compiler, FreeBASIC can optionally transcompile to C to compile with optimizations. FreeBASIC supports inline assembly, multithreading, and does not use automatic garbage collection.

C style preprocessing, including multiline macros, conditional compiling, and file inclusion, is supported. The preprocessor also has access to symbol information and compiler settings, such as the language dialect.

Syntax

Initially, FreeBASIC emulated Microsoft QuickBASIC syntax as closely as possible. Beyond that, the language has continued its evolution. As a result, FreeBASIC combines several language dialects for maximum level of compatibility with QuickBASIC and full access to modern features.[5] New features include support for concepts such as objects, operator overloading, function overloading, namespaces, and others.[6]

Newline characters indicate the termination of programming statements. A programming statement can be distributed on multiple consecutive lines by using the underscore line continuation char (_), whereas multiple statements may be written on a single line by separating each statement with a colon (:).

Block comments and end-of-line remarks are supported. Full line comments are made with an apostrophe ', while blocks of commented code begin with /' and end with '/.

FreeBASIC is not case-sensitive.

Graphics library

FreeBASIC provides built-in, QuickBASIC compatible graphics support through FBgfx, which is automatically included into programs that make a call to the SCREEN command. Its back end defaults to OpenGL on Linux and DirectX on Microsoft Windows. This abstraction makes FBgfx graphics code cross-platform compatible. However, FBgfx is not hardware accelerated.

Users familiar with external graphics utilities such as OpenGL or the Windows API can use them without interfering with the built-in graphics library.

Language dialects

As FreeBASIC has evolved, changes have been made that required breaking older-styled syntax. In order to continue supporting programs written using the older syntax, FreeBASIC now supports the following dialects:

  • The default dialect (-lang fb as a command-line argument) supports all new compiler features and disallows archaic syntax.
  • The FB-lite dialect (-lang fblite) permits use of most new, non-object-oriented features in addition to older-style programming. Implicit variables, suffixes, GOSUB / RETURN, numeric labels, and other features are allowed in this dialect.
  • The QB dialect (-lang qb) attempts to replicate QuickBASIC behavior and compiles many QuickBASIC programs without modification.

Example code

Standard programs, such as the "Hello, World!" program are done just as they were in QuickBASIC.

Print "Hello, World!"

sleep:end 'Comment, prevents the program window from closing instantly

FreeBASIC adds to this with support for object-oriented features such as methods, constructors, dynamic memory allocation, properties, and temporary allocation.

Type Vector
    Private:
        x As Integer
        y As Integer
    Public:
        Declare Constructor (nX As Integer = 0, nY As Integer = 0)
        Declare Property getX As Integer
        Declare Property getY As Integer
End Type

Constructor Vector (nX As Integer, nY As Integer)
    x = nX
    y = nY
End Constructor

Property Vector.getX As Integer
    Return x
End Property

Property Vector.getY As Integer
    Return y
End Property
Dim As Vector Ptr player = New Vector()

*player = Type<Vector>(100, 100)
Print player->getX
Print player->getY

Delete player

Sleep 'Prevents the program window from closing instantly

In both cases, the language is well suited for learning purposes.

References

  1. ↑ The FreeBASIC Development Team (2023-07-22). "fbc/readme.txt at 1.10.1 · freebasic/fbc". Github. Retrieved 2026-05-24.
  2. ↑ Frequently Asked Questions - FreeBASIC Wiki Manual - FBWiki
  3. ↑ freeBASIC Programming Language: Official Web site
  4. ↑ "FreeBASIC Language - Gallery of Notable Applications". freeBASIC compiler. Retrieved 13 May 2017.
  5. ↑ "freeBASIC dialects". coderJeff's home page. Retrieved 5 February 2012.
  6. ↑ "Differences from QB". freeBASIC.net documentation. Retrieved 5 February 2012.

External links

Wikimedia Commons logo
Wikimedia Commons has media related to:
FreeBASIC (category)
  • Official website
  • FreeBASIC on GitHub
  • FreeBASIC on SourceForge
IDEs
  • tiko editor - Programmer's Code Editor for the FreeBASIC Compiler - PaulSquires · GitHub
  • WinFBE - Modern FreeBASIC Editor for Windows - PaulSquires (gone) (precursor to tiko-editor)
  • VisualFBEditor - Cross-platform graphical IDE
  • FBIde — #1 editor for FreeBASIC — Integrated Development Environment
  • FBEdit (current)  — FBEdit source code editor for FreeBASIC, version 1.0.7.6c
  • FBEdit source code editor for freeBASIC (outdated version: 1.0.6.8) on SourceForge
Retrieved from "https://en.wikipedia.org/w/index.php?title=FreeBASIC&oldid=1384961911"
Categories:
  • 2004 software
  • BASIC compilers
  • BASIC programming language family
  • DOS software
  • Free and open source compilers
  • Free computer libraries
  • Free software programmed in BASIC
  • High-level programming languages
  • Linux programming tools
  • Object-oriented programming languages
  • Programming languages created in 2004
  • Programming languages
  • Programming tools for Windows
  • Self-hosting software
  • Software using the GNU General Public License
  • Statically typed programming languages
Hidden categories:
  • Articles with short description
  • Short description is different from Wikidata
  • Articles with example BASIC code
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.