Free Pascal
Free Pascal adalah kompilator sumber terbuka untuk bahasa Pascal dan Object Pascal yang berjalan secara lintas platform. Saat versi 2.6.0, kompilator ini dapat menghasilkan aplikasi di sekitar 20 pasangan arsitekur-sistem operasi (lihat [1]). Untuk arsitektur-sistem operasi yang kecil (misalnya perangkat genggam), aplikasi dapat dihasilkan melalui kompilasi silang.
Free Pascal | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tipe | kompilator | ||||||||||
Versi pertama | 1997 | ||||||||||
Versi stabil | |||||||||||
Genre | Kompiler | ||||||||||
Lisensi | GNU General Public License for the compiler and utility executables. GNU General Public License with static linking exception for the runtime, package, component and other libraries that become part of executables created with the compiler. | ||||||||||
| |||||||||||
Sumber kode | |||||||||||
| |||||||||||
Sejarah
Ketika Borland memutuskan tidak akan ada Turbo Pascal 8.0 dan produk berikutnya (Delphi) hanya akan tersedia untuk platform Windwos, seorang pelajar Jerman, Florian Paul Klämpfl memulai pembuatan kompilator Pascal yang ditargetkan memiliki kompatibilitas tinggi dengan Turbo Pascal namun tersedia di sebanyak mungkin platform dan menghasilkan kode 32-bit. Platform pertama yang didukung adalah DOS dengan go32v1 extender. Saat itu, kompilatornya bernama FPK Pascal dan ditulis dalam Turbo Pascal ditambah dengan beberapa Assembly untuk hal-hal yang tidak dapat dilakukan dari bahasa tingkat tinggi. Karena Turbo Pascal merupakan kompilator 16-bit, maka FPK Pascal juga 16-bit walaupun kode yang dihasilkannya 32-bit. 2 tahun setelahnya, FPK Pascal mampu mengompilasi kode sumbernya sendiri, menjadikannya 32-bit dan tidak lagi tergantung dengan Turbo Pascal. Kompilator tersebut pun mulai didistribusikan di Internet dan namanya diganti menjadi Free Pascal Compiler (FPC).
Dialek
Dialek utama yang diimplementasikan oleh Free Pascal adalah dialek yang menjadi standar de facto oleh programmer Pascal di seluruh dunia, yaitu Borland Pascal. Namun, tim pengembang tidak menutup kesempatan jika ada yang ingin menambahkan dukungan untuk dialek ANSI/ISO Pascal (dukungan dasar sudah tersedia di versi yang masih dikembangkan). Selain dialek utama tersebut, terdapat beberapa dialek lain untuk mendukung kompatibilitas dengan implementasi bahasa Pascal oleh kompilator lain. Saat ini setidaknya ada 6 dialek* yang didukung oleh Free Pascal, dengan perbedaan terletak pada fitur-fitur yang dapat digunakan dan semantik beberapa pengenal[2]:
Overloading | Class, Interface, Exception | Integer = LongInt | String = AnsiString | @procvar | Komentar bersarang | Konversi otomatis PChar -> String | cvar | Kepala fungsi forward harus diulang ketika diimplementasikan | |
---|---|---|---|---|---|---|---|---|---|
FPC (default) | Ya | Tidak | Tidak | Tidak | Ya | Ya | Ya | Ya | Ya |
ObjFPC | Ya | Ya | Ya | Tidak | Ya | Ya | Ya | Ya | Ya |
TP | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak | Tidak |
Delphi | Tidak | Ya | Ya | Ya | Tidak | Tidak | Tidak | Tidak | Ya |
* tidak terdapat informasi mengenai perbedaan fitur-fitur di atas untuk dialek MacPas dan belum ada dokumentasi untuk dialek ISO