Friday, November 9, 2018

Teknik Kompilasi - Perancangan Bahasa Pemrograman


Perancangan Bahasa Pemrograman

Sumber Perancangan Bahasa Pemrograman
                Sumber perancangan bahasa pemrograman yaitu :   
·         Bahasa alami (natural language)
Konstruksi yang diturunkan dari bahasa alami, karena bahasa alami dapat digunakan sebagai panduan untuk perancangan sintaks.
·         Ilmu Matematika
Banyak dipakai untuk aturan-aturan yang terdapat pada bahasa pemrograman, misalnya ekspresi matematika.
·         Bahasa pemrograman yang telah ada
Bisa menjadi sumber yang bagus untuk perancangan bahasa pemrograman, tetapi perlu ketelitian saat menggunakannya, karena bahasa tersebut mungkin mengandung masalah yang serius, contoh GO TO.

Tujuan Perancangan Bahasa Pemrograman
                Tujuan perancangan bahasa pemrograman adalah sebagai berikut.
·         Komunikasi dengan manusia
Karena sebuah program yang baik adalah suatu program yang mudah dimengerti dan dipahami.
·         Pencegahan dan deteksi kesalahan 
Bahasa pemrograman yang baik harus dapat mengidentifikasi error yang mungkin terjadi, mempermudah deteksi kesalahan dan menghilangkan kesalahan.
·         Usability(mudah dipelajari)
Berkaitan dengan aspek kenyamanan seorang pemrogram menggunakan bahasa, karena bahasa pemrograman yang baik harus dapat dipelajari dan mudah diingat karena berkaitan dengan kenyamanan programmer dalam menggunakan bahasa pemrograman.
·         Efektifitas pemrograman
Merupakan bagian dari rekayasa perangkat lunak yaitu bagaimana mancatat keputusan yang dibuat selama mengembangkan program.
·         Compilability (tidak terlalu kompleks)
Pengembangan sebuah kompilator merupakan pekerjaan yang tidak sederhana.
·         Efisiensi
Peningkatan yang signifikan dalam efisiensi bisa didapat dengan membuat bahasa lebih sederhana untuk menghasilkan kode yang efisien.
·         Machine independent (tidak bergantung pada satu mesin)
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.
·         Kesederhanaan (simplicity)
Kesederhanaan dapat dicapai melalui : pembatasan-pembatasan tujuan dan perhatian pada keterbacaan.
·         Uniformity
Yaitu mengerjakan hal yang sama dengan cara yang sama dan menjelaskan bagaimana menghilangkan kasus khusus.
·         Orthogonality
Setiap fungsi bekerja tanpa mengetahui struktur dari yang lain.
·         Generalisasi dan Spesialisasi
Dasar pemikiran “jika dibolehkan melakukan ini, maka lakukanlah hal yang lain dengan cara serupa”

Detail Perancangan Bahasa Pemrograman
            Berikut adalah detail perancangan pemrograman.
·         Microstructure
o  Mencakup masalah-masalah dalam perancangan bahasa yang mempengaruhi penampilan bahasa tapi tidak mengubah semantiknya.
o  Aspek terendah adalah set karakter yang dipergunakan.
o  Contoh
Keyword : SIZE
Penggunaan Komentar : //, *, { }
·         Struktur Ekspresi
o  Salah satu topik berhubungan dengan ekspresi adalah urutan dari evaluasinya. Metode yang biasa dipergunakan untuk menentukannya berdasar pada dua tingkatan sebagai berikut :
1.       Explicit bracketing:
menggunakan karakter seperti ‘(‘,’)’,’[‘,’]’ untuk membatasi ekspresi.
2.       Operator binding:
beberapa penggunanya dengan binding:
a) Kiri ke kanan.
b) Kanan ke kiri.
c) Berdasar prioritas.
·         Struktur Data
o   Deklarasi Data
-          Konstanta
Berguna untuk menuliskan konstanta untuk berbagai tipe data.
Contoh : CONST PI = 22/7
-          Type
Pendekalrasian type atau dalam konstruksi struktur yang lebih kompleks, akan mempermudah penulisan dan readability.
Contoh : TYPE MATRIKS = ARRAY [1..100, 1..100] OF INTEGERE
-          Variabel
Contoh : VAR a, b, c : integer

o   Tipe – tipe data yang disediakan dalam bahasa pemrograman
-          Sederhana -> Tipe Data Dasara
-          Gabungan -> Array, Record
-          Kompleks -> Tree, Stack, Quee
o   Strategi alokasi storage
-          Alokasi static
-          Alokasi local, dinamis dan otomatis : Store Procedure
-          Retention : tidak banyak digunakan
o   Lingkup dari variabel
-          Batasan untuk mengurangi kompleksitas system
-          Biasanya dilakukan pembatasan interaksi antara segmen yang berbeda
-          Misal : penggunaan BEGIN – END untuk memulai suatu prosedur atau suatu algoritma
·         Struktur Kontrol
o   Begin – End
o   If – Then – Else
o   Case – Of
o   Repeat – Until
o   For – End
·         Struktur Kompilasi
o  Tahapan yang berhubungan dengan proses kompilasi, sebagai contoh dalam bahasa C pada saat kompilasi ada beberapa file yang terpisah sehingga membutuhkan menyisipkan file tersebut dengan menggunakan perintah Include.
·         Struktur I/O
o   Merupakan fasilitas untuk menangani masukan dan keluaran
o   Tingkatan : 
-          Bentuk Format Free
Berguna untuk komunikasi sederhana bagi para programmer untuk memeriksa kebenaran program. Programmer bisa menampilkan dengan mudah nilai dari variable dan untuk memeriksa secara cepat lojik dari program pada sekumpulan input data.
-          Bentuk Formatted
Nilai setiap variable dalam masukan atau keluaran ditulis atau dibaca sesuatu dengan format yang ditentukan, misalnya panjang dari field dan tipe data.
Contoh :
Jika x=4 dan s=“nama”, maka
printf (“nilai x adalah %d \n nilai s adalah %s”, x,s)
Maka output :
nilai x adalah 4
nilai s adalah nama.
Skenario Perancangan Pemrograman
·         Tentukan apa yang diinginkan.
·         Tentukan feature yang mungkin
·         Tentukan desain dan sesuaikan dengan featurenya
·         Tentukan rincian, parsing, dan error checking.
·         Tuliskan user manual dan help.
·         Evaluasilah, jika salah mulai lagi dari langkah 3.
·         Jika sudah benar, optimisasilah dan uji segala kemungkinan.
·         Cobakan kepada pengguna, tunggu reaksinya.
·         Perbaiki bug dan mulai versi baru.

No comments:

Post a Comment