Flagship compiler
Encyclopedia
FlagShip is both object oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 and procedural
Procedural programming
Procedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm, derived from structured programming, based upon the concept of the procedure call...

 programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

, based on the xBase
XBase
xBase is the generic term for all programming languages that derive from the original dBASE programming language and database formats. These are sometimes informally known as dBASE "clones"...

 language dialect and conventions. FlagShip is available for and is cross-compatible
Computer compatibility
A family of computer models is said to be compatible if certain software that runs on one of the models can also be run on all other models of the family. The computer models may differ in performance, reliability or some other characteristic...

 to different computer platforms, such as Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. As a true compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, it translates the very popular database 4GL xBase source code to native 32-bit
32-bit
The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....

 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
DBASE
dBase II was the first widely used database management system for microcomputers. It was originally published by Ashton-Tate for CP/M, and later on ported to the Apple II and IBM PC under DOS...

 III+, FoxBase and FoxPro
FoxPro 2
FoxPro is a text-based procedurally-oriented programming language and DBMS, originally published by Fox Software and later by Microsoft, for MS-DOS, MS Windows, Apple Macintosh, and UNIX....

 applications to different operating systems, i.e. SCO Unix, IBM AIX, Sun Solaris, HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...

, Siemens SINIX
SINIX
SINIX was a variant of the Unix operating system from Siemens Nixdorf Informationssysteme. Supersedes SIRM OS and Pyramid Technology's DC/OSx. Its last release under the SINIX name was version 5.43 in 1995...

 and many other Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 systems. In 1995 also Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 ports became available. In 2002, Visual FlagShip (abbreviated as VFS) was announced for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, and in 2004 additionally for 32/64-bit based Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 operating systems. The current VFS product line covers all common 32-bit
32-bit
The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....

 and 64-bit
64-bit
64-bit is a word size that defines certain classes of computer architecture, buses, memory and CPUs, and by extension the software that runs on them. 64-bit CPUs have existed in supercomputers since the 1970s and in RISC-based workstations and servers since the early 1990s...

 operating systems (Windows NT, 2000, XP, Vista, 7, Server 2008).

Programming

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
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

, 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
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

, you can modify the behavior by yourself too, using either class
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

es or corresponding functions in procedural programming
Procedural programming
Procedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm, derived from structured programming, based upon the concept of the procedure call...

. 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)
Additional examples and screenshots are available via the External links below.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK