www.wikidata.id-id.nina.az
Kompilator atau kompiler Inggris compiler adalah sebuah program komputer yang berguna untuk menafsirkan program komputer yang ditulis dalam bahasa pemrograman tertentu bahasa asal menjadi program yang ditulis dalam bahasa pemrograman lain bahasa sasaran Terlepas dari pengertiannya yang demikian relatif luas istilah kompilator biasa digunakan untuk program komputer yang menafsirkan program yang ditulis dalam bahasa pemrograman tingkat tinggi semacam bahasa Pascal C BASIC FORTRAN Visual Basic Visual C Java xBase atau COBOL menjadi bahasa mesin biasanya dengan bahasa Assembly sebagai perantara Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama tetapi hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik penafsiran dengan interpreter penafsir Daftar isi 1 Arsitektur kompilator 2 Tahap tahap dalam kompilasi 2 1 Analisis leksikal 2 2 Analisis sintaksis 2 3 Analisis semantik 2 4 Menghasilkan kode sasaran 3 Kompilator single pass dan kompilator multi pass 4 Lihat pula 5 ReferensiArsitektur kompilator SuntingArsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi antara program dengan tugas spesifik masing masing Program program tersebut beserta tugasnya secara umum terdiri dari Compiler kompilator itu sendiri yang menerima kode sumber dan menghasilkan bahasa tingkat rendah assembly Assembler perakit yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin Linker penaut yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi executable Compiler yang menggunakan arsitektur ini misalnya GCC Clang dan FreeBASIC Beberapa kompilator tidak menggunakan arsitektur di atas secara gamblang dikarenakan komunikasi antara program jauh lebih lambat dibandingkan jika komunikasi dilakukan secara internal di dalam satu program Sehingga kompilator kompilator tersebut mengintegrasikan assembler dan linker di dalam kompilator Namun biasanya arsitektur yang digunakan pun tidak kaku dan mengizinkan penggunaan assembler maupun linker eksternal berguna jika assembler dan linker internal bermasalah atau memiliki galat Kompilator yang menggunakan arsitektur ini salah satunya adalah Free Pascal Profesor Niklaus Wirth dalam bukunya Compiler Construction 1 menyatakan bahwa penggunaan assembler sebagai bahasa perantara sering kali tidak memberikan keuntungan yang signifikan sehingga dia menyarankan agar kompilator langsung menghasilkan bahasa mesin Kompilator dengan arsitektur seperti ini dapat berjalan dengan sangat cepat seperti yang ditunjukkan pada kompilator orisinil Pascal Modula 2 dan Oberon yang dibuat oleh sang profesor Tahap tahap dalam kompilasi SuntingSuatu kompilator harus menganalisis kode asal terlebih dahulu untuk memahami seluruh kode tersebut Hasil dari analisis itu berbentuk representasi dari kode asal yang nanti akan ditafsirkan oleh kompilator ke dalam bahasa sasaran Oleh karena itu kompilator terdiri dari beberapa tahap Setiap tahap memiliki tugas masing masing dalam proses kompilasi 2 Analisis leksikal Sunting Artikel utama Analisis leksikal Analisis leksikal adalah tahap di mana kompilator menganalisis setiap karakter seperti huruf tanda kurung dsb dalam kode asal dan menghasilkan deretan simbol yang masing masing dinamakan token 2 Biasanya simbol simbol tadi disimpan dalam bentuk larik 3 Analisis sintaksis Sunting Artikel utama Parsing Analisis sintaksis atau parsing adalah tahap di mana kompilator menganalisis token token yang dihasilkan dalam proses analisis leksikal dan mengelompokkan mereka menjadi suatu pohon urai berdasarkan struktur bahasa asal 2 Analisis semantik Sunting Artikel utama Analisis semantik Analisis semantik adalah tahap atau proses yang menggunakan pohon uraian hasil dari analisis sintaksis tadi untuk memastikan konsistensi semantik dari program dan juga mengoptimalkan struktur dari program Proses ini juga mengumpulkan dan menganalisis informasi mengenai tipe data dari variabel variabel yang ada di dalam program Informasi tentang tipe data ini disimpan dalam tabel simbol atau langsung di dalam pohon urai parsing yang nanti akan dimanfaatkan dalam penghasilan kode sasaran target code 4 Menghasilkan kode sasaran Sunting Artikel utama Code generation Pada tahap ini kompilator menggunakan semua informasi mengenai kode asal yang telah dikumpulkan dalam tahap tahap sebelumnya untuk menghasilkan kode sasaran 4 Kode sasaran dapat berupa representasi perantara yang nanti dapat diproses oleh komponen lain seperti assembler LLVM Java dsb atau bisa jadi langsung berupa kode mesin Dalam proses ini kompilator juga melakukan pengoptimalan kode sasaran agar kinerja program menjadi lebih baik 1 Kompilator single pass dan kompilator multi pass SuntingMetode yang digunakan kompilator dalam menggunakan tahap tahapnya terbagi menjadi dua Kompilator dapat memproses kode asal secara keseluruhan dalam suatu tahap lalu mengopor hasil dari proses tersebut ke tahap berikutnya di mana tahap berikutnya kembali memproses kode asal secara keseluruhan inilah yang dinamakan kompilator multi pass yaitu kompilator tersebut memproses kode asal dalam dua kali jalan atau lebih Sedangkan kompilator single pass memproses hanya sebagian dari kode asal dalam suatu tahap lalu mengoper hasil dari proses tersebut kepada tahap berikutnya jika semua tahap sudah dilalui maka kompilator lanjut kepada bagian berikutnya dari kode asal Dengan begini kompilator single pass memproses kode asal hanya dalam satu kali jalan 2 Sering ditafsirkan bahwa kompilator single pass lebih cepat daripada kompilator multi pass Tafsiran ini tidaklah benar 2 Selama tahap tahap dalam kedua jenis kompilator itu sama dan kode asal yang diproses juga sama maka kedua jenis kompilator tersebut tetap saja mengerjakan jumlah pekerjaan yang sama Sehingga kecepatan dari keduanya juga sama Lihat pula SuntingPenafsir program P CodeReferensi Sunting a b Compiler Construction update Juni 2011 a b c d e Bornat Richard 1979 Understanding and Writing Compilers doi 10 1007 978 1 349 16178 2 Scanning Crafting Interpreters web archive org 2023 06 18 Diakses tanggal 2023 07 15 a b Aho Alfred V Sethi Ravi Ullman Jeffrey D 2002 Compilers principles techniques and tools Addison Wesley series in computer science edisi ke Reprinted with corr 36 Druck Reading Mass Addison Wesley ISBN 978 0 201 10088 4 Artikel bertopik komputer ini adalah sebuah rintisan Anda dapat membantu Wikipedia dengan mengembangkannya lbs Diperoleh dari https id wikipedia org w index php title Kompilator amp oldid 23918113