bab 2 perancangan bahasa pemrograman

3
TEKNIK KOMPILASI Tony Darmanto,ST / Smt V – S1 – TI / STMIK WIDYA DHARMA/ Hal 8 2. PERANCANGAN BAHASA PEMROGRAMAN SUMBER PERANCANGAN BAHASA PEMROGRAMAN a. Konstruksi yang diturunkan dari bahasa alami berguna untuk kejelasan dan kemudahan pembacaan. Sebuah instruksi akan mengerjakan ‘mirip’ dengan arti intruksi. Di sisi lain bisa pula menimbulkan ambiguitas/ke-dwiarti-an yang tidak diinginkan dalam sebuah bahasa pemrograman. b. Matematika telah banyak dipakai untuk aturan-aturan yang terdapat pada bahasa pemrograman, misalnya ekspresi artimatika. Meskipun matematika merupakan sumber yang berguna, perlu kehati-hatian saat mengadopsi notasi matematika untuk suatu konsep. c. Bahasa pemrograman yang sudah ada bisa menjadi sumber yang bagus untuk perancangan bahasa pemrograman. Tetapi perlu ketelitian saat menggunakannya, karena bahasa yang sudah ada itu mungkin mengandung kesalahan yang serius. TUJUAN PERANCANGAN BAHASA PEMROGRAMAN a. Komunikasi dengan Manusia Sebuah program yang mudah dibaca/ dimengerti adalah sebuah dokumentasi yang baik. Contoh : a/b/c Bisa berarti a dibagi dengan b, hasilnya dibagi dengan c atau a dibagi dengan hasil pembagian b dengan c. b. Pencegahan dan Deteksi Kesalahan Sebuah bahasa pemrograman yang baik perlu mengidentifikasi error yang mungkin terjadi. c. Usability Bahasa pemrograman harus mudah dipelajari dan diingat. Usability berkaitan dengan aspek kenyamanan seorang pemrogram menggunakan bahasa. d. Efektivitas Pemrograman Efektivitas berkaitan dengan pemrograman sebagai bagian dari rekayasa perangkat lunak yaitu bagaimana mencatat keputusan yang dibuat selama pengembangan program. e. Compilability Pengembangan sebuah kompilator merupakan pekerjaan yang tidak sederhana. Sebuah bahasa yang terlalu kompleks akan menyulitkan pembuatan kompilator untuk bahasa tersebut. f. Efisiensi Efisiensi bukanlah hanya permasalahan kecepatan-ukuran, karena akses I/O dan paging memori termasuk juga dalam efisiensi. Peningkatan yang signifikan dalam efisiensi bisa didapat dengan membuat bahasa lebih sederhana untuk menghasilkan kode yang efisien. g. Machine Independent Sebuah bahasa dikatakan machine independent jika dan hanya jika sebuah program yang telah sukses dikompilasi dan dieksekusi pada suatu mesin, saat dipindahkan ke mesin lainnya akan berjalan dengan input dan output yang tepat sama. h. Kesederhanaan (Simplicity) Kesederhanaan dapat dicapai melalui: 1. Pembatasan-pembatasan tujuan 2. Perhatian pada keterbacaan

Upload: katsuoono

Post on 23-Jun-2015

894 views

Category:

Documents


50 download

TRANSCRIPT

Page 1: 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

Page 2: Bab 2 Perancangan Bahasa Pemrograman

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 :

Page 3: Bab 2 Perancangan Bahasa Pemrograman

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.