Content deleted Content added
→Built-in data types: fix syntaxhighlight errors |
mNo edit summary |
||
Line 5:
}}
{{Use dmy dates|date=June 2014}}
{{Infobox programming language
| name = Harbour Project
Line 34 ⟶ 33:
[[IBM AIX|AIX]] and [[MS-DOS]].
==
The idea of a free software Clipper compiler had been floating around for a long time and the subject has often cropped up in discussion on comp.lang.clipper. Antonio Linares founded the Harbour project and the implementation was started in March 1999. The name "Harbour" was proposed by Linares, it is a play on a [[Clipper ship|Clipper]] as a type of ship. Harbour is a synonym for port (where ships dock), and Harbour is a port of the Clipper language.
In 2009, Harbour was substantially redesigned, mainly by Viktor Szakáts and Przemyslaw Czerpak.
==Database support==
Harbour extends the Clipper Replaceable Database Drivers (RDD) approach. It offers multiple RDDs such as [[DBASE|DBF]], DBFNTX, DBFCDX, DBFDBT and DBFFPT. In Harbour multiple RDDs can be used in a single application, and new logical RDDs can be defined by combining other RDDs. The RDD architecture allows for inheritance, so that a given RDD may extend the functionality of other existing RDD(s). Third-party RDDs, like RDDSQL, RDDSIX, RMDBFCDX, [[Advantage Database Server]], and Mediator exemplify some of the RDD architecture features. DBFNTX implementation has almost the same functionality of DBFCDX and RDDSIX. NETIO and LetoDB<ref>{{cite web|url=https://sourceforge.net/projects/letodb |title=LetoDB |publisher=Sourceforge.net |access-date=2013-12-09}}</ref> provide remote access over [[Transmission Control Protocol|TCP]] protocol.
Line 73 ⟶ 71:
===Macro Operator (runtime compiler)===
One of the most powerful features of xBase languages is the [[Macro (computer science)|Macro]] Operator '&'. Harbour's implementation of the Macro Operator allows for runtime compilation of any valid Harbour expression. Such a compiled expression may be used as a VALUE, i.e. the right side of an assignment (rvalue), but such a compiled expression may be used to resolve the left side (lvalue) of an assignment, i.e. private, or public variables, or a database field.
Line 95 ⟶ 92:
===Object Oriented Programming===
Programming in an OOP style is a broader issue than a specific library or a specific interface, but OOP programming is something many Clipper programmers have come to expect. CA-Clipper 5.2 and especially 5.3 added a number of base classes, and a matching OOP syntax. Libraries such as [https://web.archive.org/web/20010501165630/http://appsolutions.com/Classy/ Class(y)], FieWin, Clip4Win, and Top Class provide additional OOP functionality.
Line 106 ⟶ 102:
===Built-in data types===
Harbour has six scalar types
Literal (static) representation of scalar types:
Line 141 ⟶ 137:
Due to the dynamic nature of {{mono|PRIVATE}} and {{mono|PUBLIC}} variables, they can be created and destroyed at runtime, can be accessed and modified by means of runtime macros, and can be accessed and modified by Codeblocks created on the fly.
===Control
The basic control structures include all of the standard [[dBase]], and [[Clipper (programming language)|Clipper]] control structures as well as additional ones inspired by the [[C (programming language)|C]] or [[Java (programming language)|Java]] programming languages:
Line 239 ⟶ 235:
[STATIC] FUNCTION ''SomeProcedureName''( ''Param1'' [, ''ParamsN''] )
[[Subroutine|Procedures]] and [[
The ''INIT'' or ''EXIT'' optional qualifiers, will flag the procedure to be automatically invoked just before calling the application startup procedure, or just after quitting the application, respectively. [[Parameter (computer science)|Parameter]]s passed to a procedure/function appear in the subroutine as local variables, and may accept any type, including references.
Line 349 ⟶ 345:
* hbi18n – Tools to localizing text on applications
* hbdoc – Creates documentation for Harbour
All tools are multi-platform.
Line 374 ⟶ 371:
* '''[http://marinas-gui.org/ Marinas-GUI]''' – Multi-Platform QT Based GUI Development Package for Harbour. Marinas-GUI downloads as a complete installation package for the chosen target platform (IDE, Version Control, Harbour/C Compiler, Libraries etc.) – Basically install and start coding and compiling
==
* [[Visual FoxPro]]
* [[Visual Objects]]
Line 383 ⟶ 380:
{{Reflist}}
==
* {{official website|https://harbour.github.io}}
* [https://harbour.github.io/the-oasis/ The Oasis] Clipper, FoxPro and Xbase++ community repository
Line 390 ⟶ 387:
* [https://groups.google.com/group/harbour-users/ Harbour Users Mailing List]
* [http://www.kresin.ru/en/harbour.html Extensive Harbour documentation, libraries, tools site]
* [https://github.com/Petewg/harbour-core/wiki Harbour Wiki (Harbour Functions Dictionary)]
{{xBase}}
|