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; 13 tahun yang lalu (2011-07-17)) |
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
- ^ Harbour license