Definisi Chomsky Hierarchy
Chomsky
adalah salah satu pemrakarsa teori pemerolehan bahasa yang meyakini bahwa
proses pemerolehan bahasa adalah suatu proses mental atau sebuah hirarki
penahanan kelas tata bahasa formal. Yang digambarkan oleh Noam Chomsky pada
tahun 1956. Hal ini juga dinami Marcel-Paul Schutzenberger, yang memainkan
peran penting dalam pengembangan teori bahasa formal. Pada dasranya Chomsky
Hierarchy ini memungkinkan kemungkinan bagi pemahaman dan penggunaan model ilmu
komputer yang memungkinkan programmer untuk mencapai tujuan linguistik bermakna
sistematis.
Noam
Chosky menciptakan model matematika sebagai sarana untuk mendeskripsikan
bahasa. Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai saat
ini belum diketahui bagaimana cara manusia mengartikan bahasa, sementara dengan
pasti dapat mengartikan bahasa pada komputer. Noam Chomsky mengemukakan
perangkat format yang disebut dengan grammar untuk memodelkan properti-properti
bahasa. Grammar mempunyai nilai/manfaat sangat besar di ilmu
informatika/komputer karena pencapaian ini digunakan untuk mendefinisikan dan
mendeskripsikan sintaks bahasa pemrograman dan bahasa-bahsa formal lainnya.
Grammar diterapkan pada perancangan kompilator dan bidang-bidang di ilmu
komputer.
Bentuk
Normal Chomsky / Chomsky Normal Form (CNF) merupakan salah satu bentuk normal yang sangat berguna
untuk Context Free Grammar (CFG). Bentuk Normal Chomsky dapat dibuat dari
sebuah tata bahasa bebas konteks yang telah mengalami penyederhanaan yaitu
penghilangan produksi useless, unit, dan
.
Dengan kata lain, suatu tata bahasa bebas konteks dapat diubah menjadibentuk
normal Chomsky dengan syarat tata bahasa bebas konteks berikut:
·
Tidak
memiliki produksi useless
·
Tidak
memiliki produksi unit
·
Tidak
memiliki produksi
Tipe-tipe Chomsky Hierarchy
Noam Chomsky menyusun
grammar dalam urutan yang dia sebut tipe 0, 1, 2 san 3. Tipe 0 adalah
bentuk yang paling bebas dan paling sulit dikenali, biasa disebut recursively
enumerable set, untuk mengenali bentuk ini biasa dipakai Turing Machine.
Berikutnya adalah tipe 1 yang disebut context free grammar secara murni
(tanpa tambahan metoda tertentu) adalah tidak cukup untuk pengolahan bahasa
alami. Context Free
Grammar sifat
lebih mudah dipahami perilakunya dan pengolahannya serta masih dapat diolah
dalam bentuk program yang terstruktur.
Chomsky Hierarchy terdiri atas empat
tipe yaitu:
1. Tipe-0
Tipe-0
tata bahasa (grammar terbatas) mencangkup semua tata bahasa formal. Mereka
menghasilkan persis semua bahasa yang bisa dikenali oleh mesin Turing. Bahasa
ini juga biasanya disebut dengan bahasa rekursif enumerable.
2. Tipe-1
Tipe-1
tata bahasa (grammar context-sensitive) menghasilkan bahasa konteks – sensitif.
Tata bahasa ini memiliki aturan. Bahasa yang dijelaskan oleh tata bahasa ini
sama persis dengan semua bahasa yang bisa dikenali oleh robot yang dibatasi
oleh linear (mesin Turing nondeterministic yang dibatasi oleh waktu konstan
panjang input).
3. Tipe-2
Tipe-2
tata bahasa (bebas konteks) menghasilkan bahasa bebas konteks. Bahasa ini
persis sama dengan semua bahasa yang dikenali oleh nondeterministic otomat
pushdown. Bahasa bebas konteks merupakan dasar teoritis untuk sintaks bahasa
pemrograman.
4. Tipe-3
Tipe-3
tata bahasa (grammar biasa) menghasilkan bahasa biasa. Tata bahasa seperti ini
membatasi aturan untuk nonterminal tunggal di sisi kiri dan sisi kanan yang
terdiri dari satu terminal, mungkin diikuti (atau didahului, tetapi tidak dalam
bahasa yang sama) oleh nonterminal tunggal. Bahasa ini persis sama dengan semua
bahsa yang dapat diputuskan oleh negara yang terbatas. Selain itu, bahasa resmi
dapat diperoleh dengan ekspresi reguler. Bahasa reguler biasanya digunakan
untuk menentukan pola pencarian dan struktur leksikal bahasa pemrograman.
Tahap-Tahap Pembentukan Chomsky Hierarchy
Perbedaan Interpreter dan Compiler
· Interpreter
menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh
instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan
lain) bisa dijalankan secara langsung, tanpa tergantung lagi olelh program
sumber atau compilernya.
· Pada
interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji
sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan
pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih
lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu
untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika
program tak mengandung kesalahan secara kaidah sama sekali.
· Pada
interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi
dijalankan selalu harus diterjemahkan telebih dahulu. Selain itu, saat program
dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori
selalu digunakan baik untuk program maupun interpreter. Sedangkan pada
compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi
proses penerjemahan.
· Pada
interpreter, kode program tidak dapat dirahasiakan. Sdangkan pada compiler,
kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam
bentuk kode mesin.
No comments:
Post a Comment