10/28/2015
1
1-1Teori Komputasi
Fakultas Teknologi dan Desain Program Studi Teknik Informatika
Bab 3: Konsep Bahasa dan Otomata
Agenda.
• Sumber Perancangan
• Tujuan Perancangan
• Detail Perancangan
Konsep Bahasa dan Otomata | 2
Sumber Perancangan
Sumber dari bahasa pemrograman compiler adalah:
1. Bahasa Alami (Natural Language).
Karena konstruksi dari bahasa alami memiliki kelebihan:
1. memberikan kejelasan dan kemudahan dalam pembacaan; 2. mengerjakan ‘mirip’ dengan arti instruksi; dan 3. memberikan kenyamanan untuk para pemrogram.
2. Matematika.
3. Bahasa pemrograman yang sudah ada
Konsep Bahasa dan Otomata | 3
Sumber Perancangan
Pertimbangnnya:
• Familiar; dan
• memiliki beberapa fasilitas yang dapat digunakan untuk memudahkan proses pembacaan (readibility) dan pemeriksaan kesalahan.
10/28/2015
2
Tujuan Perancangan
• Komunikasi dengan manusia.Program yang ditulis seharusnya tidak bermakna ganda (ambigu). • Pencegahan dan deteksi kesalahan.
Sebuah bahasa pemrograman yang baik perlu mengidentifikasi kesalahan (error) yang mungkin terjadi sehingga mempermudah deteksi kesalahan dan menghilangkannya.
• Usability.
Bahasa pemrograman hasur mudah dipelajari dan diingat
Konsep Bahasa dan Otomata | 5
Tujuan Perancangan
• Evektifitas pemrograman.Bahasa pemrograman harus memberikan kemudahan dalam penggunaan sebuah statement yang diinginkan oleh pemrogram. • Compilability.
Sebuah compiler yang baik harus memiliki tingkat kompleksitas rendah sehingga penggunaan sebuah karakter dalam pemrograman tidak digunakan berulang kali untuk hal yang berbeda. Contoh penggunaan tanda koma (,), pharenthesis (kurung buka/tutup), dan kurung siku buka/tutup.
Konsep Bahasa dan Otomata | 6
Tujuan Perancangan
• Efisiensi.
Terdapat 3 alasan mengapa efisiensi penting dalam pengembangan sebuah compiler:
1. Seharusnya user tidak dikorbankan untuk membayar peningkatan kinerja perangkat keras; dan
2. kecepatan dan harga dari peripheral tidak berbanding lurus dengan meningkatnya kecepatan CPU.
3. Bagaimanapun cepat dan murahnya perangkat keras tidak akan sebanding dengan cepat dan murahnya jika menjalankan sebuah program yang efisien
Konsep Bahasa dan Otomata | 7
Tujuan Perancangan
• Machine Independent.
Sebuah bahasa dikatakan machine independent jika dan hanya jika sebuah program yang telah sukses dikompilasi dan dieksekusi pada senuah mesin, ketika dipindahkan ke mesin lainnya akan berjalan dengan input dan output yang sama.
• Kesederhanaan (Simplicity).
Semakin sederhananya sebuah bahasa pemrograman tidak membuat bahasa pemrograman tersebut menjadi lebih baik. Karena sebuah kesederhaan bahasa pemrograman dapat berarti hilangnya beberapa fasilitas pemrograman sehingga tidak dapat digunakan secara maksimal.
10/28/2015
3
Tujuan Perancangan
• Keseragaman (Uniformity).Didefinisikan sebagai mengulang pekerjaan yang sama dengan cara yang sama. Dalam prinsip bahasa pemrograman uniformity dapat mengurangi hal-hal yang harus diingat pemrogram.
• Orthogonality.
Setiap fungsi bekerja tanpa perlu mengetahui struktur dari yang lain. • Generalisasi.
Melakukan suatu hal yang berbeda dengan menggunakan cara yang serupa.
Konsep Bahasa dan Otomata | 9
Detail Perancangan
1. Microstructure.
Prinsip dasar dari microstructure adalah arti dari suatu konstruksi. Bentuk microstructure adalah sebagai berikut: 1. Operator
2. Set Karakter (ASCII 7-bit) 3. Keyword sebagai “reserved word” 4. Simbol Komentar (contoh: (* *), //,:=)
Konsep Bahasa dan Otomata | 10
Detail Perancangan
2. Struktur Ekspresi.
Metode yang digunakan untuk menentukan urutan evaluasi: 1. Explisit Bracketing:
Menggunakan karakter seperti (, ), [, ].
2. Operator Binding
3. Struktur Data.
Terdapat 4 aspek dalam penggunaan struktur data:
1. Deklarasi data: konstanta, type, dan variabel.
Konsep Bahasa dan Otomata | 11
Detail Perancangan
2. Tipe Data: sederhana, gabungan, dan kompleks.
3. Strategi Alokasi Penyimpanan: static, lokal, dinamik, otomatis, retention.
4. Lingkup variabel.
4. Struktur kendali. 1. IF statement 2. CASE OF statement 3. FOR...DO 4. REPEAT...UNTIL 5. WHILE...DO
10/28/2015
4
Detail Perancangan
5. Struktur kompilasi.
6. Struktur input output (I/O) 1. Format-free
2. Formatted 3. Sequential 4. Index 5. Direct
Konsep Bahasa dan Otomata | 13 1-14