Revision history for CompilerFeatures


Revision [19903]

Last edited on 2016-02-10 15:45:17 by DkLwikki [Update link format]
Additions:
- Only with ##"-lang qb"##: scalar variables don't need to be dimensioned and suffixes can be used; line numbers are supported; ##[[KeyPgGosub|Gosub]]## supported.
- The official distribution comes with several bindings to existing C libraries already, see [[ExtLibTOC|External Libraries TOC]] for a complete up-to-date list
- Besides ASCII files with [[Unicode|Unicode]] escape sequences (\u), ""FreeBASIC"" can parse UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE source (.bas) or header (.bi) files, they can be freely mixed with other sources/headers in the same project (also with other ASCII files).
- Literal strings can be typed in the original non-Latin alphabet, just use a text-editor that supports some of the [[Unicode|Unicode]] formats listed above.
- The ##[[KeyPgWstring|Wstring]]## type holds wide-characters, all string procedures (like ##[[KeyPgLeft|Left]]##, ##[[KeyPgTrim|Trim]]##, etc) will work with wide-strings too.
- ##[[KeyPgOpen|Open]]## was extended to support UTF-8, UTF-16LE and UTF-32LE files with the ##[[KeyPgEncoding|Encoding]]## specifier. ##[[KeyPgInputPp|Input #]]## and ##[[KeyPgLineinputPp|Line Input #]]##, as well as ##[[KeyPgPrintPp|Print #]]## and ##[[KeyPgWritePp|Write #]]## can be used normally, and any conversion between [[Unicode|Unicode]] to ASCII is done automatically if necessary.
- ##[[KeyPgPrint|Print]]## also supports [[Unicode|Unicode]] output (see Requirements).
- Integer: ##[[KeyPgByte|Byte]]##, ##[[KeyPgUbyte|Ubyte]]##, ##[[KeyPgShort|Short]]##, ##[[KeyPgUshort|Ushort]]##, ##[[KeyPgInteger|Integer]]##, ##[[KeyPgUinteger|UInteger]]##, ##[[KeyPgLong|Long]]##, ##[[KeyPgUlong|ULong]]##, ##[[KeyPgLongint|Longint]]##, ##[[KeyPgUlongint|Ulongint]]##
- Floating-point: ##[[KeyPgSingle|Single]]##, ##[[KeyPgDouble|Double]]##
- String: fixed, variable-length or null-terminated (##[[KeyPgZstring|Zstring]]##), up to 2GB long
- [[Unicode|Unicode]] strings (##[[KeyPgWstring|Wstring]]##), like ##[[KeyPgZstring|Zstring]]##, but with support for wide characters. Use the Windows [[Unicode|Unicode]] API procedures directly, etc.
- BASIC's ##[[KeyPgType|Type]]## statement is supported, along with the new ##[[KeyPgUnion|Union]]## statement (including anonymous nested unions).
- Easily declare a list of constants with sequential values with ##[[KeyPgEnum|Enum]]##.
- Element data can be preserved during a re-size of variable-length arrays with ##[[KeyPgRedim|Redim]]## using the new ##[[KeyPgPreserve|Preserve]]## specifier.
- Single-line macros supported with the ##[[KeyPgPpdefine|#Define]]## command, including parameters.
- Multi-line macros supported with the ##[[KeyPgPpmacro|#Macro]]## command.
Deletions:
- Only with ##"-lang qb"##: scalar variables don't need to be dimensioned and suffixes can be used; line numbers are supported; ##[[KeyPgGosub Gosub]]## supported.
- The official distribution comes with several bindings to existing C libraries already, see [[ExtLibTOC External Libraries TOC]] for a complete up-to-date list
- Besides ASCII files with [[Unicode Unicode]] escape sequences (\u), ""FreeBASIC"" can parse UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE source (.bas) or header (.bi) files, they can be freely mixed with other sources/headers in the same project (also with other ASCII files).
- Literal strings can be typed in the original non-Latin alphabet, just use a text-editor that supports some of the [[Unicode Unicode]] formats listed above.
- The ##[[KeyPgWstring Wstring]]## type holds wide-characters, all string procedures (like ##[[KeyPgLeft Left]]##, ##[[KeyPgTrim Trim]]##, etc) will work with wide-strings too.
- ##[[KeyPgOpen Open]]## was extended to support UTF-8, UTF-16LE and UTF-32LE files with the ##[[KeyPgEncoding Encoding]]## specifier. ##[[KeyPgInputPp Input #]]## and ##[[KeyPgLineinputPp Line Input #]]##, as well as ##[[KeyPgPrintPp Print #]]## and ##[[KeyPgWritePp Write #]]## can be used normally, and any conversion between [[Unicode Unicode]] to ASCII is done automatically if necessary.
- ##[[KeyPgPrint Print]]## also supports [[Unicode Unicode]] output (see Requirements).
- Integer: ##[[KeyPgByte Byte]]##, ##[[KeyPgUbyte Ubyte]]##, ##[[KeyPgShort Short]]##, ##[[KeyPgUshort Ushort]]##, ##[[KeyPgInteger Integer]]##, ##[[KeyPgUinteger UInteger]]##, ##[[KeyPgLong Long]]##, ##[[KeyPgUlong ULong]]##, ##[[KeyPgLongint Longint]]##, ##[[KeyPgUlongint Ulongint]]##
- Floating-point: ##[[KeyPgSingle Single]]##, ##[[KeyPgDouble Double]]##
- String: fixed, variable-length or null-terminated (##[[KeyPgZstring Zstring]]##), up to 2GB long
- [[Unicode Unicode]] strings (##[[KeyPgWstring Wstring]]##), like ##[[KeyPgZstring Zstring]]##, but with support for wide characters. Use the Windows [[Unicode Unicode]] API procedures directly, etc.
- BASIC's ##[[KeyPgType Type]]## statement is supported, along with the new ##[[KeyPgUnion Union]]## statement (including anonymous nested unions).
- Easily declare a list of constants with sequential values with ##[[KeyPgEnum Enum]]##.
- Element data can be preserved during a re-size of variable-length arrays with ##[[KeyPgRedim Redim]]## using the new ##[[KeyPgPreserve Preserve]]## specifier.
- Single-line macros supported with the ##[[KeyPgPpdefine #Define]]## command, including parameters.
- Multi-line macros supported with the ##[[KeyPgPpmacro #Macro]]## command.


Revision [16853]

Edited on 2013-06-17 20:09:56 by DoS386 [""""FreeBASIC""""]
Additions:
- The runtime library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% ""FreeBASIC"" code (that is, ""FreeBASIC"" compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
- Besides ASCII files with [[Unicode Unicode]] escape sequences (\u), ""FreeBASIC"" can parse UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE source (.bas) or header (.bi) files, they can be freely mixed with other sources/headers in the same project (also with other ASCII files).
Deletions:
- The runtime library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% FreeBASIC code (that is, ""FreeBASIC"" compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
- Besides ASCII files with [[Unicode Unicode]] escape sequences (\u), FreeBASIC can parse UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE source (.bas) or header (.bi) files, they can be freely mixed with other sources/headers in the same project (also with other ASCII files).


Revision [16851]

Edited on 2013-06-17 03:34:54 by DoS386 [""FreeBASIC"" links]
Additions:
- ""FreeBASIC"" is not a "new" BASIC language. You don't need to learn much new if you are familiar with any Microsoft-BASIC variant. You can use either ##"-lang qb"## for compatibility, or (default) ##"-lang fb"## for some of the new features, but it also brings some restrictions and some similarity with the "C" programming language. See also [[CompilerDialects]].
- ""FreeBASIC"" is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in Microsoft QuickBASIC are implemented, et cetera.
- ""FreeBASIC"" currently runs on 32-bit Windows, Linux, and DOS (a 16-bit DOS is good enough, although ""FreeBASIC"" itself and compiler output are 32-bit) and also creates applications for the Xbox console. More platforms to come.
- The runtime library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% FreeBASIC code (that is, ""FreeBASIC"" compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
- ""FreeBASIC"" can compile source code files up to 2 GB in size.
- The number of symbols (variables, constants, et cetera) is only limited by the total memory available during compile time. (You can, for example, include ""OpenGL"", GTK/SDL, BASS, simultaneously in your source code.)
- While ""FreeBASIC"" is not an optimizing compiler, it does many kinds of general optimizations to generate the fastest possible code on x86 CPU's, not losing to other BASIC alternatives, including the commercial ones.
- All third-party tools are also free. No piece of abandoned or copyrighted software is used (except ""GoRC"" on ""Win32""). The assembler, linker, librarian/archiver, and other command-line applications come from the GNU binutils programming tools.
Deletions:
- FreeBASIC is not a "new" BASIC language. You don't need to learn much new if you are familiar with any Microsoft-BASIC variant. You can use either ##"-lang qb"## for compatibility, or (default) ##"-lang fb"## for some of the new features, but it also brings some restrictions and some similarity with the "C" programming language. See also [[CompilerDialects]].
- FreeBASIC is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in Microsoft QuickBASIC are implemented, et cetera.
- FreeBASIC currently runs on 32-bit Windows, Linux, and DOS (a 16-bit DOS is good enough, although FreeBASIC itself and compiler output are 32-bit) and also creates applications for the Xbox console. More platforms to come.
- The runtime library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% FreeBASIC code (that is, FreeBASIC compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
- FreeBASIC can compile source code files up to 2 GB in size.
- The number of symbols (variables, constants, et cetera) is only limited by the total memory available during compile time. (You can, for example, include OpenGL, GTK/SDL, BASS, simultaneously in your source code.)
- While FreeBASIC is not an optimizing compiler, it does many kinds of general optimizations to generate the fastest possible code on x86 CPU's, not losing to other BASIC alternatives, including the commercial ones.
- All third-party tools are also free. No piece of abandoned or copyrighted software is used (except GoRC on Win32). The assembler, linker, archiver, and other command-line applications come from the GNU binutils programming tools.


Revision [15159]

Edited on 2011-08-07 15:21:46 by FxMwikki [""FreeBASIC"" links]
Additions:
- Only with ##"-lang qb"##: scalar variables don't need to be dimensioned and suffixes can be used; line numbers are supported; ##[[KeyPgGosub Gosub]]## supported.
Deletions:
- Only with ##"-lang qb"##: scalar variables don't need to be dimensioned and suffixes can be used; line numbers are supported; ##[[KeyPgOnerror On Error]]## and ##[[KeyPgGosub Gosub]]## supported.


Revision [14808]

Edited on 2010-08-22 09:11:51 by GaLeon [Changed binutil to binutils]
Additions:
- All third-party tools are also free. No piece of abandoned or copyrighted software is used (except GoRC on Win32). The assembler, linker, archiver, and other command-line applications come from the GNU binutils programming tools.
Deletions:
- All third-party tools are also free. No piece of abandoned or copyrighted software is used (except GoRC on Win32). The assembler, linker, archiver, and other command-line applications come from the GNU binutil programming tools.


Revision [14783]

Edited on 2010-08-21 00:36:38 by GaLeon [Changed binutil to binutils]
Additions:
- The runtime library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% FreeBASIC code (that is, FreeBASIC compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
Deletions:
- The run-time library was written with portability in mind. All third-party tools used exist on most operating systems already as they are from the GNU binutils. The compiler is written in 100% FreeBASIC code (that is, FreeBASIC compiles itself.), which makes it simple to be bootstrapped as it doesn't depend on non-portable tools.


Revision [14772]

Edited on 2010-08-20 08:17:49 by GaLeon [Changed binutil to binutils]
Additions:
- FreeBASIC is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in Microsoft QuickBASIC are implemented, et cetera.
Deletions:
- FreeBASIC is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in MS-QuickBasic are implemented, et cetera.


Revision [14626]

Edited on 2010-06-15 11:27:45 by DkLwikki ["Back to Main" instead of "Back to TOC"]
Additions:
{{fbdoc item="back" value="FBWiki|Main Page"}}
Deletions:
{{fbdoc item="back" value="DocToc|Table of Contents"}}


Revision [13540]

Edited on 2008-07-19 19:20:34 by TiGer [minor changes]
Additions:
- FreeBASIC is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in MS-QuickBasic are implemented, et cetera.
- The number of symbols (variables, constants, et cetera) is only limited by the total memory available during compile time. (You can, for example, include OpenGL, GTK/SDL, BASS, simultaneously in your source code.)
Deletions:
- FreeBASIC is case-insensitive; explicit "main" procedure is not required; most of the graphic and console statements and procedures found in MS-QuickBASIC are implemented, et cetera.
- The number of symbols (variables, constants, et cetera) is only limited by the total memory available during compile time. (You can, for example, include OpenGL, Gtk/SDL, BASS, simultaneously in your source code.)


Revision [11816]

The oldest known version of this page was created on 2007-11-11 11:58:44 by JeffMarshall [minor changes]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode