Paradigma | Pelbagai paradigma: imperatif, kefungsian, berorientasikan objek, pantulan |
---|---|
Muncul pada | 1999 |
Direka oleh | Antonio Linares |
Pembangun | Viktor Szakáts dan komuniti |
Lepasan stabil | 3.0.0 (17 Julai 2011 | )
Lepasan pratunjuk | 3.1.x tersedia daripada SVN |
Disiplin penjenisan | secara pilihan itik, dinamik, selamat, separuh tegas |
Dialek | Clipper, Xbase++, Flagship, FoxPro, xHarbour |
Dipengaruhi | dBase, Clipper |
Mempengaruhi | xHarbour |
OS | Rentas-pelantar |
Lesen | Sumber terbuka serasi GPL |
Sambugan fail biasa | .prg, .ch, .hbs, .dbf |
Laman web | http://www.harbour-project.org/ |
Harbour ialah sebuah bahasa pengaturcaraan komputer moden. Ia serasi dengan Clipper yang rentas-pelantar, mampu berjalan pada kebanyakan sistem pengendalian (DOS, Microsoft Windows, Linux, varian Unix, beberapa keturunan BSD, Mac OS X, MINIX 3, Windows CE, Pocket PC, Symbian, iPhone, QNX, VxWorks, OS/2/eComStation, BeOS/Haiku, AIX) menggunakan kod sumber dan pangkalan data yang sama.
Walaupun ia sebuah bahasa pengaturcaraan serbaguna yang hebat, namun ia diguna terutamanya untuk mencipta atur cara pangkalan data/perniagaan. Harbour telah diselenggarakan dengan aktif mencari kepelbagaian sambil mengekalkan keserasian kebelakang dengan gaya Clipper. Ia telah melalui pelbagai perubahan dan mendapat kepopularan meluas dalam tahun 1980-an dan 1990-an.
Lesen sumber terbuka Harbour[1] serupa dengan Lesen Awam Am GNU, kecuali ia menyokong aplikasi hak milik, jadi sesebuah aplikasi hak milik boleh dihasilkan dengan Harbour dan diedarkan.
Contoh
Ringkas
Contoh atur cara "hello world" biasa ialah:
? "Hello, world!"
Atau:
QOut( "Hello, world!" )
Atau:
Alert( "Hello, world!" )
Atau, dikurung dalam tatacara nyata:
PROCEDURE Main()
? "Hello, world!"
RETURN
#include "hbclass.ch"
PROCEDURE Main()
LOCAL oPerson := Orang( "Dave" )
oPerson:Eyes := "Invalid"
oPerson:Eyes := "Blue"
Alert( oPerson:Describe() )
RETURN
CLASS Person
DATA Name INIT ""
METHOD New() CONSTRUCTOR
ACCESS Eyes INLINE ::pvtEyes
ASSIGN Eyes( x ) INLINE IIF( ValType( x ) == 'C' .AND. x IN "Blue,Brown,Green", ::pvtEyes := x, Alert( "Invalid value" ) )
// Contoh pentakrifan Method DALAM-BARIS
INLINE METHOD Describe()
LOCAL cDescription
IF Empty( ::Name )
cDescription := "I have no name yet."
ELSE
cDescription := "My name is: " + ::Name + ";"
ENDIF
IF ! Empty( ::Eyes )
cDescription += "my eyes' color is: " + ::Eyes
ENDIF
ENDMETHOD
PRIVATE:
DATA pvtEyes
ENDCLASS
// Contoh pentakrifan Method biasa.
METHOD New( cName ) CLASS Person
::Name := cName
RETURN Self
Rujukan
- Pages using deprecated source tags
- Bahasa pengaturcaraan bertatacara
- Keluarga bahasa pengaturcaraan xBase
- 4GL
- Bahasa pengaturcaraan penjenisan dinamik
- Bahasa pertanyaan
- Bahasa pengaturcaraan pengisytiharan
- Perisian DOS
- Peralatan pengaturcaraan Linux
- Perisian Windows
- Bahasa pengaturcaraan dicipta pada tahun 1999