Bab 2 Perancangan Bahasa Pemrograman

Post on 23-Jun-2015

894 views 50 download

Transcript of Bab 2 Perancangan Bahasa Pemrograman

TEKNIK KOMPILASITony Darmanto,ST / Smt V – S1 – TI / STMIK WIDYA DHARMA/ Hal 8

2. PERANCANGAN BAHASA PEMROGRAMANSUMBER PERANCANGAN BAHASA PEMROGRAMANa. Konstruksi yang diturunkan dari bahasa alami berguna untuk kejelasan dan kemudahan

pembacaan. Sebuah instruksi akan mengerjakan ‘mirip’ dengan arti intruksi. Di sisi lainbisa pula menimbulkan ambiguitas/ke-dwiarti-an yang tidak diinginkan dalam sebuahbahasa pemrograman.

b. Matematika telah banyak dipakai untuk aturan-aturan yang terdapat pada bahasapemrograman, misalnya ekspresi artimatika. Meskipun matematika merupakan sumberyang berguna, perlu kehati-hatian saat mengadopsi notasi matematika untuk suatu konsep.

c. Bahasa pemrograman yang sudah ada bisa menjadi sumber yang bagus untukperancangan bahasa pemrograman. Tetapi perlu ketelitian saat menggunakannya, karenabahasa yang sudah ada itu mungkin mengandung kesalahan yang serius.

TUJUAN PERANCANGAN BAHASA PEMROGRAMANa. Komunikasi dengan Manusia

Sebuah program yang mudah dibaca/ dimengerti adalah sebuah dokumentasi yang baik.Contoh : a/b/cBisa berarti a dibagi dengan b, hasilnya dibagi dengan catau a dibagi dengan hasil pembagian b dengan c.

b. Pencegahan dan Deteksi KesalahanSebuah bahasa pemrograman yang baik perlu mengidentifikasi error yang mungkinterjadi.

c. UsabilityBahasa pemrograman harus mudah dipelajari dan diingat. Usability berkaitan denganaspek kenyamanan seorang pemrogram menggunakan bahasa.

d. Efektivitas PemrogramanEfektivitas berkaitan dengan pemrograman sebagai bagian dari rekayasa perangkat lunakyaitu bagaimana mencatat keputusan yang dibuat selama pengembangan program.

e. CompilabilityPengembangan sebuah kompilator merupakan pekerjaan yang tidak sederhana. Sebuahbahasa yang terlalu kompleks akan menyulitkan pembuatan kompilator untuk bahasatersebut.

f. EfisiensiEfisiensi bukanlah hanya permasalahan kecepatan-ukuran, karena akses I/O dan pagingmemori termasuk juga dalam efisiensi. Peningkatan yang signifikan dalam efisiensi bisadidapat dengan membuat bahasa lebih sederhana untuk menghasilkan kode yang efisien.

g. Machine IndependentSebuah bahasa dikatakan machine independent jika dan hanya jika sebuah program yangtelah sukses dikompilasi dan dieksekusi pada suatu mesin, saat dipindahkan ke mesinlainnya akan berjalan dengan input dan output yang tepat sama.

h. Kesederhanaan (Simplicity)Kesederhanaan dapat dicapai melalui:1. Pembatasan-pembatasan tujuan2. Perhatian pada keterbacaan

TEKNIK KOMPILASITony Darmanto,ST / Smt V – S1 – TI / STMIK WIDYA DHARMA/ Hal 9

3. Pendefinisian yang baik, dan4. Konsep yang sederhana.

i. UniformityUniformity bisa didefinisikan sebagai mengerjakan hal yang sama dengan cara yangsama. Bila diadopsi sebagai prinsip bahasa pemrograman, ini bisa menolong mengurangihal-hal yang harus diingat pemrogram, karena akan lebih mudah memahami bagaimanasuatu feature akan dilakukan.

j. OrthogenalityGagasan mendasar dari orthogenality adalah setiap fungsi bekerja tanpa perlu mengetahuistruktur dari yang lain.

k. Generalisasi dan Spesialisasi

DETAIL RANCANGANa. Microstructure

Pada dasarnya mencakup masalah-masalah dalam perancangan bahasa yangmempengaruhi penampilan bahasa tapi tidak mengubah semantiknya.Prinsip mendasar micro-struture adalah arti dari suatu konstruksi, seperti operator, harusjelas dari wujudnyaAspek terendah dari microstruture adalah set karakter yang dipergunakan harus menjadisuatu standar untuk menghindari perubahan program saat dipindah antar mesin. Setkarakter yang terbaik adalah ASCII 7 bit.

b. Struktur EkspresiSalah satu topik berhubungan dengan ekspresi adalah urutan dari evaluasinya. Metodeyang biasa dipergunakan untuk menentukannya berdasar pada dua tingkatan sebagaiberikut :1. Explicit bracketing: menggunakan karakter seperti ‘(‘,’)’,’[‘,’]’ untuk membatasi

ekspresi.2. Operator binding: beberapa penggunanya dengan binding:

a) Kiri ke kananb) Kanan ke kiri danc) Berdasar prioritas.

c. Struktur DataStruktur data memiliki empat aspek:1. Deklarasi Data

Biasanya kebutuhan bahasa pemrograman berkaitan dengan deklarasi untuk :Konstanta, Type, Variabel

2. Tipe-tipe data yang disediakan dalam bahasa pemrogramana) Terdapat tiga pendekatan untuk tipe dalam bahasa pemrograman, yakni :b) Tidak ada sama sekali (Assembly)c) Soft Typing (Variabel boleh memuat nilai apapun)d) Hard Typing (Variabel hanya boleh memuat nilai yang menjadi domain dari tipe

tersebut)3. Strategi Alokasi Storage

Alokasi storage untuk variabel dalam suatu program merupakan pekerjaan kompilatordan sistem pada saat run time.Terdapat empat bentuk alokasi variabel :

TEKNIK KOMPILASITony Darmanto,ST / Smt V – S1 – TI / STMIK WIDYA DHARMA/ Hal 10

a)AlokasiStatik:Alokasipalingsederhanadanawal(ALGOLdanFORTRAN).Pemakaiannyasecaraglobal.b)AlokasiLokal,Dinamik,danOtomatis.Alokasiyangpalingpopuler.c)Retention:tidakbanyakdigunakan.Carainimengalokasikanpadawalentrykeprosedurataublok,tapitidakdi-’bebaskan’padasaatkeluar.d)AlokasiHeap:merupakanfasilitaspadabeberapabahasapemrogramansepertiALGOLdanPL/1.4.LingkupdariVariabelBatasandarilingkupsuatunamaperludihadirkanuntukmengurangikompleksitasprogram.MekanismenyamisalkandenganblokBEGIN-END.Salahsatuaspekdarilingkupini,setiapentitassepertiprosedurdanvariabelharusdideklarasikandahlusebelumdipergunakan.d.StrukturKontrolStrukturkontrolpalingsederhanaadalahkombinasidaribeberapastatementkedalamstatementtunggal,seperti:BEGIN-ENDpadaALGOLdanPascal,DO-ENDpadaPL/1dan{-}padaC.BahasaFORTRANdanBASICtidakmemilikistrukturini.e.StrukturKompilasiStrukturkompilasimencakupaspekdaribahasayangberkaitandenganproseskompilasi,berhubungandenganoperasipadabahasayangdikerjakansaatkompilasidanbagaimanakompilasimodulyangberbedadanterpisahdariprogram.Salahsatufasilitasadalahuntukmenyisipkansuatufilelain(sepertiinclude)f.StrukturI/OStrukturI/Omerupakanfasilitasuntukmenanganimasukandankeluaran.Fasilitasinibisadisediakanpadaberbagaitingkatanberikutdalamsuatubahasa.1.BentukFormat-Free:bergunauntukkomunikasisederhanabagiprogrammeruntukmemeriksakebenaranprogram.2.BentukFormatted.Nilaisetiapvariabeldalammasukanataukeluaranditulisataudibacasesuatudenganformatyangditentukan.3.Mengikutkanfasilitasuntukpenyimpanandanpengambilaninformasidarifile.SkenarioPerancangana.Temukanapayangdiinginkandanbagaimanamempergunakannya.b.Tentukanfeatureyangmungkin.c.Tentukandesainkeseluruhandanintegrasifeaturekedalamnya.Amatiinteraksiantarfeature.d.Tentukanrincianya,parsing,danpemeriksaankesalahan.e.Tulislahdefinisiformal,usermanual,danapapunyangdianggapberguna.f.Evaluasirancangansepertiapayangdidiskusikansebelumnya.Buatlahperubahandanmulaidaristep3lagi.Janganlanjutkanstep7sampaidilengkapi.g.Kurangiukuran.Ulangistepseblumnyabilaperlu.Janganlanjutkanstep8sampaidiujisemuakemungkinan.h.Impelementasikan.i.Tunggureaksipengguna.j.Umumkankemungkinanadanyakesalahan.k.Mulaisuatuversibarudanekstensionnya.