1 / 8

Forma Normal de Chomsky

Forma Normal de Chomsky. Programa de Pós-graduação em Ciência da Computação - UFU Profa. Sandra de Amo. Definição. Uma gramática livre do contexto está na Forma Normal de Chomsky (FNC) se: suas regras de produção são do tipo A  BC ; A, B, C são variáveis

colt-ellis
Download Presentation

Forma Normal de Chomsky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Forma Normal de Chomsky Programa de Pós-graduação em Ciência da Computação - UFU Profa. Sandra de Amo

  2. Definição Uma gramática livre do contexto está na Forma Normal de Chomsky (FNC) se: • suas regras de produção são do tipo • A  BC ; A, B, C são variáveis • A  a ; A variável e a terminal • S  ϵ • a variável start S não aparece no corpo das regras

  3. Arvores de Derivação de uma FNC • Arvores de derivação são binárias : cada nó tem no máximo 2 filhos • Nós intermediários são variáveis • Folhas só tem terminais • A variável S só aparece na raiz

  4. Arvores de Derivação = Start S = Variáveis distintas de S = terminais

  5. Toda gramática LC é equivalente a uma gramática em FNC Transformação das regras em FNC • Inserir novo simbolo start S0 e regra S0 S Desta forma, o simbolo start S0 não aparece em nenhum corpo de regra • Remover todas as regras do tipo A  ϵ(inclusive S  ϵ ) Para cada regra onde A tem uma ocorrência do lado direito, inserir uma regra sem esta ocorrência de A Exemplo: se R  uAvAw é uma regra então acrescentamos as regras: R  uvAw R  uAvw R  uvw se R  A é uma regra e R  ϵnão foi removido em um passo precedente então acrescentamos a regra R  ϵ Desta forma, obtemos uma gramática sem regras do tipo A  ϵ (para A distinto da variável start S0 )

  6. Toda gramática LC é equivalente a uma em FNC • Eliminar regras unitárias do tipo A  B. Para cada regra começando com B, acrescentar regra análoga, substituindo B por A na cabeça (a menos que a regra assim obtida seja uma regra unitária já removida) Exemplo: A  B B  C1C2a B  C1C2a A  C1C2a • Resolver o problema de regras do tipo X = regras com corpo com comprimento maior do que 1 e contendo terminais. Para cada terminal a aparecendo no corpo de uma destas regras de tipo X inserir regra do tipo Ua a, onde Ua é uma nova variável. Substituir todas as ocorrências de a em regras do tipo X pela variável Ua. Exemplo: R  aAB R UaAB Ua  a

  7. Toda gramática LC é equivalente a uma em FNC • Resolver o problema de regras do tipo Y = regras com corpo com comprimento maior do que 2: R  ABCD R  UD R  UD U  ABC U  VC V  AB

  8. Exemplo S  ASA | aB S0 S S0 S A  B | S S  ASA | aB S  ASA | aB | a B  b | ϵ A  B | S A  B | S | ϵ B  b | ϵB  b (6 regras) S0 SS0 ASA | aB | a | AS | SA S  ASA | aB | a | AS | SA | SS  ASA | aB | a | AS | SA A  B | S A  B | ASA | aB | a | AS | SA B  b B  b S0 ASA | aB | a | AS | SA S0 | AA1 | UB | a | AS | SA S  ASA | aB | a | AS | SAS  AA1 | UB | a | AS | SA A  b | ASA | aB | a | AS | SA A  b | AA1 | UB | a | AS | SA B  b A1  SA U  a B  b (FNC : 20 regras)

More Related