Anda di halaman 1dari 4

Nama : Regita cahyana putri

Kelas : X TKJ 1

Menganalisis Tool pada Inno Compiler

Pengertian Compiler

Compiler adalah sebuah program khusus yang dipakai untuk melakukan konversi kode ke dalam bentuk
natural language processing supaya komputer dapat memahaminya. Proses konversi yang berlangsung
ini dikenal dengan istilah compilation.
Dalam proses tersebut, compiler bertugas untuk mengeksekusi kode dan mengubahnya menjadi sinyal
biner yang dibutuhkan dalam processor, terutama di unit logika aritmatika (ALU).

Terdapat dua jenis compiler yang umumnya dipakai oleh developer, yaitu:

- Source to source compiler atau transcompiler adalah compiler yang bertugas untuk menerjemahkan
sumber kode dengan satu bahasa dan mengubahnya menjadi kode bahasa lain.- Cross compiler
digunakan untuk membuat kode baru agar bisa digunakan pada platform lain.

Di atas sudah disebutkan bahwa compiler bertugas untuk menerjemahkan kode. Namun compiler juga
punya tugas lain seperti:

•Membagi program menjadi beberapa bagian terpisah dan mengaplikasikan struktur tata bahasa pada
setiap bagiannya.

•Menggunakan perantara untuk membangun program target dan membuat tabel simbol.

• Kompilasi sumber kode untuk mengetahui permasalahan di dalamnya.

•Manajemen ruang penyimpanan untuk semua kode dan variabel.

•Dukungan untuk kompilasi yang terpisah.

•Membaca dan menganalisis semua program, kemudian menerjemahkannya ke padanan


semantik.

•Menerjemahkan sumber kode ke dalam objek kode dan menyesuaikannya dengan jenis mesin
yang dipakai.
Langkah-Langkah dalam Language Processing System

Pre-Processor

Di tahap ini, compiler menghapus semua kode berisi instruksi #include kemudian menambahkan inklusi
file. Setelah itu, #define juga digantikan dengan ekspansi makro. Hasil dari proses tersebut dinamakan
assembly language. Bahasa ini ada di antara HLL dan biner.

Assembly language adalah perantara yang dapat mengkombinasikan perintah mesin serta beberapa
data yang akan berguna di proses berikutnya.

Assembler

Semua platform hardware memiliki assembler yang berbeda. Fungsi dari assembler adalah mengubah
kode assembly language menjadi bahasa mesin. File yang dihasilkan oleh assembler disebut sebagai file
objek. File tersebut adalah hasil gabungan antara instruksi mesin dengan data yang diperlukan untuk
menyimpan perintah atau instruksi ke dalam memori.

Interpreter

Interpreter berguna untuk melakukan penerjemahan dari HLL menjadi bahasa mesin. Namun interpreter
berbeda dengan compiler. Interpreter memerlukan waktu lebih lama untuk menerjemahkan kode
karena prosesnya dilakukan pada satu waktu.

Relocatable Machine Code

Relocatable machine code dapat dijalankan kapan pun sesuai kebutuhan. Proses ini menghasilkan
alamat di dalam program yang akan bekerja sama untuk menggerakkan program.

Loader atau Linker

Linker atau loader berguna untuk menggabungkan semua file objek menjadi satu file yang bisa
dieksekusi. Peran linker sangat penting untuk menyatukan file yang dikompilasi oleh assembler. Linker
bertugas untuk menemukan modul, memanggilnya ke dalam program, dan menemukan lokasi untuk
menyimpan semua modul tersebut

Fase - Fase dalam Compiler

Dalam compiler terdapat dua fase utama, yaitu fase analisis dan fase sintesis.

1. Fase Analisis
Fase analisis atau representasi, dibuat sebagai perantara dari sumber kode berikut:
1. Lexical analyzer untuk membagi program menjadi token-token.
2. Syntax analyzer berguna untuk mengenali kalimat di dalam program menggunakan syntax
bahasa.
3. Semantic analyzer berfungsi untuk memeriksa semantik statis pada masing-masing
konstruksi.
4. Intermediate code generator berguna untuk menghasilkan kode-kode abstrak.

2. Fase Sintesis

Ketika memasuki fase sintesis, target program yang selevel dibuat dari analisis perantara yang terbagi
kedalam dua fase.

1. Code optimizer yang berfungsi untuk mengoptimalkan kode abstrak yang dihasilkan dari
proses terakhir fase pertama.
2. Code generator menerjemahkan intermediate code generator menjadi instruksi mesin yang
lebih spesifik dan siap dieksekusi.

TOOL-TOOL PADA INNO COMPILER

• Parser Generator

Ini menghasilkan penganalisis sintaks (parser) dari input yang didasarkan pada deskripsi gramatikal
bahasa pemrograman atau pada tata bahasa bebas konteks. Ini berguna karena fase analisis sintaks
sangat kompleks dan menghabiskan lebih banyak waktu manual dan kompilasi. Contoh: PIC, EQM

• Scanner Generator
Ini menghasilkan penganalisis leksikal dari input yang terdiri dari deskripsi ekspresi reguler berdasarkan
token bahasa. Ini menghasilkan otomat terbatas untuk mengenali ekspresi reguler. Contoh: Lex

• Syntax directed translation engines –

Ini menghasilkan kode perantara dengan tiga format alamat dari input yang terdiri dari pohon parse.
Mesin ini memiliki rutinitas untuk melintasi pohon parse dan kemudian menghasilkan kode perantara.
Dalam hal ini, setiap simpul dari pohon parse dikaitkan dengan satu atau lebih terjemahan.

• Automatic code generators –

Ini menghasilkan bahasa mesin untuk mesin target. Setiap operasi bahasa perantara diterjemahkan
menggunakan kumpulan aturan dan kemudian diambil sebagai input oleh pembuat kode. Proses
pencocokan template digunakan. Pernyataan bahasa perantara diganti dengan pernyataan bahasa
mesin yang setara dengan menggunakan templat.

● Data-flow analysis engines –

Ini digunakan dalam pengoptimalan kode. Analisis aliran data adalah bagian penting dari pengoptimalan
kode yang mengumpulkan informasi, yaitu nilai yang mengalir dari satu bagian program ke bagian lain.
Lihat – analisis aliran data di Compiler

● Compiler construction toolkits –

It provides an integrated set of routines that aids in building compiler components or in the construction
of various phases of compiler.

Anda mungkin juga menyukai