Harbour (programming language): Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 7 templates: del empty params (5×); hyphenate params (6×);
m provinding fix; ce
Line 64:
[[Sun Studio (software)|Sun Studio]].
 
Harbour can make use of multiple [[Graphic Terminal emulationsemulation]]s, including [[console driversdriver]]s, and Hybrid Console/GUIs, such as GTWvt, and GTWvg.
 
Harbour supports external GUIs, free (e.g. HBQt, HWGui, MiniGUI (latest version based on Qt) and [[QtContribs]]<ref>{{cite web |title=QtContribs - Harbour Qt Projects |url=https://sourceforge.net/projects/qtcontribs/ QtContribs]|website=SourceForge |language=en}}</ref>) and commercial (e.g. FiveWin, Xailer). HBQt is a library provindingproviding bindings to Qt. HBIDE application is a sample of HBQt potential.
 
Harbour is 100% Clipper-compatible<ref>{{cite web|url=https://harbour.github.io/ |title=Official Harbour page |publisher=The Harbour Project |access-date=2013-12-09}}</ref> and supports many language syntax extensions including greatly extended run-time libraries such as [[OLE Automation|OLE]], [[Blat (software)|Blat]], [[OpenSSL]], [[FreeImage]], [[GD Graphics Library|GD]], hbtip, hbtpathy, [[PCRE]], hbmzip ([[zlib]]), hbbz2 ([[bzip2]]), [[cURL]], [[Cairo (graphics)|Cairo]], its own implementation of CA-Tools, updated NanFor libraries and many others. Harbour has an active development community and extensive third party support.
Line 78:
Additionally, the Macro Operator may compile and execute function calls, complete assignments, or even list of arguments, and the result of the macro may be used to resolve any of the above contexts in the compiled application. In other words, any Harbour application may be extended and modified at runtime to compile and execute additional code on-demand.
 
LatestThe latest Macro compiler can compile any valid Harbour code including code to pre-process before compile.
 
Syntax:
Line 94:
is the short form of &( SomeId + "postfix" ).
 
===Object Orientedoriented Programmingprogramming===
 
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)], Fivewin, Clip4Win, and TopClass provide additional OOP functionality.
Line 103:
[[File:Harbour Sample Code.png|thumb|600px|Harbour code on HBIDE]]
 
Harbour as every xBase language is case insensitive and can optionally accept keywords written just by their first four characters.
 
===Built-in data types===
Harbour has 6six scalar types : [[Null pointer|Nil]], [[String (computer science)|String]], [[calendar date|Date]], [[Logical]], [[Integer|Numeric]], [[Pointer (computer programming)|Pointer]], and 4four complex types: [[Array data type|Array]], [[Object (computer science)|Object]], [[Closure (computer science)|CodeBlock]], and [[Hash table|Hash]]. A scalar holds a single value, such as a string, numeric, or reference to any other type. Arrays are ordered lists of scalars or complex types, indexed by number, starting at 1. Hashes, or [[associative array]]s, are unordered collections of any type values indexed by their associated key, which may be of any scalar or complex type.
 
Literal (static) representation of scalar types: