Ja, kontextsensitive Grammatiken (CSG) sind stark genug, um undefinierte/nicht deklarierte/ungebundene Variablen zu überprüfen, aber leider kennen wir keinen effizienten Algorithmus zum Parsen von CSG-Strings.
Ein echtes Beispiel für eine kontextsensitive Sprache ist die C-Programmiersprache. Ein Feature wie deklarieren Variablen zuerst und dann verwenden Sie sie später machen C-Sprache eine context-sensitive language (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 CFG (und nur seinen Parsing-Algorithmus) zur Syntaxprüfung, da wir effiziente Algorithmen zum Parsen von CFG kennen (wenn es sich um eine eingeschränkte Form handelt). Compiler analysieren zuerst eine kontextfreie Funktion und behandeln dann später kontextsensitive Funktionen auf problematische Weise (zum Beispiel werden alle verwendeten Variablen in der Symboltabelle überprüft, wenn sie definiert sind. Andernfalls wird ein Fehler generiert).
Auch kontextsensitive Grammatik wird in natural-language processing (NLP) verwendet. Und die meisten natürlichen Sprachen sind Beispiele für kontextsensitive Sprachen. (Ich bin mir nicht sicher für die Sanskrit Sprache).
ich es mit einem albern aber einfaches Beispiel zu erklären versuchen (es ist nur eine Idee, können Sie es verfeinern):
NOUN --> { BlueBomber, Grijesh, I, We}
TENSE --> { am, was, is, were}
VERB --> { going, eating, working}
SENTENCE --> <NOUN> <TENSE> <VERB>
nun diese Grammatik verwenden, können wir einige richtige Aussagen zu generieren, aber einige sind auch falsch. Zum Beispiel
SENTENCE --> <NOUN> <TENSE> <VERB>
Grijesh is working [Correct statement]
Aber
Grijesh am working [wrong statement]
Grund: der Wert von < TENSE> hängt von Wert < Nomen> (zB I <TENSE> --> I am
) und damit ist die Grammatik nicht korrekte Angaben in der Erzeugung Englische Sprache.
Eigentlich können wir keine kontextfreie Grammatik für komplettes Englisch schreiben!
Sie haben vielleicht bemerkt, dass ein natürlichsprachiger Übersetzer oder Grammatikprüfer nicht richtig funktioniert (versuchen Sie es mit langen Anweisungen).Weil dieses Problem unter den kontextsensitiven Analysealgorithmus fällt.
BEZUG: Sie können Dr. Arun Kumar's lectures beobachten. In einigen Vortrag erklärt er genau, was Sie interessiert sind.
Diese Frage wurde reposted und migriert und endete schließlich auf [cs.se]: [Kann jemand ein einfaches, aber nicht-Spielzeug Beispiel eines Kontext geben- empfindliche Grammatik?] (http://cs.stackexchange.com/questions/7716/can-someone-give-a-imple-but-non-toy-example-of-a-context-sensitive-grammar) – Gilles
Darüber hinaus, Ich habe dafür gestimmt, dass das gelöscht wird. – BlueBomber