Ja, kontextsensitive Grammatiken (CSG) sind leistungsfähig genug, um undefinierte / nicht deklarierte / ungebundene Variablen zu überprüfen, aber leider kennen wir keinen effizienten Algorithmus zum Parsen von CSG-Zeichenfolgen.
Ein echtes Beispiel für eine kontextsensitive Sprache ist die Programmiersprache C. Eine Funktion wie zuerst Variablen deklarieren und später verwenden macht C-Sprache zu einer kontextsensitiven Sprache (CSL). ( Ich weiß nicht über untypisierte Lambda-Kalkül ).
Und weil wir keinen linearen Parsing-Algorithmus für CSL (oder CSG) kennen. Aus diesem Grund verwenden wir im Compiler-Design nur CFG (und dessen Parsing-Algorithmus) für die Syntaxprüfung, da wir effiziente Algorithmen zum Parsen von CFG kennen (wenn es in eingeschränkter Form vorliegt). Compiler analysieren zuerst ein kontextfreies Feature und behandeln dann später kontextsensitive Features auf problematische Weise (überprüfen Sie beispielsweise alle verwendeten Variablen in der Symboltabelle, falls sie definiert sind. Andernfalls wird ein Fehler generiert).
Auch die kontextsensitive Grammatik wird in der Verarbeitung natürlicher Sprache (NLP) verwendet. Und die meisten natürlichen Sprachen sind Beispiele für kontextsensitive Sprachen. (Ich bin nicht sicher für die Sanskrit- Sprache).
Ich werde versuchen, es mit einem albernen, aber einfachen Beispiel zu erklären (es ist nur eine Idee, Sie können es verfeinern):
NOUN --> { BlueBomber, Grijesh, I, We}
TENSE --> { am, was, is, were}
VERB --> { going, eating, working}
SENTENCE --> <NOUN> <TENSE> <VERB>
Mit dieser Grammatik können wir nun einige korrekte Aussagen erzeugen, aber einige sind auch falsch. Beispielsweise,
SENTENCE --> <NOUN> <TENSE> <VERB>
Grijesh is working [Correct statement]
Aber
Grijesh am working [wrong statement]
Grund: Der Wert von <TENSE> hängt (zum Beispiel I <TENNSE> --> I am
) vom Wert <NOUN> ab, und daher generiert die Grammatik keine korrekten Aussagen in der englischen Sprache.
Eigentlich können wir keine kontextfreie Grammatik für komplettes Englisch schreiben!
Möglicherweise haben Sie bemerkt, dass ein Übersetzer oder eine Grammatikprüfung für natürliche Sprachen nicht ordnungsgemäß funktioniert (versuchen Sie es mit langen Anweisungen). Weil dieses Problem unter den kontextsensitiven Parsing-Algorithmus fällt.
VERWEIS : Sie können die Vorträge von Dr. Arun Kumar ansehen .
In einem Vortrag erklärt er genau, woran Sie interessiert sind.