Flagship compiler

From Wikipedia, the free encyclopedia
Jump to: navigation, search
FlagShipLogoByMultisoft.png

FlagShip is both object oriented and procedural programming language, based on the xBase language dialect and conventions. FlagShip is available for and is cross-compatible to different computer platforms, such as Linux, Unix and Microsoft Windows. As a true compiler, it translates the very popular database 4GL xBase source code to native 32-bit or 64-bit executables, using the same source-code and databases.

Recent history[edit]

The first FlagShip version was introduced by multisoft Datentechnik GmbH in 1992 to port Clipper, dBASE III+, FoxBase and FoxPro applications to different operating systems, i.e. SCO Unix, IBM AIX, Sun Solaris, HP-UX, Siemens SINIX and many other Unix systems. In 1995 also Linux ports became available. In 2002, Visual FlagShip (abbreviated as VFS) was announced for Linux, and in 2004 additionally for 32/64-bit based Microsoft Windows operating systems. The current VFS product line covers all common 32-bit and 64-bit operating systems (Windows NT, 2000, XP, Vista, 7, Server 2008).

Programming[edit]

FlagShip environment
 
Executing an application,
including the embedded
source-code debugger

FlagShip is a programming and development tool. As with other compilers, it is designed mainly for professional software developers. But because of its simple interface, it is also perfectly suitable for semi-professionals and advanced computer users, who need to create database applications with minimal programming effort. Thanks to its full Clipper compatibility, it is also best suited for porting already available DOS applications to nearly any Unix, Linux or MS-Windows systems.

There is no learning curve if you are already familiar with any xBase dialect, like dBase, FoxBase, FoxPro, Clipper, Visual Objects etc. There are millions of well trained programmers who have been using this easy but powerful 4GL syntax for years. All of them can directly switch to FlagShip. If you don't have any programming experience with xBase, but are familiar with any other language (C, C++, Java, Pascal, Delphi, Basic, Perl etc.), the learning curve is very short. With about 10 commands, you will be able to create your first application.

Visual FlagShip makes an GUI based application from your available textual xBase code automatically. Of course, because object oriented, you can modify the behavior by yourself too, using either classes or corresponding functions in procedural programming. The same source and the same application supports GUI, textual and stream mode (e.g. for Web or background). The i/o mode is either detected automatically from the current environment (heterogenal application), or can be specified at compile time or at run-time using command-line switch.

For example, these few statements, stored in text file address.prg

 USE address ALIAS adr SHARED NEW
 SET COLOR TO "W+/B,GR+/R,W/B,W/B,GR+/BG"
 SET GUICOLOR OFF
 cls
 @  1, 0 SAY "Id No. " GET adr->IdNum   PICT "999999" VALID IdNum > 0
 @  3, 0 SAY "Company" GET adr->Company
 @  3,35 SAY "Branch"  GET adr->Branch  WHEN  !empty(adr->Company)
 @  4, 0 SAY "Name   " GET adr->Name    VALID !empty(adr->Name)
 @  4,35 SAY "First "  GET adr->First
 @  6, 0 SAY "Country" GET adr->Country PICTURE "!" + repli("x",24)
 @  8, 0 SAY "Zip    " GET adr->Zip     PICT "@!" VALID !empty(adr->Zip)
 @  9, 0 SAY "City   " GET adr->City
 @ 10, 0 SAY "Street " GET adr->Street
 
 @  6,35,11.4,47 GET adr->Type RADIOGROUP {"Male","Female","Company","None"}
 @  7,50   GET  adr->Interest  CHECKBOX  CAPTION "Interested party"
 @  8,50   GET  adr->Customer  CHECKBOX  CAPTION "Customer"
 @  9,50   GET  adr->Reseller  CHECKBOX  CAPTION "Reseller"
 @ 10,50   GET  adr->Distrib   CHECKBOX  CAPTION "Distributor"
 READ

... and compiled by simply

>FlagShip address.prg -o address 

... creates self-containing executable (i.e. address.exe in Windows)

Screenshot of Visual FlagShip

Additional examples and screenshots are available via the External links below.

See also[edit]

External links[edit]