From: "Michael L. Smith" Newsgroups: comp.os.msdos.djgpp Subject: Re: Announcement: OmniBasic Version 1.27 Date: Thu, 28 Aug 1997 00:04:45 -0500 Organization: Computer Design Lab Lines: 124 Message-ID: <340506ED.6047@ktis.net> References: <5so1im$s0_006 AT mlsmith DOT ktis DOT net> <5tdvas$o4_008 AT mlsmith DOT ktis DOT net> Reply-To: mlsmith AT ktis DOT net NNTP-Posting-Host: news.newsdawg.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Michael L. Smith wrote: > > Address correction: mlsmith AT ktis DOT net > > In article <5so1im$s0_006 AT mlsmith DOT ktis DOT net>, mlsmith AT vax2 DOT rainis DOT net (Michael > L. Smith) wrote: > >Computer Design Lab announces the availability of OmniBasic > >version 1.27. This release includes a number of new features > >including SELECT/CASE, CONTINUE, RANDOMIZE, and comprehensive > >XForms support for the Linux version. In addition to its > >unrivaled portability, OmniBasic has shown itself to be the > >one to beat in recent benchmark tests for speed and efficiency. > >There are also many changes which accomodate the QB/PB style > >syntax making conversion much easier. The shareware versions > >are available for download from: > > > >http://www.bmtmicro.com/catalog/omnibasic.html > > > >OmniBasic is a structured dialect of Basic which includes such > >features as true pointers, based variables, macros, C compatability > >at the function as well as the linker levels, and a host of > >other advanced features. Like many C compilers, but unlike > >other Basic compilers, OmniBasic was written in itself. This > >is to say that the source code for OmniBasic... is OmniBasic. This set of benchmarks are fairly unique in that they pit a well known and respected C compiler against a relatively unknown Basic compiler. Everyone "knows" that Basic cannot "beat" C, right?...WRONG!!! This is especially interesting in that OmniBasic is a C-output compiler which (in these tests) actually calls gcc to obtain its executable. This benchmark (as anyone can see) is not "conjured-up" to favor OmniBasic over anything else... in fact it's about as rudamentary as is possible. For those puzzling over how Omni could possibly beat gcc when its output is in fact compiled by gcc I will point out that Omni is NOT a Basic to C convertor, but is a compiler in its own right (which obviously has a more efficient FOR LOOP construct than gcc itself. The Power Basic numbers were provided (where possible) for comparison since PB is considered by many to be the "Basic to beat". For those who are not familiar with OmniBasic, it is a C output Basic Compiler with macro capability, true pointers, based variables (like C++ references), conditional compilation, unlimited string and array size, C and assembler in-line code mixing, and much more. It is C compatable at both the function and linker levels. OmniBasic is portable to: Linux (ELF) (Includes integrated XForms/FDesign support) Win95/NT (Cygnus/Minimalist) OS/2 (EMX) MSDOS (DJGPP) Amiga (SAS) OS-9 (68xxx) OS-9000 (x86) and soon to: HP-UX (gcc) BSD (gcc) SCO (386 gcc) and maybe... just maybe.. a port to the Cray T3 is in the works! C Version: int i; int x; main() { for(i=1; i<1000000000; i++) x=i; } Basic Version: (identical version used for both OmniBasic and Power Basic) dim i as long dim x as long for i=1 to 1000000000 x=i next i Environment: 5x86 AT 133MHZ 16MB Win95 Dos Window gcc and OmniBasic (v1.28) compiled with Cygnus gcc 2.7.2-960404 Power Basic compiled with PBC version 3.2 Results: gcc OmniBasic Power Basic 163 142 391 Seconds Environment: 5x86 AT 133MHZ 16MB OS/2 Window gcc and OmniBasic (v1.28) compiled with EMX 0.9c (gcc 2.7.2.1) Power Basic N/A in OS/2 Window Results: gcc OmniBasic Power Basic 144 116 N/A Seconds Environment: 5x86 AT 133MHZ 16MB Linux (Caldera Open Base) gcc and OmniBasic (v1.28) compiled with (gcc 2.7.2.1) Power Basic N/A on Linux Results: gcc OmniBasic Power Basic 161 140 N/A Seconds Environment: 386 AT 40MHZ 16MB (*** COUNT WAS CHANGED FROM 1000000000 TO 100000000 FOR SLOWER MACHINE ***) MSDOS v6.22 gcc and OmniBasic (v1.28) compiled with DJGPP (gcc 2.7.2.1) Power Basic compiled with PBC version 3.2 Results: gcc OmniBasic Power Basic 104 102 265 Seconds