Next: As DCGs como analisadores Up: Gramáticas Previous: As gramáticas independentes do

As gramáticas de cláusulas definidas

As DCGs constituem uma classe de gramáticas mais poderosas do que as independentes de contexto: os símbolos não terminais podem ter argumentos! O problema de analisar sintacticamente uma string irá ser encarado como o problema de provar que um teorema é conclusão lógica da linguagem definida pelos axiomas das cláusulas definidas (pelas regras de produção da gramática).
Na notação das DCGs, isto é, em Prolog, se quisermos dizer que uma frase pode tomar a forma de um sintagma nominal seguido de um sintagma verbal, introduzimos a seguinte regra:

         frase --> sintagma_nominal, sintagma_verbal.

Nas regras das gramáticas de cláusulas definidas, lê-mos o símbolo -> como ``pode tomar a forma de'' e a vírgula como ``seguido de''.
A DCG que se segue, gera uma linguagem que tem como frase particular ``o homem vira o disco''.

         frase --> sintagma_nominal, sintagma_verbal.
         sintagma_nominal --> determinante, nome.
         sintagma_verbal --> verbo, sintagma_nominal.
         determinante --> [o].
         nome --> [homem].
         nome --> [disco].
         verbo --> [vira].




1999-05-26