Kompilator: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k memperbaiki link yang rusak |
Fitur saranan suntingan: 3 pranala ditambahkan. Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru Disarankan: tambahkan pranala |
||
(2 revisi perantara oleh 2 pengguna tidak ditampilkan) | |||
Baris 1:
'''Kompilator''' atau '''kompiler''' ([[bahasa Inggris|Inggris]]: ''compiler'') adalah sebuah [[program komputer]] yang berguna untuk
Terlepas dari pengertiannya yang demikian relatif luas, istilah ''kompilator'' biasa digunakan untuk program komputer yang
4 jenis compiler yang biasa digunakan, diantaranya adalah : ''cross compiler, bootstrap compiler, source-to-source / transcompiler, dan decompiler.'' <ref>{{Cite web|last=Nurchaliza|first=Rachmatia|date=2024-01-26|title=Memahami Fungsi Program Compiler dan Ragam Jenisnya|url=https://dif.telkomuniversity.ac.id/fungsi-program-compiler-dan-jenis-jenisnya-yang-wajib-dipahami-programmer/|website=D3 Rekayasa Perangkat Lunak Aplikasi|access-date=2024-02-26}}</ref>
== Arsitektur kompilator ==
Arsitektur ''kompilator'' modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi
* ''
* ''Assembler'' (perakit), yang menerima keluaran
* ''Linker'' (penaut), yang menerima berkas objek keluaran ''assembler'' untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (''executable'')
''
Beberapa ''kompilator'' tidak menggunakan arsitektur di atas secara gamblang, dikarenakan komunikasi
Profesor [[Niklaus Wirth]] dalam bukunya ''Compiler Construction'' <ref name="cbe">[https://web.archive.org/web/20110805035946/http://www.inf.ethz.ch/personal/wirth/books/CompilerConstruction/CBE.pdf Compiler Construction], (''update'' Juni 2011)</ref> 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 ==
Suatu ''kompilator'' harus menganalisis kode asal terlebih dahulu untuk memahami seluruh kode tersebut. Hasil dari analisis itu berbentuk representasi dari kode asal, yang nanti akan
=== Analisis leksikal ===
Baris 24 ⟶ 26:
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.<ref name=":0" />'' Biasanya simbol-simbol tadi disimpan dalam bentuk [[larik]].<ref>{{Cite web|date=2023-06-18|title=Scanning · Crafting Interpreters|url=https://web.archive.org/web/20230618023650/https://craftinginterpreters.com/scanning.html|website=web.archive.org|access-date=2023-07-15}}</ref>
=== Analisis
{{Main|Parsing}}
Analisis
=== Analisis semantik ===
{{Main|Analisis semantik}}
Analisis semantik adalah tahap atau proses yang menggunakan pohon uraian hasil dari analisis
===
{{Main|Code generation}}
Pada tahap ini, kompilator menggunakan semua informasi mengenai kode asal yang telah dikumpulkan dalam tahap-tahap sebelumnya, untuk menghasilkan kode
== Kompilator ''single pass'' dan kompilator ''multi-pass'' ==
Metode 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
Sering
== Lihat pula ==
* [[Penerjemah (komputasi)|
* ''[[P-Code]]''
== Referensi ==
|