Evet, bağlama duyarlı gramerler (CSG) tanımlanmamış / bildirilmemiş / sınırsız değişkenleri kontrol edecek kadar güçlüdür, ancak maalesef CSG dizelerini ayrıştırmak için etkili bir algoritma bilmiyoruz.
Bağlama duyarlı dilin gerçek bir örneği C programlama dilidir. Önce değişkenleri bildirmek ve daha sonra bunları kullanmak gibi bir özellik, C dilini bağlama duyarlı bir dil (CSL) yapar. ( Tipik olmayan lambda hesabı hakkında bilmiyorum ).
CSL (veya CSG) için doğrusal ayrıştırma algoritması bilmediğimiz için. Derleyici tasarımının nedeni, sözdizimi denetimi için CFG'yi (ve yalnızca ayrıştırma algoritmasını) kullanıyoruz çünkü CFG'yi ayrıştırmak için etkin algoritmalar biliyoruz (kısıtlı formda ise). Derleyiciler önce bağlamsız bir özelliği ayrıştırır ve daha sonra bağlama duyarlı özellikleri sorunlu bir şekilde işler (örneğin, tanımlanmışsa sembol tablosunda kullanılan herhangi bir değişkeni denetler. Aksi takdirde bir hata oluşturur).
Ayrıca içeriğe duyarlı dilbilgisi doğal dil işlemede (NLP) kullanılır. Ve çoğu doğal dil bağlama duyarlı dillerin örnekleridir. ( Sanskrit dilinden emin değilim ).
Aptalca ama basit bir örnekle açıklamaya çalışacağım (sadece bir fikir, rafine edebilirsiniz):
NOUN --> { BlueBomber, Grijesh, I, We}
TENSE --> { am, was, is, were}
VERB --> { going, eating, working}
SENTENCE --> <NOUN> <TENSE> <VERB>
Şimdi, bu dilbilgisini kullanarak bazı doğru ifadeler üretebiliriz, ancak bazıları da yanlıştır. Örneğin,
SENTENCE --> <NOUN> <TENSE> <VERB>
Grijesh is working [Correct statement]
Fakat
Grijesh am working [wrong statement]
Sebep: <TENSE> değeri <NOUN> değerine (örneğin, I <TENNSE> --> I am
) bağlıdır ve bu nedenle dilbilgisi İngilizce dilinde doğru ifadeler üretmez.
Aslında tam İngilizce için bağlamsız bir gramer yazamıyoruz!
Fark etmiş olabilirsiniz, herhangi bir doğal dil çevirmeni veya dilbilgisi denetleyicisi düzgün çalışmıyor (uzun ifadelerle deneyin). Çünkü bu sorun bağlama duyarlı ayrıştırma algoritması altındadır.
REFERANS : Dr. Arun Kumar'ın derslerini izleyebilirsiniz .
Bazı derslerde tam olarak neyle ilgilendiğinizi açıklar.