Harbour (Compiler)

aus Wikipedia, der freien Enzyklopädie
Harbour
Paradigmen: multiparadigmatisch, imperativ, funktional, objektorientiert
Erscheinungsjahr: 1999
Designer: Antonio Linares
Entwickler: Viktor Szakáts und community
Aktuelle Version: 3.2 dev  ()
Beeinflusst von: Clipper
Beeinflusste: xHarbour
Betriebssystem: plattformunabhängig
Lizenz: Open-source GPL-compatible
harbour.github.io

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 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

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

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

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

Einzelnachweise