next up previous contents
Siguiente: Equivalencia y ambigüedad Subir: Gramáticas generativas Anterior: Árbol de derivación   Índice General

Jerarquia de Chomsky

Según Chomsky se clasifica las gramáticas en cuatro tipos (cuales son, como vemos más adelante, entre si verdaderamente diferentes).

Entonces sea $G=(\Sigma_N,\Sigma_T,P,\$)$ una gramática (y $\Sigma=\Sigma_N\cup\Sigma_T$). Las gramáticas se destinguen solamente en el sistema de producciones que siempre será un conjunto finito y que se clasifica en los siguientes tipos:

Tipo 0:
gramáticas generales sin restricciones

\begin{displaymath}P\subset\mbox{$\Sigma^*$}.\Sigma_N.\mbox{$\Sigma^*$}\times\mbox{$\Sigma^*$}\end{displaymath}

es decir, se sustituye por lo menos un símbolo no-terminal.
Tipo 1:
gramáticas sensibles al contexto

\begin{displaymath}P\subset\{xAy\longrightarrow xvy\;\vert\;x,y\in\mbox{$\Sigma^...
...\in\Sigma_N, v\in\Sigma^+\}
\cup\{\$\longrightarrow \epsilon\} \end{displaymath}

es decir, se sustituye un símbolo no-terminal por algo manteniendo el contexto; entonces una derivación siempre produce palabras más largas o iguales ( $u\longrightarrow ^*v\Longrightarrow\vert u\vert\leq\vert v\vert$)
Tipo 2:
gramáticas libres de contexto

\begin{displaymath}P\subset\Sigma_N\times\Sigma^+
\cup\{\$\longrightarrow \epsilon\} \end{displaymath}

es decir, se sustituye solo símbolos no-terminales por palabras no vacías
Tipo 3:
gramáticas regulares (o lineales)

\begin{displaymath}P\subset\Sigma_N\times(\Sigma_N.\Sigma_T\cup\Sigma_T)
\cup\{\$\longrightarrow \epsilon\} \end{displaymath}

es decir, lineales a la izquierda (porque los símbolos no-terminales aparecen en una derivación siempre a la izquierda de la palabra)

\begin{displaymath}P\subset\Sigma_N\times(\Sigma_T.\Sigma_N\cup\Sigma_T)
\cup\{\$\longrightarrow \epsilon\} \end{displaymath}

es decir, lineales a la derecha (porque los símbolos no-terminales aparecen en una derivación siempre a la derecha de la palabra)

Observación: si permitimos para las gramáticas de libre contexto reglas del tipo $\Sigma_N\longrightarrow \mbox{$\Sigma^*$}$, es decir, permitimos reglas como $A\longrightarrow \epsilon$, podemos sustituir todas las reglas que tengan una $A$ a la derecha, por ejemplo $B\longrightarrow xAy$ por $B\longrightarrow xy$, y conseguir así una eliminación de las producciones compresoras.


next up previous contents
Siguiente: Equivalencia y ambigüedad Subir: Gramáticas generativas Anterior: Árbol de derivación   Índice General
© 2006, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática