Skip to main content

Harbour Intro

Harbour is an open-source, multi-platform programming language designed for creating data-centric business applications. It is a powerful tool for developers who require a balance of high performance, flexibility, and portability.


Core Characteristics

Harbour is a multi-paradigm language, supporting both procedural and object-oriented programming. Its procedural nature allows for a structured, top-down approach to problem-solving, which is ideal for step-by-step logic in business processes. Simultaneously, its object-oriented features enable developers to create modular, reusable, and more easily maintainable code.

Harbour's status as a multi-platform language is one of its key strengths. It can be compiled and run on a wide variety of operating systems, including Windows, macOS, and Linux. This portability ensures that applications can be deployed across diverse environments without significant code changes.


Compiler and Runtime System

The language's architecture is a key part of its design, using a unique compiler-interpreter hybrid model. When a developer writes code in Harbour, it is first compiled into an intermediate pseudo-code. This pseudo-code is not machine-specific but a generic format. It is then executed by the Harbour Virtual Machine, which is a specialized runtime system.

This two-step process provides several advantages:

  • Speed: By compiling the code first, the Harbour system can optimize the application for performance, making it faster than a purely interpreted language.
  • Flexibility: The virtual machine allows for dynamic features, such as on-the-fly code evaluation, which can be useful for debugging and rapid prototyping.
  • Portability: The same compiled pseudo-code can be executed by different virtual machines tailored for various operating systems, which is what gives Harbour its cross-platform capability.

In essence, Harbour's architecture combines the speed of a compiled language with the flexibility of an interpreted one, making it a highly efficient and adaptable choice for modern application development.