Minggu, 21 Oktober 2007

Diskripsi Dan Sejarah Free Pascal

Pada mulanya diberi nama FPK-Pascal, kemudian diganti dengan Free Pascal. Free Pascal sangat mirip dengan Turbo Pascal dan Delphi, yang berjalan di sistem operasi DOS, Linux, Win32, OS/2, dan AmigaOS. Untuk operating system lain, seperti FreeBSD, Solaris, BEOS, PALMOS, dan NETBSD masih dalam tahap pengembangan.
Compiler free pascal (ppc386) ditulis dalam bahasa Pascal dan bisa dikompilasi sendiri dengan ppc386. Artinya bila ingin mengubah kompiler ini, langkah yang harus dilakukan adalah mengkompile ulang source-code yang disertakan dalam setiap paket dengan ppc386. Cara yang lain yaitu dengan memakai fpcmake. Lain halnya dengan GNU Pascal yang sama-sama open-source. Bedanya GNU Pascal ditulis dalam bahasa C, sehingga bila ingin melakukan kompilasi ulang kompiler harus menggunakan compiler C.
Tetapi hal ini tidaklah menjadi persoalan bagi seorang programmer. Free Pascal mulai digarap pada bulan Juni 1993 dan baru dirilis ke internet pada tahun 1996 versi 1.0.6 yang dirilis pada bulan Maret tahun 2002. Untuk versi 1.1.x masih dalam tahap pengembangan dan uji coba. Apabila telah stabil maka akan dirilis dalam versi 1.2.x dengan perbaikan segala macam bug yang ditemukan pada versi 1.1.x. Jadi masih sangat disarankan untuk memakai versi 1.0.x bagi yang menggunakan prosessor Intel dan keluarganya. Serta versi 0.99.5 bagi yang memakai prosessor motorolla.
Untuk menghsilkan suatu program yang executable suatu compiler punya langkah dan prosedur tersendiri. Untuk mengetahui cara kerja suatu kompilator kita harus mengetahui perangkat-perangkat pembangun kompilator. Perangkat pembangun kompilator antara lain:

Scanner Generator (Lexical Analyzer), yaitu pemecahan dan pen gelompokan source code menjadi besaran-besaran leksik (token). Tujuannya untuk mengelompokkan token ke dalam konstanta, nama variabel, keyword, dan operator. Misalnya sebuah baris program sebagai berikut:

IF A=B THEN C=B+H ;

Akan dikelompokkan menjadi kelompok IF dan THEN, kelompok A, B, C, dan H, serta kelompok = dan + . Dalam hal ini Scanner harus memproses blank dan komentar.

Parser Generator, Perangkat ini yang akan menghasilkan syntax analyzer. Fungsinya untuk menentukan bagaimana dekomposisinya. Proses ini bisa dianalogikan dengan penentuan struktur kalimat dalam bahasa inggris. Yaitu subject, verb, noun, atau adjective. Dalam analisis sintaksis, yang menjadiperhatian kita adalah pengelompokan token ke dalam kelas sitaksis, seperti expression, statement, dan procedure. Parser memberikan suatu pohon sintaks dengan token sebagai daunnya dan setiap elemen non-daun merepresentasikan suatu klas sintaksis.

Syntax-directed translation Engines, Bagian ini yang akan menghasilkan intermediate form dari source code. Fungsinya untuk menentukan maksud dari suatu source code. Meskipun secara konseptual sintaks dari suatu program dipisahkan dari semantiknya, mereka bekerja sama secara dekat. Keluaran dari bagian ini akan diberikan ke code genereator.

Automatic Code Generators, Yaitu sebuah tool yang mempunya sekumpulan aturan yang akan dipakai untuk mendefinisikan setiap penerjemahan dari bahasa menengah ke bahasa mesin. Keluaran dari code generator diberikan ke code optimizer (Dataflow engines).

Data-flow Engines, Proses pada bagian ini bertujuan untuk menghasilkan object yang lebih efisien.. Optimasi tertentu yang mungkin pada level lokal meliputi evaluasi dari ekspresi konstanta, pemakaian properti operator tertentu , seperti asosiatif, komutatif, dan distributiif Optimasi global lebih lanjut juga bisa dilakukan. Ini meliputi kemunculan dari subekspresi yang identik dan penghapusan statement invariant dalam suatu loop, dan menempatkannya di luar loop. Optimasi ini termasuk optimasi machine-independent. Alokasi register secara optimal merupakan salah satu contoh optimasi yang machine-dependent. Suatu code optimizer yang baik bisa menghasilkan kode yang lebih baik daripada pemrogram assembler yang berpengalaman.

Tidak ada komentar: