Harbour (perisian)
| 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.
Isi kandungan |
Contoh [sunting]
Ringkas [sunting]
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
OOP [sunting]
#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