“xBase programming language” means a set of “dialects” derived ultimately from DBIII (in the 80s) and subsequent improvements (FoxBASE, Clipper, QuickSilver in the 80s and 90s, etc..). They all were languages dedicated to the management of databases and equipped with specific functions to facilitate such management.
The xBase languages have established themselves as a tool for development of business applications in an era when there was no mouse, no Windows, and users got used to interact with programs essentially using a monochrome monitor and a keyboard. Clipper had an extraordinary luck, all over the world, and was used by millions of programmers (myself included). Clipper per se did not consider Windows, but had an open structure, so open that the independent developers created a “bridge” between Clipper and Windows, allowing the xBase language par excellence not to die in the new computing world characterized by windows and graphics. Today’s Harbour and xHarbour allows compiling with no substantial changes even old programs written for DBIII, but also offer a complete development environment to create applications with GUI (graphic user interface) and exploit the full potential of modern systems.
In short, Harbour and xHarbour are compilers able to transform an xBase source to an executable program for Windows / Linux / et.al. environments. They derive conceptually from Clipper and accept its language and syntax, and replicate and extend the open structure.
They are actually two pseudo-compilers that convert the source (= the program as the programmer writes, which is a human being and would have terribly hard times to write programs directly using machine code, the only thing the computer can understand) in a sort of intermediate code based on a well-known, fundamental and universal programming language, C language, and then invoke a C compiler (= program that pre-digests the sources and turns them into machine code) to generate the final executable.
The common denominator, C, gives versatility to the language, and allows you to embed almost anything in the programs, through the use of C language directly or through add-ons C-based. Don’t forget that Windows is written mostly in C, as well as Unix / Linux etc..
If anyone at this point was wondering what need there is to use a pseudo-C compiler, etc., and whether it would be better to write C programs directly instead, he could answer himself with an analogy, asking himself, for example, why one needs to buy shoes ready-made when one can very well buy leather, rubber, glue and proceed with much greater freedom and personal satisfaction to the realization of his shoes.
As I said before, [x] Harbour and similar (Alaska xBase, Visual FoxPro, Flagship etc.) are “high-level” languages. That does not mean that they rank noble against “low level” languages as C. High and low level in computer jargon are to designate their level of abstraction from machine code, the unmanageable (for us humans) binary code that is the only thing that ultimately computers directly execute. The more one abstracts from these instructions elementary, the higher the level. In practice, a single statement in a high level language corresponds to hundreds or thousands of elementary, or low-level, operations. In this way, the programmer can write less code and focus on the logic of the program, leaving out details. Of course, a high-level language does not allow a fine control of the individual instructions or to make special operations detail, in the same way in which a bulldozer is not okay to remove an inch of sand from an archaeological excavation site, but this detailed control, for management applications, is not necessary more than is necessary a badger brush to pave a building area.
[X] Harbour stands for the two compilers Harbour and xHarbour. They are very similar, but this is understandable when you consider that they are in fact two heads of the same… monster.
The history of these compilers is long. You’ll find some “historical” notes here.