Seberapa kuat CFG yang memungkinkan jumlah aturan yang tak terbatas?

9

Baru-baru ini saya bertanya-tanya apa yang akan terjadi jika kita membiarkan tata bahasa bebas konteks memiliki jumlah aturan yang tak terbatas. Jelas, jika kita mengizinkan seperangkat aturan tak terbatas seperti itu, setiap bahasa pada beberapa alfabet dapat dijelaskan oleh CFG dengan . Tetapi bagaimana jika kita membatasi ke set aturan seperti itu yang dapat dibuat oleh tata bahasa bebas konteks?LΣG=({S},Σ,R,S)R={SwwL}R

Untuk tujuan itu, diberikan satu set nonterminals dan terminal , mari kita lihat aturan bukan sebagai elemen , tetapi sebagai string di atas alfabet . Sekarang pertanyaan saya adalah, jika kita mendefinisikan aturan tak terbatas CFG menjadi tuple manaNΣN×(NΣ)R(N,Σ)=NΣ{}G=(N,Σ,R,S)

  • N adalah seperangkat nonterminals yang terbatas
  • Σ adalah alfabet terbatas
  • R adalah seperangkat aturan dari bentuk dengan , sedemikian rupa sehingga ada beberapa CFGAwANw(NΣ) lebih dari R ( N , Σ ) dengan R = L ( G )GR(N,Σ)R=L(G)
  • adalah nonterminal awalSN

dan kita mendefinisikan untuk CFGs aturan yang tak terbatas seperti seperti hal itu dilakukan untuk CFGs, apa hubungan antara kelas bahasa yang dihasilkan oleh CFGs aturan tak terbatas (panggilan mari kelas i r C F ), kelas pada konteks bahasa bebas C F dan kelas R E ?L(G)irCFCFRE

Jelas, kita memiliki , tetapi apakah i r C F setara dengan salah satu kelas ini (atau beberapa kelas lain)?CFirCFREirCF

sangat besar
sumber

Jawaban:

7

Misalkan kita mengambil metagrammar dan memasukkannya dengan awalan dua simbol. Dengan kata lain, untuk setiap A N membangun G A , turunan kiri G ′ di atas string A . Yang akan menghasilkan (terbatas) set (terbatas) metagrammars, masing-masing memproduksi semua (mungkin tak terbatas) produksi untuk beberapa A N .GANGAGAAN

Sekarang, bangun tata bahasa , yang aturannya adalah penyatuan semua aturan dalam tata bahasa G A (dengan non-terminal diganti namanya untuk menghindari tabrakan), bersama dengan A S G A untuk setiap G A , di mana S G ' A adalah awal non-terminal untuk G ' A . Non-terminal untuk G termasuk N dan semua non-terminal untuk setiap G A ; start non-terminal adalah start non-terminal dari GGGAASGAGASGAGAGNGAG, Dan terminal untuk adalah justru terminal untuk G . Saya menegaskan (tanpa bukti) bahwa G adalah tata bahasa yang terbatas untuk bahasa yang sama, karena proses derivasi tidak dipengaruhi oleh asal-usul aturan; itu hanya penggantian string alfabet.GGG

Jika garis besar bukti di atas valid, dan i r C F adalah sama.CFirCF

Seperti yang saya singgung dalam komentar, ada contoh yang lebih menarik dari tata bahasa dua tingkat, termasuk tata bahasa Van Wijngaarden dan berbagai upaya yang telah dilakukan untuk menciptakan formalisme yang lebih mudah dikelola tanpa kehilangan semua kekuatan tambahan.

rici
sumber