Makalah tentang teknik komplikasi
BAB 1 : PEMBAHASAN
1.1.
Sejarah Kompilasi
Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada
saat mulai ditemukannya komputer pada awal 1950-an. Sejak waktu
tersebut teknik dan cara pembentukan suatu kompilator telah
berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat
dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu
kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat
dilakukan dengan cepat.
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. Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan
1.2.
Pengertian Kompilasi
Teknik
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 proseskompilasi (compiling).
Bila
dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang
dapat dibuat antara lain sebagai berikut :
- Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.
- Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupunkomputer super
Secara umum proses dalam tahap
analis terdiri dari 3 bagian utama, yaitu :
- Proses analisis leksikal
- Proses analisis sintaktik
- Proses analisis semantik
Tahap sintesis yang berikutnya
program sasaran dibentuk berdasarkan representasi antara yang dihasilkan
pada tahap analisis.
Untuk tahap sintetis terdiri dari 2
bagian utama, yaitu
- Proses yang menghasilkan kode (code generator)
- Proses optimasi kode (code optimizer)
A. Proses
Analisis Leksikal
membaca
program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter
dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan
dalam bahasa sumber. Kelompok
karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan
di dalam tabel simbol. Sederetan
karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)
B. Proses
Analisis sintaks
memeriksa
kesesuaian pola deretan token dengan
aturan sintaks yang ditentukan dalam bahasa
sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan
sebagai kesalahan sintaks (sintax error). Secara logika deretan
token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon
parsing (parse tree).
C. Proses
Analisis semantik
memeriksa
token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan
tersebut misalnya :
a.
panjang maksimum token identifier adalah
8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80
karakter,
c.
nilai bilangan bulat adalah -32768 s/d 32767,
d.
operasi aritmatika harus melibatkan operan-operan yang bertipe sama.
1.3.
Tahap–tahap
Kompilasi
Kompilator
(compiler) adalah sebuah program yang membaca suatu program yang
ditulis dalam suatu bahasa sumber (source language) dan menterjemah-kannya
ke dalam suatu bahasa sasaran (target language).
Proses kompilasi dikelompokan ke dalam dua kelompok besar:
1. Tahap Analisa (Front-end)
Menganalisis
source code dan memecahnya menjadi bagian-bagian dasarnya. Menghasilkan kode
level menengah dari source code input yang ada.
2.
Tahap Sintesa (Back-end)
Membangun
program sasaran yang diinginkan dari bentuk antara.
Tahap-tahap yang
harus dilalui pada saat mengkompilasi program, yaitu:
Tahap
analisa (front-end)
Tahap sintesa (back-end)
1. Analisa Leksikal
2. Analisa Sintaks
3. Analisa Semantik
4. Pembangkit Kode Antara
5. Code optimization
6. Object code
generation
Keterangan :
-
Analisa Leksikal
(scanner)
Berfungsi memecah teks program sumber menjadi bagian-bagian kecil
yang mempunyai satu arti yang disebut token, seperti : konstanta, nama
variabel, keyword, operator.
-
Analisa Sintaks(parser)
Berfungsi mengambil program sumber (sudah dalam bentuk barisan
token) dan menentukan kedudukan masing-masing token berdasarkan aturan
sintaksnya dan memeriksa kebenaran dan urutan kemunculan token.
-
Analisa Semantik
Berfungsi menentukan validitas semantiks/keberartian program
sumber. Biasanya bagian ini digabung dengan Pembangkit kode antara (intermediate code generator).
-
Pembangkit Kode Antara
Berfungsi membangkitkan kode antara.
-
Code optimation
Berfungsi mengefisienkan kode antara yang dibentuk.
-
Code
generator
Berfungsi membangkitkan kode program target dalam bahasa target
yang ekivalen dengan bahasa sumber .
-
Symbol table management
Berfungsi mengelola tabel simbol selama proses kompilasi. Tabel
simbol adalah struktur data yang memuat record untuk tiap identifier dengan
atribut-atribut identifier itu.
-
Penangan Kesalahan
(Error handler)
Berfungsi menangani
kesalahan yang berlangsung selama proses kompilasi.
Contoh :
pernyataan pemberian nilai (assignment) :
position :=
initial + rate * 60
Lexical analysis
Mengelompokkan pernyataan tersebut menjadi token-token sebagai
berikut :
1. Token identifier
position
2. Token simbol
assignment :=
3. Token identifier
initial
4. Token tanda
plus +
5. Token identifier
rate
6. Token tanda
perkalian *
7. Token konstanta
angka 60
Ketika identifier pada
program sumber ditemukan lexical analyzer, identifier dimasukkan ke tabel simbol.
position := initial + rate * 60
diubah menjadi
id1 := id2 + id3 * 60
Syntax analysis
Memparsing atau membentuk pohon sintaks pernyataan, yaitu :
Semantic analysis
Memeriksa kebenaran arti program sumber, mengumpulkan informasi
tipe bagi tahap berikutnya. Tahap ini menggunakan pohon sintaks tahap syntax
analysis untuk identifikasi operator dan operand suatu ekspresi dan
kalimat. Komponen penting analisis semantik adalah pemeriksaan tipe, memeriksa
operator yang harus mempunyai operand yang diijinkan oleh spesifikasi bahasa
sumber.
Karena misal adanya
pernyataan deklarasi di awal :
var
position, initial, rate : real
Maka konstanta 60
dikonversi menjadi real dengan fungsi inttoreal(60) menjadi konstanta
bilangan real.
Intermediate Code
Generator
Intermediate code adalah representasi perantara antara bentuk
bahasa tingkat tinggi dengan bahasa mesin. Karena pada level berikutnya masih
akan dilakukan optimasi, maka perlu dibuat representasi yang memudahkan
optimasi, yang bukan merupakan bahasa mesin.
temp1 := inttoreal(60)
temp2 := id3 * temp1
temp3 := id2 + temp2
id1 := temp3
Code Optimization
Tahap code optimization proses identifikasi dan membuang
operasi-operasi yang tidak perlu dari intermediate code generation untuk
penyederhanaan sehingga nantinya kode mesin hasil menjadi lebih cepat.
Kode-kode tersebut dioptimasi menjadi :
Temp1 := id3 * 60.0
Id1 := id1 + temp1
Code Generator
Tahap akhir kompilator adalah pembangkitan kode target/objek dan
biasanya kode mesin atau assembly yang dapat direlokasi. Pembangkitan kode
sangat bergantung pada mesin yang dipakai, misal :
MOVF id3, R2
MULF #60.0, R2
MOVF id2, R1
ADDF R2, R1
MOVF R1, id1
BAB 2: PENUTUP
2.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 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). 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.
0 Response to "Makalah tentang teknik komplikasi"
Posting Komentar
Budayakan meninggalkan komentar setelah membaca.
Berkomentarlah dengan bahasa yang sopan yang tidak menyinggung dan tidak berbau sara dan porno.
TERIMAKASIH ATAS KOMENTAR ANDA ... !!!