fbpx
Wikipedia

FutureBASIC

FutureBasic is a free BASIC compiler for Apple Inc.'s Macintosh.

FutureBasic
ParadigmProcedural
Designed byAndrew Gariepy
DeveloperBrilor Software
First appearedmid 1980s
Stable release
FutureBasic 7.0.22
July 12, 2023; 9 months ago (2023-07-12)
OSMac OS
LicenseFreeware
Websitewww.brilorsoftware.com/FB/

It consists of an integrated development environment (IDE), editor, project manager, etc. for both PowerPC and Intel microprocessors. Since 1 January 2008, the package has contained a translator, FBtoC, that converts the FutureBasic syntax to C and automatically calls Apple's GNU Compiler Collection (gcc). No knowledge of C is required. FutureBasic supports access to Mac OS library calls.

History edit

FutureBASIC (FB) began life in the mid-1980s[1] as ZBasic, which was created by Andrew Gariepy and envisioned as a cross-platform development system. Before long, the cross-platform aspects were dropped in favor of focusing on Macintosh development. ZBasic acquired a devoted following of developers who praised its ease of use and the tight, fast code produced by the compiler (a legendary labor involving extensive use of hand-built 68K assembly language code). In 1992 and as the next major step after ZBasic version 5[2], Zedcor Inc., the company of the Gariepy brothers Andy, Mike, Peter and friends based in Tucson, Arizona presented FutureBASIC (later called FBI).[3] In 1995 Staz Software,[4] led by Chris Stasny, acquired the rights to market FutureBASIC. Chris Stasny started this business with an upgraded version, namely FBII,[5] and with his own development, the Program Generator[6] (PG PRO), a CASE tool.

The transition from 68k to PowerPC central processing unit (CPU) was a lengthy process that involved a complete rewrite of the editor by Chris Stasny and an adaptation of the compiler by Andy Gariepy. The result of their efforts, a dramatically enhanced IDE called FB^3[7], was released in September 1999[8], featuring among many other things a separate compiler application, various open, hence modifiable runtimes,[9] inline PPC assembly, a simplified access to the Macintosh Toolbox Application Programming Interface (API), as well as an expanded library of built-in functions. Major update releases introduced a full-featured Appearance Compliant[10] runtime written by Robert Purves and the Carbon compliance of generated applications. Once completely carbonized to run natively on the Mac OS X, the FutureBASIC Integrated Development Environment (FB IDE) was called FB4 and first released in July 2004.

Based in Diamondhead, Mississippi, Staz Software was severely hit by Hurricane Katrina in August 2005 and development pace was slowed at a time when major effort was required to keep the IDE up to date with Apple's evolution towards the Intel-based Macintosh.

In 2007, an independent team of volunteer FB programmers, known as the FBtoC team, developed a translator (FBtoC) that allows FB to generate applications as Universal Binaries through the use of the open source GCC compiler which is included with each copy of Apple's Mac OS X system software.

On January 1, 2008, Staz Software announced that FB would henceforth be freeware and FB4 with FBtoC 1.0 was made available.[11]

Processor and operating system support edit

System requirements for original Macintosh release: Motorola 68000 System requirements to create universal binaries with FBtoC: Mac OS X v10.4 or higher, GCC 4.0 or higher, and the Cross-development SDKs must be installed.

Syntax edit

FutureBasic syntax supports procedural, modular styles of programming using function calls and local variables.

Program flow & structural blocks edit

User-defined functions (a.k.a. LOCAL FNs in FutureBasic) are much like C or Pascal functions.

  • They can also be totally insulated from the main program (LOCAL MODE statement);
  • they allow recursion;
  • they can be called dynamically at runtime (DEF FN USING statement);
  • called automatically by FutureBasic built-in event vectors (ON EVENT FN statement);
  • used as cooperative threaded functions (THREADBEGIN statement).

Specific structures (ENTERPROC/EXITPROC) are used for callback procedures when calling the Macintosh Toolbox.

The language provides the programmer with a complete set of vectors for event-driven applications, such as ON MENU, ON MOUSE, ON DIALOG, ON APPLEEVENT, ON EDIT, ON TIMER, etc.

Other structured keywords include conditional blocks such as:

  • LONG IF .... XELSE ... END IF
  • DO .... UNTIL
  • WHILE ... WEND
  • SELECT ... CASE... CASE ELSE ... END SELECT
  • FOR ... NEXT

Legacy BASIC language commands such as: GOTO and GOSUB/RETURN with line numbers and labels - while discouraged - are supported for educational purposes.

An example of a simple program to input a number and display "Hello World" is given below

//Example FutureBasic program dim i,num,a$ //These are our variables window 1 //open standard window input "Number of loops "; a$ //BASIC input from user num=val(a$) //convert text to number long if num>0 //Structured IF for i = 1 to num //BASIC loop print "hello world" //output text next i //end of loop xelse //Otherwise print "Not today" //no number entered end if do //Wait until Apple-Q HandleEvents until ( gFBQuit ) //so that we can see results 

Data types edit

FutureBasic supports complex data types include single and double precision floating points, double length integers, arrays, strings and records (similar to struct in C). Of note is the DYNAMIC array structures (size of memory footprint grows only when used) including DYNAMIC string arrays called INDEX$ and "container" variables which can perform string-like operations on data streams up to 2Gb in size.

C and Pascal borrowed coding styles edit

Commenting in the code is substantial allowing REMark statements, and C style /* remark */ statements. Sections of code can be bookmarked for easy reference.

Other alternate syntax borrowed from C allows the use of operators such as ++ -- == != += -= || &&.

Characters in Pascal strings are accessible much like items of an array: a$[0] (length byte); a$[1] (first character in string a$).

While the FutureBasic language still supports old style variable typing with suffix identifiers, it provides a modern alternative with the as clause: dim b as byte; dim s as short, dim l as long; etc.

Bridges to other languages edit

  • AppleScript scripts can be assembled with FutureBasic statements then executed on the fly by a running application. Example:
route _toAppleScript print "return the path to me as string" route _toScreen long if usr ApplescriptRun( message$ ) = _noErr print message$ end if 
  • FutureBasic allows the triggering of UNIX commands. Example:
// print a calendar for 2009 open "UNIX", 1, "cal 2009" dim a$ do line input #1, a$ print a$ until eof(1) close 1 
  • FB allows inline C code. Example:
BeginCFunction // Simple C function to add two integers long simple_add( long a, long b )  {  long sum;  sum = a + b;  return (sum);  } endC // Define C function so FB can see it toolbox fn simple_add ( long a, long b ) = long // Create little program to add 2 + 2 with the C function window 1 print fn simple_add ( 2, 2 ) do HandleEvents until ( gFBQuit ) 

Limitations edit

  • No cross-platform development. This is a Macintosh-only compiler.

FutureBasic supports Macintosh Intel architectures but does not compile on or for any version of Microsoft Windows.[1] and see bottom of page at:[2]

References edit

  1. ^ Index brilorsoftware.com
  2. ^ "Futurebasic Group Launch Point".
  1. ^ An history of Basic wars on the Mac platform by Jonathan Hoyle for MacCompanion, Part I MacCompanion, Part II
  2. ^ ZBasic 5 reviewed by Dave Kelly for MacTech magazine
  3. ^ FBI introduced major enhancements to the BASIC language, encouraging the developers to use named constants and local functions instead of subroutines for better structured programs and re-usable code.
  4. ^ Home of
  5. ^ FBII was 32bit-clean and could run from Mac 128 to G5-based Macintosh in emulated mode.
  6. ^ Program Generator is a Rapid application development tool that is flexible enough to build sophisticated applications quickly for the Macintosh pre-Mac OS X environments. For Mac OS X, Appearance compliant programs onwards, FutureBASIC uses Apple's Interface Builder.
  7. ^ pronounced FB cubed.
  8. ^ A week later the European edition was released which included English, Italian, German (now discontinued) and French 2011-07-15 at the Wayback Machine language versions. There is also a language edition.
  9. ^ Starting with FB^3, a runtime consists of include files written in FutureBASIC that are compiled along with the source code written by the programmer. It contains various declarations for structures, constants, global variables, resources, functions and procedures that constitute the FutureBASIC language. The main runtimes are: Standard BASIC, Appearance Compliant and Mac Toolbox.
  10. ^ The Appearance Compliant runtime allows access to most of the features of Apple's Appearance Manager.
  11. ^ . www.4toc.com. n.d. Archived from the original on September 13, 2019.

futurebasic, futurebasic, free, basic, compiler, apple, macintosh, futurebasicparadigmproceduraldesigned, byandrew, gariepydeveloperbrilor, softwarefirst, appearedmid, 1980sstable, releasefuturebasic, 22july, 2023, months, 2023, osmac, oslicensefreewarewebsite. FutureBasic is a free BASIC compiler for Apple Inc s Macintosh FutureBasicParadigmProceduralDesigned byAndrew GariepyDeveloperBrilor SoftwareFirst appearedmid 1980sStable releaseFutureBasic 7 0 22July 12 2023 9 months ago 2023 07 12 OSMac OSLicenseFreewareWebsitewww wbr brilorsoftware wbr com wbr FB wbr It consists of an integrated development environment IDE editor project manager etc for both PowerPC and Intel microprocessors Since 1 January 2008 the package has contained a translator FBtoC that converts the FutureBasic syntax to C and automatically calls Apple s GNU Compiler Collection gcc No knowledge of C is required FutureBasic supports access to Mac OS library calls Contents 1 History 2 Processor and operating system support 3 Syntax 3 1 Program flow amp structural blocks 3 2 Data types 3 3 C and Pascal borrowed coding styles 3 4 Bridges to other languages 4 Limitations 5 ReferencesHistory editFutureBASIC FB began life in the mid 1980s 1 as ZBasic which was created by Andrew Gariepy and envisioned as a cross platform development system Before long the cross platform aspects were dropped in favor of focusing on Macintosh development ZBasic acquired a devoted following of developers who praised its ease of use and the tight fast code produced by the compiler a legendary labor involving extensive use of hand built 68K assembly language code In 1992 and as the next major step after ZBasic version 5 2 Zedcor Inc the company of the Gariepy brothers Andy Mike Peter and friends based in Tucson Arizona presented FutureBASIC later called FBI 3 In 1995 Staz Software 4 led by Chris Stasny acquired the rights to market FutureBASIC Chris Stasny started this business with an upgraded version namely FBII 5 and with his own development the Program Generator 6 PG PRO a CASE tool The transition from 68k to PowerPC central processing unit CPU was a lengthy process that involved a complete rewrite of the editor by Chris Stasny and an adaptation of the compiler by Andy Gariepy The result of their efforts a dramatically enhanced IDE called FB 3 7 was released in September 1999 8 featuring among many other things a separate compiler application various open hence modifiable runtimes 9 inline PPC assembly a simplified access to the Macintosh Toolbox Application Programming Interface API as well as an expanded library of built in functions Major update releases introduced a full featured Appearance Compliant 10 runtime written by Robert Purves and the Carbon compliance of generated applications Once completely carbonized to run natively on the Mac OS X the FutureBASIC Integrated Development Environment FB IDE was called FB4 and first released in July 2004 Based in Diamondhead Mississippi Staz Software was severely hit by Hurricane Katrina in August 2005 and development pace was slowed at a time when major effort was required to keep the IDE up to date with Apple s evolution towards the Intel based Macintosh In 2007 an independent team of volunteer FB programmers known as the FBtoC team developed a translator FBtoC that allows FB to generate applications as Universal Binaries through the use of the open source GCC compiler which is included with each copy of Apple s Mac OS X system software On January 1 2008 Staz Software announced that FB would henceforth be freeware and FB4 with FBtoC 1 0 was made available 11 Processor and operating system support editSystem requirements for original Macintosh release Motorola 68000 System requirements to create universal binaries with FBtoC Mac OS X v10 4 or higher GCC 4 0 or higher and the Cross development SDKs must be installed Syntax editFutureBasic syntax supports procedural modular styles of programming using function calls and local variables Program flow amp structural blocks edit User defined functions a k a LOCAL FNs in FutureBasic are much like C or Pascal functions They can also be totally insulated from the main program LOCAL MODE statement they allow recursion they can be called dynamically at runtime DEF FN USING statement called automatically by FutureBasic built in event vectors ON EVENT FN statement used as cooperative threaded functions THREADBEGIN statement Specific structures ENTERPROC EXITPROC are used for callback procedures when calling the Macintosh Toolbox The language provides the programmer with a complete set of vectors for event driven applications such as ON MENU ON MOUSE ON DIALOG ON APPLEEVENT ON EDIT ON TIMER etc Other structured keywords include conditional blocks such as LONG IF XELSE END IF DO UNTIL WHILE WEND SELECT CASE CASE ELSE END SELECT FOR NEXT Legacy BASIC language commands such as GOTO and GOSUB RETURN with line numbers and labels while discouraged are supported for educational purposes An example of a simple program to input a number and display Hello World is given below Example FutureBasic program dim i num a These are our variables window 1 open standard window input Number of loops a BASIC input from user num val a convert text to number long if num gt 0 Structured IF for i 1 to num BASIC loop print hello world output text next i end of loop xelse Otherwise print Not today no number entered end if do Wait until Apple Q HandleEvents until gFBQuit so that we can see results Data types edit FutureBasic supports complex data types include single and double precision floating points double length integers arrays strings and records similar to struct in C Of note is the DYNAMIC array structures size of memory footprint grows only when used including DYNAMIC string arrays called INDEX and container variables which can perform string like operations on data streams up to 2Gb in size C and Pascal borrowed coding styles edit Commenting in the code is substantial allowing REMark statements and C style span class cm remark span statements Sections of code can be bookmarked for easy reference Other alternate syntax borrowed from C allows the use of operators such as amp amp Characters in Pascal strings are accessible much like items of an array a 0 length byte a 1 first character in string a While the FutureBasic language still supports old style variable typing with suffix identifiers it provides a modern alternative with the as clause span class k dim span span class w span span class n b span span class w span span class ow as span span class w span span class kt byte span span class k dim span span class w span span class n s span span class w span span class ow as span span class w span span class kt short span span class k dim span span class w span span class n l span span class w span span class ow as span span class w span span class kt long span etc Bridges to other languages edit AppleScript scripts can be assembled with FutureBasic statements then executed on the fly by a running application Example route toAppleScript print return the path to me as string route toScreen long if usr ApplescriptRun message noErr print message end if FutureBasic allows the triggering of UNIX commands Example print a calendar for 2009 open UNIX 1 cal 2009 dim a do line input 1 a print a until eof 1 close 1 FB allows inline C code Example BeginCFunction Simple C function to add two integers long simple add long a long b long sum sum a b return sum endC Define C function so FB can see it toolbox fn simple add long a long b long Create little program to add 2 2 with the C function window 1 print fn simple add 2 2 do HandleEvents until gFBQuit Limitations editNo cross platform development This is a Macintosh only compiler FutureBasic supports Macintosh Intel architectures but does not compile on or for any version of Microsoft Windows 1 and see bottom of page at 2 References edit Index brilorsoftware com Futurebasic Group Launch Point nbsp Wikibooks has a book on the topic of Futurebasic An history of Basic wars on the Mac platform by Jonathan Hoyle for MacCompanion Part I MacCompanion Part II ZBasic 5 reviewed by Dave Kelly for MacTech magazine FBI introduced major enhancements to the BASIC language encouraging the developers to use named constants and local functions instead of subroutines for better structured programs and re usable code Home of Staz Software inc FBII was 32bit clean and could run from Mac 128 to G5 based Macintosh in emulated mode Program Generator is a Rapid application development tool that is flexible enough to build sophisticated applications quickly for the Macintosh pre Mac OS X environments For Mac OS X Appearance compliant programs onwards FutureBASIC uses Apple s Interface Builder pronounced FB cubed A week later the European edition was released which included English Italian German now discontinued and French Archived 2011 07 15 at the Wayback Machine language versions There is also a Japanese language edition Starting with FB 3 a runtime consists of include files written in FutureBASIC that are compiled along with the source code written by the programmer It contains various declarations for structures constants global variables resources functions and procedures that constitute the FutureBASIC language The main runtimes are Standard BASIC Appearance Compliant and Mac Toolbox The Appearance Compliant runtime allows access to most of the features of Apple s Appearance Manager Welcome to the FBtoC Project and FutureBasic Freeware www 4toc com n d Archived from the original on September 13 2019 Retrieved from https en wikipedia org w index php title FutureBASIC amp oldid 1192779098, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.