What
FlagShip is

The FlagShip database development
system consists of

A powerful and flexible programming
language, which is mostly compatible in syntax to Clipper and dBASE. Its
commands and functions are mostly compatible to Clipper (87 up to 5.3),
with many extra features and enhancements. A FoxBase and FoxPro compatibility
is available as far as possible.

The FlagShip Preprocessor
acts as one pass of the Compiler. It performs syntactic source checking
and translates the preprocessor directives and user defined commands to
UDFs (user-defined-functions). The preprocessor uses the standard include
file "std.fh" by default (usually stored in /usr/include), as well as other
optional include files.

The FlagShip Compiler
which translates the preprocessed FlagShip (and also Clipper or xBASE)
source code into C source, checks it for syntax and plausibility, and then
invokes the UNIX C compiler to complete the translation into the machine
language (also named native code).

The accompanying FlagShip Library,
containing all necessary modules to support the language, dynamic variable
scoping, statements and commands,

all standard functions linked
as needed,

the runtime system to support
macro evaluation at run-time,

the database and index engine,
- the input/output system,

the object classes,

a debugger enabling checking
and setting actual variables and more.

Tools for file handling,
interpreter for ad-hock database maintenance, and many more.

Mode of
operation

FlagShip is a true compiler.
The language definition complies to great extent with Clipper definition,
including some extras and enhancements. Thus, all conceptual differences
between Clipper and dBASE apply for FlagShip, too. FoxBase and FoxPro is
supported as far as possible. Most notable is the difference between a
compiler (i.e. FlagShip) and an interpreter (i.e. dBASE). The main property
of a compiler being that it produces executable files, not requiring any
kind of a run-time module. The byproduct is protecting the source code.

linking the object code together
with the FlagShip and Unix/Windows libraries using the standard linker,
either statically or dynamically.

All these steps are done automatically
when invoking FlagShip, however each separate step can be individually
executed with the proper commands. You may use wildcards (*, ? including
regular expressions etc.), make utility, and/or specify additional
flags, e.g. to compile file-wise or to collect required files automatically,
to create GUI, Textual or Stream based application only (instead of the
default hybrid executable), to link statically or dynamically, and much
more.

System
differences

FlagShip takes into consideration,
and adapts to the differences between MS-DOS and various flavors of Unix
for you, so that you do not have to bother with this. Also the small differences
between MS-DOS and MS-Windows/32 system are considered. The main differences
to MS-DOS operating system are:

Composition and length of
filenames: in UNIX, lower and upper characters are distinguished, and
dot (.) is treated as any other character, i.e. it has no predefined meaning
and can be repeated in the filename as many times as chosen. In UNIX the
filenames are usually given in lower case characters, directory and paths
are written with "/" instead of "\". FlagShip translates most of these
differences fully automatically. In MS-Windows, there is no difference
in lower/upper case names.

RAM size and overlays:
Unix (and MS-Win32) has no concept corresponding to DOS overlays. Instead,
it uses paging and/or swapping to achieve virtually unlimited memory. Therefore,
linking is straight-forward, without overlays. FlagShip compiler consider
it automatically. In MS-Windows, the virtual memory manager has similar
functionality as in Unix.

Disk space and file system:
Unix utilizes the concept of mounting physically separate disks into one
file system (a tree-like structure of directories). Thus, from the user's
point of view, all disks and partitions look like one. Asking for free
disk space returns the value for the physical disk and partition on which
the current directory resides. In MS-Windows, separate disk partition space
is reported. In Unix, there is no equivalent to the MS-DOS drive selector
(like C:) in the path specification, but FlagShip translates these automatically
to a Unix directory using the environment variable x_FSDRIVE. Drive letters
are of course fully supported in the MS-Windows port of FlagShip.

Compatibility of programs:
FlagShip supports the structure and semantics of Clipper or dBASE .prg
files as closely as possible, no semantic or syntactic program changes
are necessary. Since .fmt files are essentially program files they are
fully supported, too. The syntax of commands, standard functions and preprocessor
directives is compatible with Clipper '87 to 5.3. Also the Extended C system
of Clipper is supported. In addition, the FlagShip programmer may also
use inline C code within a .prg file or the Open C API interface with additional
features.

Compatibility of database
files: .dbf and .dbt file structure of dBASE III+, Fox or Clipper is
fully supported by the default DBFIDX driver without any transformations.
Dbase IV and V databases have to be converted (by dBase) to dBaseIII format.
FlagShip has own index structure (2-4x faster than Clipper's) which
also automatically checks the data integrity (index vs. database)
- hence one INDEX ON is required at the first invocation. RDDs for other
structures (dBase, FoxPro, Clipper, SQL) are available via Replaceable
Database Drivers, see details here.
Memo files .mem, label files .frm and reports .lbl are compatible
to other Xbase dialects.

Basis
of the FlagShip Language

The FlagShip language is based
on the Xbase standard with all the extensions of CA/Clipper. Therefore,
all Clipper '87 or 5.x programs and most other Xbase dialects (dBASE, FoxBase
etc.) will be compiled by FlagShip without any modification. Only some
system specific differences have to be considered. Even the GUI look
& feel is created automatically without any source code modification,
see examples here.

Please see additional details
in the FlagShip manual, section LNG and REL. The on-line manual named "fsman"
is installed automatically also with the test drive. Complete manual (2500+
pages) is a part of the usual distribution, or available on-line.