Ada banyak definisi online tentang apa itu Tata Bahasa Bebas Konteks, tetapi tidak ada yang saya temukan yang memuaskan masalah utama saya:
Konteks apa itu gratis?
Untuk menyelidiki, saya mencari "tata bahasa sensitif konteks" di Google, tetapi saya masih gagal menemukan apa arti "konteks" itu.
Bisakah seseorang tolong jelaskan apa context
istilah yang dimaksud dalam nama-nama ini?
terminology
context-free
formal-grammars
CodyBugstein
sumber
sumber
override
bisa berupa nama variabel atau kata kunci, tergantung di mana ia digunakan (yaitu, konteksnya). Jika digunakan setelah deklarasi metode, itu adalah kata kunci. Kalau tidak, tidak. Ini adalah contoh tata bahasa yang sensitif konteks.Jawaban:
Anda benar, selalu ada konteks dalam arti tertentu. Saya tidak berpikir Anda dapat memahami apa arti "konteks" dalam "bebas konteks" tanpa memahami suatu produksi.
Produksi adalah aturan substitusi. Dikatakan bahwa, untuk menghasilkan string dalam bahasa, Anda dapat mengganti apa yang ada di kiri dengan apa yang ada di kanan:
Ini berarti bahwa urutan abstrak A dapat digantikan oleh karakter "x" diikuti oleh karakter "y". Anda juga dapat memiliki produksi yang lebih kompleks:
Ini berarti bahwa karakter "z" diikuti oleh urutan abstrak A dapat digantikan oleh karakter "x" dan "y".
Produksi bebas konteks hanya berarti bahwa hanya ada satu hal di sisi kiri. Contoh pertama adalah bebas konteks, karena A dapat diganti dengan "x" dan "y" tidak peduli apa yang terjadi sebelum atau sesudahnya. Namun, dalam contoh kedua, karakter "z" harus muncul sebelum A, dan kemudian kombinasi dapat diganti dengan "x" dan "y", sehingga ada beberapa konteks yang terlibat.
Tata bahasa bebas konteks kemudian hanya tata bahasa dengan hanya produksi bebas konteks.
Contoh kedua sebenarnya adalah contoh dari produksi yang tidak dibatasi. Ada kategori lain yang antara bebas konteks dan tidak dibatasi yang disebut "konteks-sensitif". Contoh produksi peka konteks adalah:
Perbedaannya adalah bahwa apa yang muncul sebelum A (dan setelah) di sisi kiri harus dipertahankan di sebelah kanan. Ini secara efektif berarti bahwa hanya A yang diganti, tetapi hanya dapat diganti dalam konteks yang tepat.
sumber
zA -> zxy
: A masih digantikan oleh xy, tetapi hanya setelah z.sumber