Ambiguidade inerente ao idioma

7

Fiz uma pergunta pedindo que eu escolhesse o idioma inerentemente ambíguo entre um conjunto de opções.

L1={anbmcmdn|m,n1}{anbncmdm|m,n1}
and
L2={anbmcm|m,n1}{anbncm|m,n1}

A solução disse que é ambíguo enquanto não. Gerou a seguinte gramática paraL1L2L1

SS1|S2

S1AB

AaAb|ab

BcBd|cd

S2aS2d|aCd

CbCc|bc

Agora, para a string abcd, ela gerará duas árvores de análise; por isso é ambíguo.

Mas uma gramática similar pode ser criado para demaisL2

SS1|S2

S1Ac

AaAb|ϵ

S2aB

BbBc|ϵ

E também irá gerar duas árvores de análise para abc. Por que não é ambíguo então?

Se você precisar, pode ser escrito comoL2{anbpcm|n=porm=p}

Shashwat
fonte
6
Apenas um comentário rápido: uma gramática pode ser ambígua ou não; Um idioma não pode ser ambíguo, mas pode ser inerentemente ambíguo, o que significa que qualquer gramática desse idioma é ambígua.
Ran G.
L1 é de fato inerentemente ambíguo, e suponho que você peça para mostrar que não é, ou seja, para mostrar uma gramática não ambígua para . Você deve editar a pergunta adequadamente, se houver. L2L2
9788 Ranier G.
Eu acho que é ambíguo. Mas a solução disse que não é. Eu quero saber "como". L2
Shashwat 9/11/12
3
Veja aqui uma técnica que pode ser útil aqui.
Raphael
2
A ambiguidade do @FatemehKarimi é uma propriedade da gramática, não do idioma. Ou seja, alguma língua pode ter duas gramáticas: uma ambígua e a outra não. Se todas as gramáticas são ambíguas, diz-se que a linguagem é inerentemente ambígua. L
Ran G.

Respostas:

12

A pergunta está errada. A segunda língua também é inerentemente ambígua. A maneira usual de provar isso é a seguinte. Suponha que tivesse uma gramática inequívoca. Seja a constante prometida pelo lema de Ogden e considere a palavra . Marque as posições de e aplique o lema de Ogden para bombear esta palavra com a palavra (o lema de Ogden nos permite bombeie para e desde .) Da mesma forma, podemos obter a mesma palavra bombeandoL2pap!+pbpcpbpcpap!+pbp!+pcp!+pbqcqqpq|p!qpapbpcp!+p. As duas árvores de análise são diferentes, pois na primeira a maioria dos está "intimamente relacionada" (em termos de ancestral menos comum) com s, e na segunda é o contrário.bc

Yuval Filmus
fonte
11
Veja a seguinte apresentação para outros métodos de prova: algo.inria.fr/pfac/PFAC/Program_files/nicaud.pdf
Yuval Filmus
Arrumado. Eu não sabia disso antes.
Raphael
Como observação, a linguagem é de fato mencionada como um exemplo no artigo original de Ogden, de 1968, "Um resultado útil para provar a ambiguidade inerente". O resultado nesse idioma em si é atribuído a Ginsburg, mas provavelmente obtido usando métodos adhoc horríveis. L2
Hendrik Jan
5

Você está certo em duvidar, também é inerentemente ambíguo. Foi até usado como "protótipo de uma linguagem inerentemente ambígua" por Flajolet (logo no início da seção 2).L2

Luke Mathieson
fonte