Message board for the users of flat assembler.
> High Level Languages > Free Basic
I found this forum http://www.freebasic.net/forum/index.php at RADasm site.
And here you can get IDE+compiler+tools: http://www.fbide.freebasic.net/index.php?menuID=54&newsID=18
The official site of the compiler is: http://www.freebasic.net/index.php
Looks pretty good, optimizing compiler, nice basic implementation with inline ASM and other goodies.
Seems great for games, windows apps, linux apps, etc...
I'll begin to explore it now as I love to learn new languages and play with them.
Just sharing... enjoy!
|05 Apr 2006, 01:30||
Does this use FASM in any way?
|05 Apr 2006, 06:02||
Maybe it used FASM to assemble its first versions and now its like FASM only self-compiling from FreeBASIC Maybe FASM was used as a trampoline.
Or - maybe it uses inline-asm syntax of FASM
|05 Apr 2006, 06:45||
I think it was not built using FASM, but the inline ASM syntax is very similar to FASM's.
And one could code procedures and functions in FASM and use it in FreeBasic.
FreeBASIC is not a "new" BASIC language. It is not required of you to learn anything new if you are familiar with any Microsoft-BASIC variant.
FreeBASIC is case-insensitive; scalar variables don't need to be dimensioned and suffix can be used; line numbers are supported; MAIN function is not required; most of the graphic and console statements and functions found in MS-QuickBASIC were implemented, et cetera.
Only a small number of keywords have been added. All functions are implemented as libraries, so for the most part, there are no new intrinsic routines, and therefore there is a low chance of having name duplication with old code.
Most of the known C libraries and API's can be used without wrappers or helpers
GTK+ 2.0: cross-platform GUI Toolkit (over 1MB of headers, including support for Glade, libart and glGtk)
libxml and libxslt: defacto standard XML and XSL libraries
GSL - GNU Scientific library: complex numbers, vectors and matrices, FFT, linear algebra, statistics, sorting, differential equations, and a dozen other sub-libraries with mathematical routines
GMP - GNU Multiple Precision Arithmetic Library: known as the fastest bignum library
SDL - Simple DirectMedia Layer: multimedia library for audio, user input, 3D and 2D gfx (including the sub-libraries such as SDL_Net, SDL_TTF, etc)
OpenGL: portable library for developing interactive 2D and 3D graphics games and applications (including support for frameworks such as GLUT and GLFW, plus the GL Extensions)
Allegro: game programming library (graphics, sounds, player input, etc)
GD, DevIL, FreeImage, GRX and other graphic-related libraries
OpenAL, Fmod, BASS: 2D and 3D sound systems, with support for mod, mp3, ogg, etc
ODE and Newton - dynamics engines: rigid body dynamics simulation
cgi-util and FastCGI: web development
DirectX and the Windows API - the most complete headers set between the BASIC compilers available, including support for the Unicode functions
DispHelper - COM IDispatch interfaces made easy
more to come...
FreeBASIC currently runs on 32-bit Windows, Linux, and MS-DOS and also creates applications for the Xbox console. More platforms to come.
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's it, FreeBASIC compiles itself.), what makes it simple to be bootstrapped as it doesn't depend on non-portable tools.
Besides ASCII files with 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 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 an text-editor that supports some of the Unicode formats listed above.
The WSTRING type holds wide-characters, all string functions (like LEFT, TRIM, etc) will work with wide-strings too.
OPEN was extended to support the ENCODING "format" option, files in UTF-8, UTF-16LE and UTF-32LE can be read (using INPUT # or LINE INPUT #) and written (using PRINT # or WRITE #) when opened in INPUT, OUTPUT and APPEND modes, all the conversion between Unicode to ASCII is be done automatically if necessary.
PRINT'ing to console is also supported (see Requirements), INPUT or LINE INPUT from console still not allowing wide-characters to be entered yet.
A large number of variable types available
Integer: BYTE, UBYTE, SHORT, USHORT, INTEGER, UINTEGER, LONGINT and ULONGINT (64-bit)
Floating-point: SINGLE and DOUBLE
String: fixed, variable-length or null-terminated (ZSTRING's), up to 2GB long
Unicode strings (WSTRING's), like ZSTRING's, but with support for wide characters. Use the Windows unicode API functions directly, etc.
User-defined Types (UDT's)
BASIC's TYPE statement is supported, along with the new UNION statement (including nameless nested UNION's).
Array fields utilizing up to four dimensions can be used.
Function field types.
List of constants easily modifiable.
Dynamic and static arrays are supported, up to 2 GB in size.
Unlimited number of array dimensions.
Any lower and upper boundaries.
REDIM PRESERVE statement is supported to resize any dynamic array and keep its contents intact.
Pointers to any of the data types listed above, including UDT's and arrays.
Uses the same syntax as C.
Unlimited indirection levels (e.g., pointer to pointer to ...).
Indexing 's (including string indexing).
Type Casting (CPTR).
For static, module-level or local variables, arrays and UDT's.
Optional function arguments
For numeric and strings types.
Including functions with optional arguments.
Reference variables directly by name; no "trick code" needed.
Same syntax as in C.
#DEFINE's with arguments also supported (aka macros).
Supporting forward referencing as in C.
Escape characters inside literal strings
Same as in C (except numbers are interpreted as decimal, not octal).
Full debugging support with GDB (the GNU debugger) or Insight (the GDB GUI frontend).
Array bounds checking (only enabled by the -exx command-line option).
Null pointers checking (same as above).
Create OBJ's, LIB's, DLL's, and console or GUI EXE's
You are in no way locked to an IDE or editor of any kind.
You can create static and dynamic libraries adding just one command-line option (-lib or -dll).
As a 32-bit application
FreeBASIC can compile source code files up to 2 GB long.
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.)
Optimized code generation
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 (but GoRC on Win32). The assembler, linker, archiver, and other command-line applications come from the GNU binutil programming tools.
|05 Apr 2006, 14:17||
It uses GAS (the gnu assembler) to emit asm code. Yeah, it's a tight compiler. In fact better than the commercial ones. And when the GCC backend gets finished, it would be as fast as GCC. :*)
Right now you could compare it's structure to C but after the GCC backend, support for real OOP will be there. I mean real, not hacks.
I made a few stuff with FB myself. :*)
A 2d space shooter:
A 3d tunnel using opengl + SDL
A quaternion based camera(OpenGL + SDL):
|07 Apr 2006, 01:09||
FB is a quite good tool/compiler.
And its not that much time on the net!I think its like a year or so.
|07 Apr 2006, 07:49||
That is some impressive quality work done with FB, but I don't see it utilizing FASM in any way and this is a FASM support forum.
|08 Apr 2006, 05:14||
< Last Thread | Next Thread >
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.