FreeBASIC adalah bebasopen sourceGPL ), 32-bit BASIC compiler untuk Microsoft Windows , dilindungi-mode DOSDOS extender ), Linux ,FreeBSD dan Xbox .

FreeBASIC memungkinkan tingkat tinggi dukungan untuk program-program yang ditulis untuk QBasic , dengan menggunakan “QB” dialek. Banyak program yang ditulis untuk QBasic akan mengkompilasi dan menjalankan dalam mode ini tanpa perubahan apapun yang diperlukan. Namun, sebagian besar program substansial perlu perubahan yang dibuat sebelum mereka dapat dikompilasi dengan menggunakan dialek standar.

Fitur

FreeBASIC adalah self-hosting compiler, yang kira-kira 120.000 baris kode (compiler hanya inti, tidak termasuk perpustakaan).

Ini membuat penggunaan GNU binutils pemrograman alat sebagai backends dan dapat menghasilkan konsol dan grafis / GUI executables, selain dinamis dan statis perpustakaan . FreeBASIC sepenuhnya mendukung penggunaan C perpustakaan dan parsial C + + dukungan perpustakaan. Hal ini memungkinkan programmer menggunakan dan membuat perpustakaan untuk C dan banyak bahasa lainnya.

Ini mendukung gaya preprocessor C , mampu multiline macro , kompilasi bersyarat dan file inklusi. Tetapi bukanlah preprocessor benar seperti terjadi pada saat yang sama seperti parsing. Ini berarti bahwa hal itu dapat mengakses informasi simbol, dan bahkan mengatur dialek (yang restart parsing).

FreeBASIC telah dinilai dekat dalam kecepatan dengan alat utama, seperti GCC.

Sintaks

upaya sintaks FreeBASIC tinggal sedekat mungkin dengan BASIC sintaks mungkin, khususnya yang dari QuickBasic . Meskipun sintaks upaya untuk tetap kompatibel dengan pendahulunya, FreeBASIC berikut standar modern dan praktek coding. fitur standar prosedural, bersama dengan berorientasi objek fitur seperti jenis sebagai obyekoperator overloadingfungsi overloadingruang nama , dll, telah ditambahkan di FreeBASIC.

FreeBASIC’s akhir baris saat akhir-of-line karakter yang ditemukan, atau dengan usus besar . Karena itu, garis tidak perlu memiliki karakter khusus (seperti titik koma dalam C ) untuk memberitahu compiler dari akhir baris. Beberapa pernyataan dapat ditulis dalam satu baris dengan memisahkan setiap pernyataan dengan titik dua : .

FreeBASIC mendukung blok komentar dengan akhir baris komentar. komentar baris Kendali yang dibuat dengan tanda apostrof ' , sedangkan blok kode komentar dimulai dengan /' dan diakhiri dengan '/ .

Kompatibilitas

FreeBASIC adalah pengganti QuickBasic bahasa pemrograman . Perubahan yang telah dilakukan selama pengembangan untuk menjaga FreeBASIC kompatibel dengan utilitas modern, dan memfasilitasi fitur program lanjutan. Agar compiler bergerak maju, GCC memenuhi persyaratan, dan juga mempertahankan kemampuan untuk menggunakan bahasa QuickBasic yang kompatibel, pilihan set-lang diciptakan.

  1. Ketika memilih Bahasa Set FB (-lang fb sebagai argumen command-line ), semua fitur baru yang FreeBASIC menawarkan yang tersedia, dan “hackish” fitur dari QuickBasic (yang tidak sesuai dengan praktek pemrograman modern) adalah batasan.
  2. Set FB-Lite (-lang fblite Bahasa) menyediakan akses ke sebagian besar non-objek baru berorientasi fitur, dari FreeBASIC, namun memungkinkan gaya pengkodean yang mirip dengan versi BASIC.Sintaks aturan, seperti memungkinkan variabel implisit, sufiks, GOSUBRETURNlabel angka , dll, diizinkan dalam pilihan ini lang.
  3. Set QB (-lang QB Bahasa) mirip dengan-lang fblite, tetapi lebih terfokus pada khusus mereplikasi QBASIC perilaku. seperti-lang QB-dirancang untuk membuatnya lebih mudah untuk menjalankan program awalnya ditulis untuk QBASIC, dan berguna dalam kasus-kasus -lang fblite mana tidak kompatibel cukup.
 Contoh kode
 / 'Kelas gerak vektor' /
 Jenis Vector
	 W sebagai Integer
	 H Integer
	 Deklarasi Pembuat (NW sebagai Integer, NH sebagai integer)
 Akhir Jenis

 Pembuat Vector (NW sebagai Integer, NH sebagai integer)
	 W = NW
	 H = NH
 End Pembuat

 / 'Buat kelas obyek' /
 Jenis Obyek
	 Swasta:
		 X sebagai Integer
		 Y sebagai Integer
		 Gerakan sebagai Pointer Vector
	 Umum:
		 / 'Buat publik metode, termasuk sebuah destruktor untuk membersihkan otomatis' /
		 Deklarasi Pembuat (NX sebagai Integer, NY sebagai integer)
		 Deklarasi Destructor ()
		 Declare Sub SetMotion (Motion sebagai Pointer Vektor)
		 Declare Sub Pindah ()
		 Properti menyatakan GetX sebagai Integer
 Akhir Jenis

 / "Set awal koordinat '/
 Pembuat Obyek (NX sebagai Integer, NY sebagai integer)
	 X = NX
	 Y = ny
 End Pembuat

 / 'Bersihkan dialokasikan memori' /
 Obyek destruktor ()
	 Gerakan menghapus
 Akhir Destructor

 / 'Set gerakan vektor' /
 Sub Object (. SetMotion Pointer Motion sebagai Vektor)
	 Gerakan = Motion
 End Sub

 / 'Pindahkan objek berdasarkan Surat gerakan vektor' /
 Sub Object (. Pindah)
	 X + = W Gerakan->
	 Y + = H Gerakan->
 End Sub

 / 'A pengambil untuk X, karena pribadi' /
 Properti Objek. GetX sebagai Integer
	 Kembali X
 Akhir Properti

	 / 'UTAMA CODE' /

 / 'Buat baru contoh Objek pada koordinat 100, 100' /
 Dim Player sebagai Obyek <Object> Tipe = (100, 100)

 / 'Dinamis mengalokasikan objek vektor baru
 bergerak meninggalkan 10 unit dan turun 5 '/
 Player (. SetMotion Vector baru (- 10, 5))

 / 'Membuat Player update lokasinya' /
 Player (. Pindah)

 'Tampilkan / baru X, 90' /
 Cetak Player. GetX

 / "Karena Player adalah variabel lokal, destruktor adalah
 disebut pada akhir lingkup otomatis '/

Sumber ; http://en.wikipedia.org