260 likes | 620 Views
TEKNIK KOMPILASI. 1. PENGENALAN KOMPILASI Dosen : Dewi Octaviani , S.T, M.C.s. SILABUS. Definisi Kompilasi. Teknik adalah metode atau cara .
E N D
TEKNIK KOMPILASI 1. PENGENALAN KOMPILASIDosen : DewiOctaviani, S.T, M.C.s
DefinisiKompilasi • Teknikadalahmetodeataucara. • Definisi : Kompilator (compiler) adalahsebuahprogram yang membacasuatuprogram yang ditulisdalamsuatubahasasumber(source language) danmenterjemahkannyakedalamsuatubahasasasaran(target language).
Proses kompilasi dapat digambarkan melalui sebuah kotak hitam (black box) berikut :
Proses Kompilasi Proses kompilasidikelompokkankedalamduakelompokbesar: • analisa: program sumberdipecah-pecahdandibentukmenjadibentukantara (intermediate representation) • sintesa: membangun program sasaran yang diinginkandaribentukantara
FaseKompilasi • Fase-fase proses kompilasi
Translator • Translator = Compiler + Interpreter • Translator adalahsuatu program dimanamengambil input sebuah program yang ditulispadasatubahasa program (source language) kebahasa lain (the object on target language)
Compiler & Interpreter • Jika source language adalah high level language, seperticobol, pascal, fortran, c. • Object language adalaj low level language ataumesin language. • Maka translator disebutsebagai COMPILER • Proses perubahandari source program menjadi object : program melaluisuatu translator yaitu compiler atau interpreter. • Meskipunberbedapada proses menterjemahkantetapifungsi interpreter dan compiler adalahsama
Dibawahiniilustrasisebuahpenterjemah compiler menterjemahkan source code menjadi object file
Bagi user yang hanyapenggunamungkin kata-kata translator adalahmembingungkan. • Kenapaperlu translator ? • Pertanyaaniniakanmembingungkanbagi programmer yang membuat program denganbahasamesin.
BahasaMesin • Bahasamesindalahbentukbahasaterendahpadakomputer, kitadapatberhubungan/komunikasilangsungdenganbagian-bagian yang adadidalamkomputerseperti bits, register dansangatprimitve • Bahasamesinmemilikiurutan bit-bit 0 dan 1 • Instruksidalambahasamesin bisa sajadibentukmenjadi micro code semacamprosedurdalambahasamesin
Bagaimanadengan orang yang tidakmengertiBahasaMesin ? • Bagi user yang tidakmengertibahasamesinakanmengalamimasalah, karenamerekaharusbelajarterlebihdahuludantentubergantungpadajeniskomputer yang digunakan. • Diciptakansuatubahasa yang dapatdimengertiolehmanusiamaupunkomputer, Bahasa yang demikianiniseringdisebutdenganbahasatingkattinggi.
Untuk era kemajuansekarang, usertidaklagidipusingkanmengenaipenterjemahkarenakemudahan-kemudahan yang diberikanolehbahasatingkattinggisekarangsangatlahmemudahkandanlebihfleksibeldalambekerjapadamesin-mesin yang berbeda
Dibawahiniterdapatilustrasimengenai bit-bit yang dikenalolehkomputerdalammengerjakansesuatu :
BahasaTingkat Tingi Pemrogramanmenggunakanbahasatingkattinggi
Bahasa yang dikenalolehmanusia, maksudnyaadalahstatement yang digunakanmenggunakanbahasa yang dipakaiolehmanusia (english) • Memberikanfasilitas yang lebihbanyak, sepertistrukturkontrol program yang terstruktur, memilikiblok-blok, sertaprosedur dan fungsi-fungsi. • Kontrolstruktur : • Kondisi • Perulangan • Struktur Blok
Program mudahuntukdikoreksi dan diperbaiki (debug) • Tidaktergantungpadasalahsatujenismesinkomputer • Bahasatingkattinggibiasanyamasihmembutuhkan translator
Olehkarenaitudaribahasatingkattinggikedalambahasamesindibutuhkanpenterjemah.Olehkarenaitudaribahasatingkattinggikedalambahasamesindibutuhkanpenterjemah. • Menterjemahkan statement bahasatingkattinggikebahasatingkatrendahdibedakanmenjadidua : melalui interpreter atau compiler
Jenis Translator : Assembler • Ada beberapajenis translator untukmenterjemahkan agar dikenaliolehmesin, diantaranya : • Assembler Source code adalahbahasaassembly, object code adalahbahasamesin.
Jenis Translator : Compiler 2. Compiler Source code adalahbahasatingkattinggi, object code adalahbahasamesinataubahasaassembly. Source code dan data diprosesberbeda.
Jenis Translator : Interpreter 3. Interpretertidakmenghasilkanbentukobject code, tetapihasiltranslasinyahanyadalambentukinternal, dimana program i ndukharusselalu ada-berbedadengan compiler