Harbour (perisian)

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 HarbourHarbour license 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

OOP
 #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 

Kategori:Bahasa pengaturcaraan bertatacara
Kategori:Keluarga bahasa pengaturcaraan xBase
Kategori:4GL
Kategori:Bahasa pengaturcaraan penjenisan dinamik
Kategori:Bahasa pertanyaan
Kategori:Bahasa pengaturcaraan pengisytiharan
Kategori:Perisian DOS
Kategori:Peralatan pengaturcaraan Linux
Kategori:Perisian Windows
Kategori:Bahasa pengaturcaraan dicipta pada tahun 1999