3. Suatu aturan yang meliputi bahasa pemrograman
dan bahasa matematis seperti aljabar dan logika
proposisi. Aturan tersebut akan mengkonstruksi
programming translator untuk bahasa
pemrograman.
Contoh:
Compiler untuk bahasa pemrograman
Apa itu Bahasa Formal ?
4. Suatu bahasa adalah suatu himpunan string, sehingga
dua hal penting untuk menspesifikasikan bahasa yaitu:
1. Jika diberikan spesifikasi suatu bahasa, secara
otomatis akan membangkitkan satu atau lebih
string di dalam bahasa itu.
2. Jika diberikan spesifikasi satu bahasa, tentukan
apakah suatu string tertentu akan termasuk di
dalam bahasa itu atau tidak.
5. Suatu tatabahasa struktur frasa dapat digunakan untuk
menspesifikasikan suatu bahasa yang terdiri dari 4
unsur:
Himpunan terminal T >> simbol untuk membuat
kalimat di dalam bahasa, misalnya :
objek/benda dan kata sifat
Himpunan non-terminal N >> lambang antara
yang digunakan untuk mendeskripsikan struktur
kalimat, misalnya: kalimat frasa dan kata
Himpunan produksi P >> kaidah tatabahasa yang
mengatur bagaimana kalimat didalam bahasa itu
dapat dibentuk, misalnya: α β, dalam hal ini α
dan β adalah rangkaian terminal dan non-terminal
Di antara semua non-terminal di dalam N, ada
sebuah non-terminal khusus yang disebut sebagai
simbol awal (starting symbol).
6. Tatabahasa jenis-3 (type-3 grammar) jika semua
produksi didalam tatabahasa berbentuk :
A a
A aB atau A Ba
Di dalam setiap produksi, string kirinya selalu berupa
sebuah non-terminal tunggal, sedangkan string
kanannya berupa sebuah terminal atau sebuah
terminal yang diikuti dengan sebuah non-terminal.
Tatabahasa jenis-2 (type-2 grammar) jika semua
produksi di dalam tatabahasa berbentuk : A a
Di dalam setiap produksi, string kirinya selalu berupa
non-terminal tunggal
7. Tatabahasa jenis-1 (type-1 grammar) jika semua produksi di
dalam tatabahasa berbentuk : α β
Panjang β selalu lebih besar atau sama dengan α. Misalnya
produksi :
A ab
A aA
aAb aBCb
Tatabahasa jenis-0 (type-0 grammar) yaitu tatabahasa struktur
frasa tanpa pembatasan seperti yang telah didefinisikan oleh
jenis 1,2, dan 3.
Semua bahasa pemrograman dapat dispesifikasi oleh
tatabahasa struktur frasa, dan kebanyakannya merupakan
bahasa jenis-2 (misalnya: Basic, Fortran, Pascal).
8.
9. Otomata adalah suatu sistem yang memiliki fungsi-fungsi
dari komputer, menerima input, menghasilkan
output, memiliki penyimpan sementara, mampu membuat
keputusan dalam mentransformasikan input ke output.
Contoh :
Mesin Jaja / vending machine
Kunci kombinasi
Parser/compiler
Apa itu Otomata?
10. Otomata terhingga dan bahasa reguler (reguler
languages) adalah level terendah dari hirarki mesin
dan bahasa. Salah satu aplikasinya adalah konstruksi
pengkompilasi (compiler), yaitu pengenalan string
dari simbol di kode sumber program yang harus
direpresentasikan sebagai objek tunggal seperti
nama variabel, konstanta numerik, dan reserved
word.
Otomata terhingga
12. Ciri-ciri:
1. Himpunan terhingga status-status S = {s0, s1, s2, …..}
2. Unsur khusus di dalam himpunan S, yaitu S0 yang dinamakan
status awal (initial state)
3. Himpunan terhingga huruf-huruf masukan I = {i0, i1, i2, …..}
4. Himpunan terhingga huruf-huruf keluaran O = {o0, o1, o2,
……}
5. Fungsi transisi (transition function) yaitu fungsi f dari S x I ke S
6. Fungsi keluaran (output function) yaitu fungsi g dari S ke O
Mesin Status Terhingga
(finite-state machine)
14. Mesin status terhingga dapat digunakan untuk memodelkan
suatu sistem fisik, seperti contoh vending machine
Mesin Status Terhingga sebagai
Model Sistem Fisik
A
O
C
2
B
1
1
2
2
1
1
2
0
0
0
15. Mesin status terhingga dapat digunakan untuk memodelkan
suatu alat untuk mengenali (menerima) kalimat-kalimat di
dalam suatu bahasa
Mesin Status Terhingga sebagai
Model Sistem Fisik
16. Pada tahun 1936 seorang matematikawan berkebangsaan
Inggris bernama AlanTuring, mengusulkan suatu model
sederhana yang mempunyai kemampuan sebuah komputer
general-purpose. MesinTuring mengenal kelas bahasa yang
disebut sebagai himpunan ter-enumerasi rekursif (recursively
enumerable set), selain itu mesinTuring juga dapat digunakan
untuk menghitung kelas fungsi bilangan bulat yang dikenal
sebagai fungsi rekusif parsial (partial recursive function).
Mesin Turing
a1 A2 … an B B B ….
Finite State Control
Head baca/tulis B = blank (spasi)
17. Model Mesin Turing ditunjukkan pada gambar, dan terdiri dari
komponen-komponen berikut :
1. Pengendali status terhingga (finite state control)
2. Pita msukan dengan sifat :
> panjangnya tak terhingga (dari ujung kiri tebatas ujung
kanan tidak terbatas)
> dapat dibaca dan ditulis
Pada keadaan awal n sel pertama dari pita masukan berisi
rangkaian simbol yang harus dikenali. Sel-sel lain disebelah
kanan rangkaian simbol berisi simbol kosong
18. Perilaku mesin Turing tergantung pada simbol masukan yang berada pada
posisi kepala (head) baca/tulis dan status pengendalinya. Aksi-aksi yang
dapat dilakukan yaitu :
1. Berubah status
2. Menuliskan simbol pada sel pita masukan. Aksi penulisan ini akan
mengubah simbol yang sebelumnya berada pada sel tersebut
3. Menggerakkan head ke kiri atau ke kanan
Perilaku mesin Turing
19. Dengan :
Q : himpunan terhingga dari status
Σ : subset dari Γ, termasuk di dalamnya B, yang merupakan himpunan dari
simbol-simbol masukan
Γ : himpunan terhingga dari simbol-simbol yang muncul di pitaq
δ : fungsi pergerakan yang merupakan pemetaan dari A x Γ ke Q x Γ x
{L,R}2
q0 : satus awal anggota Q
B : anggota Γ, melambangkan simbol spasi ( blank )
F : himpunan status akhir
Deskripsi sesaat : α1qα2 menyatakan mesin yang berada pada status
q, dan α1α2 adalah simbol yang tertera pada pita. Jadi mesin sudah
membaca string α1 dan sedang membaca simbol paling kiri dari α2.
Notasi formal mesin Turing
M = (Q, Σ, Γ, δ, q0, B, F)