Menemukan bahasa yang dihasilkan oleh tata bahasa bebas konteks


11

Ini adalah pertanyaan dari buku Naga (saya minta maaf atas kesalahan terjemahan, saya tidak memiliki versi bahasa Inggris di tangan):

Bahasa apa yang dihasilkan oleh tata bahasa ini?

SaSbSbSaSϵ

Saya tidak tahu apa yang harus saya lakukan di sini. Definisi dalam buku tentang bahasa mengatakan ini (dan itu cukup banyak di bab ini):

sebuah bahasa adalah himpunan semua kata yang dapat dihasilkan oleh pohon parse apa pun.

Jadi, jika saya ingin membuat "parse tree" dari tata bahasa ini, saya dapat secara rekursif membangunnya, hanya menggunakan dua aturan pertama. Saya mencari sedikit dan mendapat kesan bahwa setiap aturan harus digunakan sekali, tapi saya tidak yakin. Akan sangat membantu jika seseorang dapat memberikan beberapa tips untuk menyelesaikan masalah seperti ini.


1
Petunjuk: Gunakan ekspresi reguler
Bartosz Przybylski

Untuk kiat, lihat jawaban di bawah. Untuk menjawab pertanyaan Anda: tidak, tidak perlu menggunakan setiap aturan setidaknya satu kali. Mulai dengan simbol awal (atau aksioma) dan terapkan aturan penulisan ulang sampai Anda hanya memiliki simbol terminal (huruf kecil di sini).
Hendrik Jan

dengan asumsi String kosong bukan Simbol terminal, menurut pemahaman saya itu tidak mungkin bahwa hanya simbol terminal yang tersisa, atau apakah saya salah mengerti sesuatu?
dan


@dan. String kosong menghilang, sehingga Anda bisa berakhir dengan terminal saja: . Sebagai contoh. SaSbSaaSbbSaabbSaabbbSaaabbba
Hendrik Jan

Jawaban:


6

Petunjuk: Apa yang dapat Anda katakan tentang jumlah dan dalam kata-kata yang dihasilkan?bab

Akan sangat membantu jika seseorang dapat memberikan beberapa tips untuk menyelesaikan masalah seperti ini.

Tidak ada resep satu ukuran untuk semua di sini. Secara umum tidak dapat dipungkiri, apakah dua CFG menghasilkan bahasa yang sama atau dua CFL adalah bahasa yang sama. Metode yang berguna adalah mencoba memperhatikan properti yang tetap invarian selama produksi.


5

Petunjuk: Buat beberapa kata yang dihasilkan oleh tata bahasa ini. Apakah Anda melihat pola? Bisakah Anda menggambarkan beberapa properti dari semua kata yang dihasilkan oleh tata bahasa, hanya dengan melihat aturannya? Setelah Anda memiliki tebakan (benar) untuk bahasa yang dihasilkan oleh tata bahasa, tidak akan terlalu sulit untuk membuktikannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.