Sim, gramáticas sensíveis ao contexto (CSG) são poderosas o suficiente para fazer a verificação de variáveis indefinidas / não declaradas / não acopladas, mas infelizmente não conhecemos nenhum algoritmo eficiente para analisar seqüências de caracteres de CSG.
Um exemplo real de uma linguagem sensível ao contexto é a linguagem de programação C. Um recurso como declarar variáveis primeiro e depois usá-las posteriormente torna a linguagem C uma linguagem sensível ao contexto (CSL). ( Eu não sei sobre cálculo lambda sem tipo ).
E porque não conhecemos nenhum algoritmo de análise linear para CSL (ou CSG). Essa é a razão no design do compilador, usamos o CFG (e apenas seu algoritmo de análise) para verificação de sintaxe, pois conhecemos algoritmos eficientes para analisar o CFG (se estiver em forma restrita). Os compiladores analisam primeiro um recurso livre de contexto e, posteriormente, manipulam recursos sensíveis ao contexto de maneira problemática (por exemplo, verifica qualquer variável usada na tabela de símbolos, se estiver definida. Caso contrário, gera um erro).
A gramática sensível ao contexto também é usada no processamento de linguagem natural (PNL). E a maioria das linguagens naturais são exemplos de linguagens sensíveis ao contexto. (Não sei ao certo o idioma sânscrito ).
Vou tentar explicá-lo com um exemplo bobo, mas simples (é apenas uma ideia, você pode refinar):
NOUN --> { BlueBomber, Grijesh, I, We}
TENSE --> { am, was, is, were}
VERB --> { going, eating, working}
SENTENCE --> <NOUN> <TENSE> <VERB>
Agora, usando essa gramática, podemos gerar algumas declarações corretas, mas algumas também estão erradas. Por exemplo,
SENTENCE --> <NOUN> <TENSE> <VERB>
Grijesh is working [Correct statement]
Mas
Grijesh am working [wrong statement]
Razão: o valor de <TENSE> depende do valor <NOUN> (por exemplo I <TENNSE> --> I am
) e, portanto, a gramática não gera instruções corretas no idioma inglês.
Na verdade, não podemos escrever uma gramática sem contexto para inglês completo!
Você deve ter notado que qualquer tradutor de idioma natural ou verificador gramatical não funciona corretamente (tente com instruções longas). Porque esse problema está no algoritmo de análise sensível ao contexto.
REFERÊNCIA : Você pode assistir às palestras do Dr. Arun Kumar .
Em algumas palestras, ele explica exatamente em que você está interessado.