FlagShip
FlagShip is both an 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 xBase source code to native 32-bit or 64-bit executables, using the same source-code and databases.

Recent history
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. OpenServer, AIX, Solaris, HP-UX, 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 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

FlagShip is a programming and development tool designed mainly for professional software developers. 

Visual FlagShip makes a GUI-based application from textual xBase codem which can then be modified using object-oriented programming or 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.

Example
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 

are compiled by:

 >FlagShip address.prg -o address

which creates an executable (i.e. address.exe in Windows)

See also
xBase
 Clipper (programming language)
Harbour (software)

External links
 FlagShip (multisoft) home page
 VFS screenshots and specs

Fourth-generation programming languages
XBase programming language family
Query languages