Harbour (Compiler)

Programmiersprache

Harbour ist ein freier, plattformunabhängiger Compiler für die xBase Programmiersprache, die hauptsächlich zum Erstellen von Datenbank-Anwendungen verwendet wird. Es ist eine modernisierte Version des Clipper aus den 1980er Jahren, welcher mit .dbf (dBase) - Datenbanken arbeitete.

Harbour
Paradigmen: multiparadigmatisch, imperativ, funktional, objektorientiert
Erscheinungsjahr: 1999
Designer: Antonio Linares
Entwickler: Viktor Szakáts und community
Aktuelle Version: 3.0  (2011-07-17)
Beeinflusst von: Clipper
Beeinflusste: xHarbour
Betriebssystem: plattformunabhängig
Lizenz: Open-source GPL-compatible
harbour.github.io

Harbour kann neben diesen Datenbanken, diverse andere relationale Datenbanken über Replaceable-Database-Drivers (RDD) oder native Anbindung verwalten, wie z. B. Access, SQLITE, MySQL, PostgeSQL u. a. Mittels LetoDB[1] können .dbf Dateien über das World wide Web bearbeitet werden. Die Funktionserweiterungen von Harbour gehen weit über die ursprüngliche Clipper 5.3 und Tools-Bibliothek hinaus.[2] Wie bei Clipper lassen sich über den Makrocompiler sämtliche Funktionen der EXE aufrufen.

Der Harbour-Compiler ist quelloffen und kann, falls keine Binaries für das betreffende Betriebssystem vorhanden sind, selbst kompiliert werden.[3]

Unterstützt werden eine Vielzahl von Betriebssystemen u. a. Microsoft Windows, Linux, Unix-Derivate, BSD, Mac OS X, MINIX 3, Windows CE, Pocket PC und auch MS-DOS. Auch Android-Apps und Konsolenanwendungen lassen sich mit Harbour erstellen.[4][5][6]

Harbour erzeugt C Quellcode. Dieser kann mit verschiedenen C-Compilern wie GCC, MinGW, Clang, ICC, Microsoft Visual C++, Borland C++, Watcom C, Pelles C kompiliert werden.

Im Gegensatz zur Java-Devise „write once, run anywhere“, ist die Devise bei Harbour „write once, compile anywhere“. Konsolenanwendungen können ohne große Modifikationen (Ausnahme Betriebssystem spezifische Besonderheiten) auf andere Systeme portiert werden.

Die Harbour-Programmiersprache ist case-insensitiv, Anwendungen sind schnell und schwer zu dekompilieren.[7] Harbour unterstützt OOP-Programmierung, das Erstellen von Office-Dokumenten mittels OLE und CGI-Webanwendungen.[8] Über die die FANN[9] Library[10] lassen sich Neuronale Netze realisieren.

Historie Bearbeiten

Harbour wurde als freier Compiler 1999 von Antonio Linares[11] entwickelt, als Nachfolge des Clipper-Compilers, welche keine 32-Bit-Programme erzeugen konnte (siehe auch Clipper-Programmiersprache). Es ist ein Kommandozeilenprogramm ohne Benutzeroberfläche. Der Name ist eine Anlehnung an Clipper. Harbour stellt den Heimathafen der Clipper dar.

Releases

  • 2005-06-20 Release Alpha build 45
  • 2007-01-22 Release 0.99.1 Beta 1
  • 2008-08-10 Release 1.0.0
  • 2009-12-22 Release 2.0.0 (2009 wurde der Compiler grundlegend revidiert hauptsächlich von Viktor Szakáts und Przemyslaw Czerpak).
  • 2011-07-17 Release 3.0.0 (Letztes Stable Release)

Ab 2011 gibt es nur noch Entwicklerversionen. Hierbei gibt es die Branches 3.2 und 3.4.

Zum Testen von Code-Schnipseln ohne Kompilierung und ohne Installation eines Programmpakets lassen sich die Formulare der Funktionsreferenz auf der offiziellen Homepage[2] nutzen oder auch andere Seiten.[12]

Grafische Benutzeroberflächen Bearbeiten

Die erste Harbourversion unterstützte genauso wie der Clipper-Compiler keine GUI, sondern nur Konsolenanwendungen.

Aktuell lässt sich die QT-GUI integrieren.[13] Fertige Programmpakete mit QT-Gui gibt es für Windows und Linux.[14]

Für Windows gibt es das Harbour-MiniGUI (HMG) Programmpaket, welches mittels Windows-Api freie Windowsanwendungen ermöglicht. Dieses wurde von Roberto Lopez 2002 auf Basis der Alpha-Version des Harbour-Compilers entwickelt. 2004 entstand MiniGUI 1.0, ab 2005 folgte die HMG 2.0 extended edition. Als Compiler wurde Borland C++ verwendet. HMG-Anwendungen und das Programmpaket sind auch unter Linux mittels Wine lauffähig.[15]

Die aktuellste grafische Benutzeroberfläche ist HMG extended.[16]

Außer den genannten GUIs gibt es Versionen mit GTK und andere wie HWGui,[17][18] und ooHG.[19]

 
hbIDE für QT

IDE Bearbeiten

Für die Programmierung reicht oft ein einfacher Editor aus. Notepad++ unterstützt Syntaxhighlighting für xBase (s. HMG-Forum). Formulare und die Gestaltung der Benutzeroberfläche lassen sich jedoch einfacher mit einer IDE erstellen. Für die Gestaltung mit QT gibt es die HBIDE,[20] für Windows verschiedene Versionen der HMG-IDE. Die HMG-extended IDE ist aufgrund der erweiterten Controls nicht abwärtskompatibel.

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. Leto DB
  2. a b Harbour Reference Guide
  3. How to Build
  4. How to build HARBOUR to compile PRG for Android
  5. Programming on Harbour for Android
  6. Build Harbour on Android using Termux the easy way
  7. Comparing computer languages, Harbour, VFP and others
  8. Harbour CGI
  9. Fast Artificial Neural Network Library
  10. hrb4fann
  11. Interview with Antonio Linares
  12. Harbour Playground
  13. Harbour Core - How to enable optional components
  14. Marinas-GUI
  15. HMG "Harbour minigui" en Linux con Wine
  16. HMG extended, MinG-Version
  17. Third-party packages
  18. HwGUI Gui Library for Harbour
  19. OOHG - Object Oriented (x)Harbour GUI
  20. hbIDE für QT