FreeBASIC 0.16 has been released. “FreeBASIC is a completely free, open-source, 32-bit BASIC compiler, with the syntax the most compatible possible with MS-QuickBASIC, that adds new features such as pointers, unsigned data types, inline-assembly and many others.”
I have hundreds of programs I wrote when I was a kid in QBasic, 95% of them run with this, *better* than they did with qbasic. Not only that but I changed some of the code around for this and many of my apps run amazing. Freebasic is definetly up there in speed far beyond visual basic for graphics drawing.
Unfortunately they went the way of the runtime library …
“Unfortunately they went the way of the runtime library …”
The runtime nature of FreeBASIC is the same of stdlib of C. There is no interpreted code you byte-code compile.
The code you write is parsed and translated to assembler, then linked against standard library to provide print, memory allocation, etc.
Edited 2006-06-12 17:45
When I checked last month, there was no assembler back end, it was all interpreted, w/ runtime. There was an announcement that in the “far” future, it will finally be a real language, however …
http://www.freebasic.net/forum/viewtopic.php?t=4550
As of today, it still stands. Maybe your looking at a very early alpha that nobody has access to?
FreeBASIC’s runtime library is a static library linked at compile time, a la libc, libcmt…
The language produces native 32bit executables (win 32-dos EXEs/linux ELFs)
Two version of the runtime library exist, libfb.a and libfbmt.a (multi-threading safe version).
the language uses “LD” (the GNU linker) and “AS” (the GNU assembler) as it’s back-end on windows(mingw32)/linux..
and it never was/will be interpreted any time…
EDIT
the parser mentioned by v1ctor in the link above is the compile-time parser, not an interpreting parser as you may think..
Edited 2006-06-13 16:57
“When I checked last month, there was no assembler back end, it was all interpreted, w/ runtime.”
Huh? It was never interpretted. It has always, since the first version, outputted assembler to GNU as to produce a native executable.
Err..correct me if I’m wrong, but aren’t pointers in complete opposition to BASIC’s design goals?
I’m just saying: pointers are something you’d rather want to live without than to implement in a language.
They separate toy from tool.
What are you talking about? Pointers are unbeliably useful and amazing. . . Would not using Pointers only limit the language? No one’s forcing you to use pointers
Pointers are unbeliably useful and amazing
Exactly. That’s why we use C.
I use C too. I don’t know why some people seem to be acting like “we use C but you don’t because you use BASIC”, as that is 100% wrong.
I’m a C fanatic. FB’s (fast) graphics lib and the runtime library was written in C, but if you looked at the source for FreeBASIC, the compiler’s written entirely in itself O_O;; (A compiler written in itself that ISN’T C? Amazing.)
I *could* use C if I wanted to, but I’ve used it, and I made some nice lil’ GBA games and such on it, but I never enjoyed it. Never have I made programs that run so well, that I had fun making as when I made them in FreeBASIC.
It’s fast, it’s decently optimized, allows inline ASM, use of C libs and soon C++/other language’s libs, OpenSOURCE, and has the best fricken forums out there (people answer you amazingly fast). What more do you want?
I loved this language, sadly most of my old programs have disappeared – so I’m just left with regrets about losing those floppies in one of my many apartment moves.
[Futurama: Kif & Amy in the Holo-shed]
Amy: Oh, Kif it’s beautiful!
(A virtual reality pony trots by)
Amy: It’s Spirit, the pony I always wanted but my parents said I already had too many ponies!
Kif: Yes, I programmed it in for you. Four million lines of BASIC!
I loved this language, sadly most of my old programs have disappeared – so I’m just left with regrets about losing those floppies in one of my many apartment moves.
[Futurama: Kif & Amy in the Holo-shed]
Amy: Oh, Kif it’s beautiful!
(A virtual reality pony trots by)
Amy: It’s Spirit, the pony I always wanted but my parents said I already had too many ponies!
Kif: Yes, I programmed it in for you. Four million lines of BASIC!
Too many people don’t understand the power and concept of FreeBASIC. I have to tell you, it’s no toy just because of it’s syntax. Anything I’ve been able to do in C I’ve been able to do in FreeBASIC.
BASIC syntax, not BASIC concept (Or a more advanced BASIC concept, since FB supports modernized coding techniques, there’s a BASIC you can actually learn from). The concept of true power and speed of C, but the syntax and ease of use as BASIC.
You aren’t forced to use anything advanced either. So if you are just learning, you can stick with it. If you want to do something you would normally do in C, you can do that too.
Just my two cents.
OK, I just figured out how to use FreeBasic – this is straight from the FAQ:
How do I use FreeBASIC?
FB is a commandline compiler, to use it, open a CMD Prompt, go to your FreeBASIC folder and type:
fbc yourbasfile.bas
Edited 2006-06-12 18:17
FBIDE is one of the IDE’s available for FreeBASIC. It’s really neat, and should be checked out.
^_^;; Unless you *enjoy* using the command-line, which a lot of people do. I just use MAKE.
Edited 2006-06-12 18:28
/trivia
Believe it or not, there’s a standard definition of Basic (ANSI X3.113-1987) and FreeMumble is definitely not Basic.
/trivia
I wonder what Kemeny, may he rest in peace, and Kurtz would think of these various Basics.
Most modern BASICs do not fill the standard. They have been extended a lot in order to meet more modern demands.
This is also true for most BASICs from 1980’es.
FreeBASIC is BASIC, but it’s not standard-compliant. But it’s still BASIC.
FreeBASIC is BASIC, but it’s not standard-compliant. But it’s still BASIC.
MS-QuickBasic on which FreeBasic is based on removed the line numbering of the old original Dartmouth Basic which I learned as a biochemistry undergrad in 1973. Bill Gates added a pretty comprehensive Pascal based syntax. QuickBasic was a very useful tool for a scientist who was not necessarily a computer scientist.
I did an intensive course in ISO Pascal in the late eighties then shortly after as a grad student I found Quickbasic so usefully Pascal-like, that I started using it to solve a lot of chemical kinetics problems in my research. It could produce quite good graphics for those times and I got some great looking complex kinetics plots out of it.
By the early nineties I was working in an environmental chemistry labs and I used QuickBasic to write the number crunching module that was called by the HP macro language used by a GC-MS to calculate PCB concentations in environmental analysis. It stayed in production use for over two years.
I even wrote an Huckel MO program using it, as they only way to run molecular quantum mechanics on a 286. When I finally got a 386 it was a relief to be able to run MOPAC with a DOS extender.
So I have a soft spot for QuickBasic. Later I painfully taught myself to program in C, but I found it to be like drawing hens teeth. Recently I have been trying to learn Python as a useful programing tool for a scientist, but I don’t seem to be able to concentrate enough to be productive. May be I am getting to old to code.
Hell – I might as well try FreeBASIC if only for old times sake ! I’ll have to dig out some of those 15 year old floppy disks.
<em>programing tool for a scientist, but I don’t seem to be able to concentrate enough to be productive. May be I am getting to old to code.</em>
So I am not the only one then! I seem to grow less “agile” in my programming every year…
Ahhh… BASIC… VAX BASIC was AWESOME! I remember those days… we wrote everything in BASIC back then.
Is there an Emacs mode for this ?