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.