Anda di halaman 1dari 13

KELOMPOK III

NAMA:
DANI RAMDANI
DEVISCO ESYA PRATAMA
DHIPA DHARMA

05TPLM001
TEKNIK INFORMATIKA
TEORI BAHASA & AUTOMATA
(KOMPILASI)
PENDAHULUAN

1.1 LATAR BELAKANG

Teknik Kompilasi merupakan teknik untuk melakukan pembacaan suatu source program
yang ditulis dalam bahasa sumber, misalnya Pascal, kemudian diterjemahkan ke dalam
suatu bahasa lain yang disebut bahasa sasaran atau bentuk yang dapat dieksekusi secara
langsung dari sistem operasi yang tersedia dalam suatu komputer. Teknik tersebut
diimplementasikan dalam suatu perangkat lunak (software) yang disebut Compiler.
Istilah Compiler muncul karena dulu ada program yang menggunakan subrutin-subrutin
atau pustaka-pustaka untuk keperluan yang sangat khusus yang dikumpulkan menjadi satu
sehingga diistilahkan compiled.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada
saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan
pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara
pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa
yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau
C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian
utama yaitu bagian analisis dan bagian sintesis.
1.2 RUMUSAN MASALAH
1.Apa pengertian dari kompilasi
2.Bagaimana proses kompilasi
3. Macam – macam compiler sebagai contoh

1.3 TUJUAN
Tujuan dalam penulisan makalah ini adalah untuk mengetahui pengertian kompilasi
secara garis besar dan mengetahui alur proses dari kegiatan kompilasi, serta mengetahui
contoh aplikasi kompilasi.
PEMBAHASAN
2.1 Pengertian Kompilasi
Kompilasi adalah suatu proses penggabungan serta menterjemahkan sesuatu (source
program) menjadi bentuk lain.
kompilasi Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis
dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut
bahasa sasaran.

Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan
melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya.
Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi
(compiling).

Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis
dalam suatu bahasa sumber (source language) dan menterjemahkannya ke dalam suatu
bahasa sasaran (target language).
2.2 Bagaimana Proses Kompilasi

Language Processing System


Sebelum memahami compiler lebih jauh, perlu dipahami juga bagaimana proses hardware
memahami sebuah bahasa. Hardware dapat memahami sebuah bahasa pemograman yang disebut
sebagai high-level programming language (HLL).

HLL diterapkan pada program yang berisi arahan #define atau #include seperti #include atau
#define . HLL cenderung lebih dekat dengan bahasa manusia namun sulit dimengerti oleh mesin.
Sehingga, program dengan bahasa ini perlu melalui serangkaian transformasi agar dapat dengan
mudah digunakan mesin.

Di sinilah peran dari language processing system.


1. Pre-processor
Pada proses pre-processor, compiler akan menghapus semua kode yang berisi arahan
#include dengan menambahkan file bernama file inclusion. Selain itu, kode dengan
arahan #define akan diganti dengan macro expansion.
Proses ini berhubungan dengan pemrosesan makro, augmentasi, ekstensi bahasa, dan
sebagainya. Hasil dari proses compiler ini adalah assembly language. Bahasa ini tidak
dalam format biner atau HLL. Bahasa ini merupakan perantara yang mengombinasikan
instruksi mesin dan beberapa data berguna lainnya yang diperlukan untuk langkah
selanjutnya.

2. Assembler
Setiap platform memiliki assembler. Sayangnya, setiap hardware dan operating system
memiliki assembler yang berbeda. Assembler menerjemahkan kode dalam assembly
language menjadi sebuah bahasa yang dipahami oleh mesin.
Hasil dari assembler disebut sebagai file objek yang merupakan gabungan dari instruksi
mesin serta data yang dibutuhkan untuk menyimpan instruksi tersebut dalam memori.

3. Interpreter
Interpreter mengubah HLL menjadi bahasa yang dapat dimengerti oleh mesin.
Berbeda dengan compiler, interpreter menerjemahkan program satu pernyataan pada satu
waktu. Sehingga waktu yang dibutuhkan oleh interpreter jauh lebih lama jika
dibandingkan dengan compiler.

4. Relocatable machine code


Relocatable machine code bisa dijalankan kapan saja. Alamat dalam program akan
terbentuk sedemikian rupa untuk bekerjasama dengan pergerakan program.

5. Linker
Linker membantumu menggabungkan berbagai file objek untuk membuat file yang dapat
dieksekusi. Semua file ini mungkin telah dikompilasi dengan assembler terpisah. Tugas
utama linker adalah mencari modul yang dipanggil dalam program dan menemukan lokasi
memori tempat semua modul disimpan.
3. bahasa pemrograman dapat diterjemahkan oleh mesin.
Setelah memahami bagaimana proses juga bagaimana proses hardware memahami sebuah
bahasa. Berikut adalah fase dari proses compiling dari sebuah program.

Phase Analysis :
Lexical Analyzer
Pada Compiler, lexical analyzer biasa disebut juga sebagai scanner. Lexical analyzer
adalah tahapan pertama yang dilakukan pada compiler. Proses yang dilakukan pada
tahapan ini adalah membaca program sumber karakter per karakter. Satu atau lebih
(deretan) karakter karakter ini dikelompokkan menjadi suatu kesatuan mengikuti pola
kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber dan disimpan
dalam table simbol, sedangkan karakter yang tidak mengikuti pola akan dilaporkan
sebagai token tak dikenal.sebagai scanner. Lexical analyzer adalah tahapan pertama yang
dilakukan pada compiler. Proses yang dilakukan pada tahapan ini adalah membaca
program sumber karakter per karakter.

Syntax Analyzer
Setelah tahapan lexical analyzer selesai berikutnya adalah tahapan syntax analyzer atau
biasa juga disebut Parser. Pada tahapan ini token yang didapatkan dari hasil lexical
analysis diurutkan atau disusun lalu dikelompokkan ke dalam suatu struktur tertentu
secara spesifik.tahapan ini token yang didapatkan dari hasil lexical analysis diurutkan
atau disusun lalu dikelompokkan ke dalam suatu struktur tertentu secara spesifik.
Semantic Analyzer
Setelah tahapan syntax analyzer selesai berikutnya adalah tahapan semantic analyzer.
Tahapan semantic analyzer merupakan tahapan yang penting karena merupakan pusar
dari tahapan kompilasi, dan juga merupakan jembatan antara fase analysis dan fase
synthesis pada compiler. Pada tahapan ini program sumber akan diperiksa untuk mencari
kemungkinan kesalahan semantic dengan cara memanfaatkan struktur hirarkikal yang
dihasil dari tahapan syntax analyzer. Pada tahapan ini akan dihasilkan suatu kode yang
executable pada kompilasi yang sederhana lalu dimanipulasi dengan berbagai
optimization dari translator sampai nanti benar-benar executable dihasilkan.Pada tahapan
ini program sumber akan diperiksa untuk mencari kemungkinan kesalahan semantic
dengan cara memanfaatkan struktur hirarkikal yang dihasil dari tahapan syntax analyzer.
Pada tahapan ini akan dihasilkan suatu kode yang executable pada kompilasi yang
sederhana
Phase Synthesis :

Intermediate Code Generator


Intermediate code generator merupakan tahapan awal dari phase synthesis. Proses yang
dilakukan pada tahapan ini me-generate atau membangkitkan suatu code berdasarkan
parsing tree, lalu selanjutnya diterjemahkan ke dalam bentuk three address code,
quadruples atau triples.Proses yang dilakukan pada tahapan ini me-generate atau
membangkitkan suatu code berdasarkan parsing tree, lalu selanjutnya diterjemahkan.

Code Optimizer
Setelah melakukan tahapan intermediate code generator berikutnya yang dilakukan adalah
tahapan code optimizer. Adapun yang dilakukan pada tahapan ini adalah mengoptimisasi
code sehingga menjadi code yang executable. Tahapan ini dilakukan untuk mempercepat
waktu eksekusi dari suatu program dengan cara menghilangkan redudansi pada
code.mengoptimisasi code sehingga menjadi code yang executable. Tahapan ini dilakukan
untuk mempercepat waktu eksekusi dari suatu program dengan cara menghilangkan
redudansi pada code.

Code Generator
Tahapan code generator ini merupakan tahapan terakhir pada proses kompilasi. Pada
tahapan ini akan dilakukan penentuan register untuk masing-masing variable lalu
instruksi-instruksi dalam bentuk antara akan diterjemahkan ke dalam Bahasa mesin, dan
akhirnya akan menghasilkan relocatable machine code atau assembly code.Pada tahapan
ini akan dilakukan penentuan register untuk masing-masing variable lalu instruksi-
instruksi dalam bentuk antara akan diterjemahkan ke dalam Bahasa mesin.

Symbol Table Manager


Symbol Table adalah sebuah struktur data dengan record-record untuk setiap identifier
dengan field-field untuk setiap atribut dari identifier tersebut.

Error Handler
Error handler merupakan bagian dari compiler untuk menangani dan melaporkan jika
ditemukan suatu error.
2.3 Macam-Macam Kompiler
Visual Basic
Visual Basic (VB) merupakan pemrograman generasi ketiga dari Microsoft. Sistem ini
memungkinkan seorang programmer untuk menggunakan Graphical User Interface/GUI
untuk memilih dan memodifikasi bagian kode terpilih dari bahasa pemrograman dasar.

C++
C++ merupakan kompiler multiple pass yang dirancang dengan orientasi terhadap
pemrograman sistem. C+ ini tertanam pada perangkat lunak yang terbatas sumber daya
dan sistem besar, dengan kinerja, efisiensi, dan fleksibilitas penggunaan sebagai sorotan
desainnya.

Pascal
Pascal merupakan bahasa pemrograman imperatif dan prosedural. Pascal dirancang untuk
mendorong praktik pemrograman yang baik menggunakan program terstruktur dan
penataan data.

Fortran
Fortran termasuk bahasa pemrograman imperatif yang sangat cocok untuk komputasi
numerik dan komputasi ilmiah. Bahasa pemrograman ini sudah diaplikasikan selama lebih
dari enam dekade di bidang komputasi intensif seperti prediksi cuaca numerik, analisis
elemen, dinamika fluida komputasi, geofisika, fisika komputasi, kristalografi, dan kimia
komputasi.
PENUTUP

3.1 KESIMPULAN
Teknik kompilasi merupakan Teknik dalam melakukan pembacaan suatu program yang
ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang
disebut juga bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah tentu
compiler akan melaporkan keanehan – keanehan atau kesalahan yang mungkin
ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses
kompilasi (compiling). Dengan adanya program bantu dan at acara pembentukan yang
sistematis dan tertera dengan baik serta pendefinisian struktur bahasa yang cermat, maka
suatu kompilator untuk bahasa yang cermat, maka suatu kompilator buntuk bahasa yang
terstruktur seperti PASCAL atau C dapat dikembangkan.

3.2 SARAN
Apabila di dalam penulisan makalah ini terdapat kesalahan baik dari segi penulisan atau
dari segi pembahasan kami mohon kritik dan saran anda untuk memperbaikinya, karena
sesungguhnya kesempurnaan hanya milik Allah.swt.
Daftar Pustaka
https://socs.binus.ac.id/2019/12/23/teknik-kompilasi-first-set-pada-top-down-parsing/

HTTPS://WWW.SLIDESHARE.NET/RAKHKHA/KUMPULAN-CATATAN-TEKNIK-
KOMPILASI?FROM_ACTION=SAVE

Anda mungkin juga menyukai