Professional Documents
Culture Documents
c
c
c
c cc
Un
(en inglés Ô ë es una de las partes de un compilador que
transforma su entrada en un árbol de derivación.
Existen básicamente dos formas de describir cómo en una cierta gramática una cadena
puede ser derivada desde el símbolo inicial. La forma más simple es listar las cadenas de
c
símbolos consecutivas comenzando por el símbolo inicial y finalizando con la cadena y las
reglas que han sido aplicadas. Si introducimos estrategias como reemplazar siempre el no
terminal de más a la izquierda primero entonces la lista de reglas aplicadas es suficiente. A
esto se le llama
. Por ejemplo si tomamos la siguiente
gramática:
(1ë S ĺ S + S
(2ë S ĺ 1 c
c
La cadena "1 + 1 + 1" su derivación a la izquierda está en la lista [(1ë (1ë (2ë (2ë (2ë.
Análogamente la
!
se define como la lista que obtenemos si
siempre reemplazamos primero el no terminal de más a la derecha. En ese caso la lista de
reglas aplicadas para la derivación de la cadena con la gramática anterior sería la [(1ë (2ë
(1ë (2ë (2ë.
O O
c cc
c
c
c
SĺS+S (1ë
SĺS+S+S (1ë
Sĺ1+S+S (2ë
Sĺ1+1+S (2ë
Sĺ1+1+1 (2ë
{{{1}S + {1}S}S + {1}S}S
c
donde {...}S indica la subcadena reconocida como perteneciente a S. Esta jerarquía también
se puede representar mediante un árbol sintáctico:
S
/|\
/|\
/ | \ c
c
S '+' S
/|\ |
/|\ |
S '+' S '1'
| |
'1' '1'
O O
c cc
c
c
c
Este árbol es llamado árbol de sintaxis concreta de la cadena (ver también árbol de sintaxis
abstractaë. En este caso las derivaciones por la izquierda y por la derecha presentada
definen la sintaxis del árbol; sin embargo hay otra derivación (por la izquierdaë de la
misma cadena.
Sĺ S + S (1ë
Sĺ 1 + S (2ë
Sĺ 1 + S + S (1ë
Sĺ 1 + 1 + S (2ë
Sĺ 1 + 1 + 1 (2ë
S
c
/|\
/|\
/ | \
S '+' S
| /|\
| /|\
'1' S '+' S
| | c
c
'1' '1'
Si para una cadena del lenguaje de una gramática hay más de un árbol posible entonces se
dice que la gramática es ambigua. Normalmente estas gramáticas son más difíciles de
analizar por que el analizador no puede decidir siempre que producción aplicar.
O O
c cc
c
c
c
c"#
Cuando una cadena se deriva mediante una gramática libre de contexto el símbolo inicial
es sustituido por alguna cadena. Los símbolos no terminales de esta cadena son sustituidos
uno tras otro por otra cadena y así sucesivamente hasta que se llega a una cadena formada
sólo por símbolos terminales. A veces es útil realizar un gráfico de la derivación que
indique de qué manera ha contribuido cada no terminal a formar la cadena final de
símbolos terminales. Tal gráfico tiene forma de árbol y se llama árbol sintáctico.
Un árbol sintáctico para una derivación dada se construye creando un nodo raíz que se
etiqueta con el símbolo inicial. El nodo raíz tiene un nodo hijo para cada símbolo que
aparezca en el lado derecho de la producción usada para reemplazar el símbolo inicial.
Todo nodo etiquetado con un no terminal también tiene nodos hijos etiquetados con los
símbolos del lado derecho de la producción usada para sustituir ese no terminal. Los nodos
c
que no tienen hijos deben ser etiquetados con símbolos terminales.
c
c
O O
c cc
c
c
c
$#
Son los elementos más básicos sobre los cuales se desarrolla toda traducción de un
programa surgen en la primera fase llamada análisis léxico sin embargo se siguen
utilizando en las siguientes fases (análisis sintáctico y análisis semánticoë antes de perderse
en la fase de síntesis.
Es el elemento léxico del lenguaje es decir el símbolo terminal de una gramática libre de
contexto (GLCë. Y por ultimo un (&
es la secuencia de caracteres que coinciden con
un token.
c
$# )
c
c
O O
c cc
c
c
c
[ #, c
Con este trabajo conocimos mas acerca de los compiladores y como se analizan
sintácticamente las cadenas que son analizadas y que se hace mediante arboles que pueden
También comprendí lo que son los token que son sobre los cuales se desarrolla la
traducción de un programa
c
c
c
O O
c cc
c
c
c
""-c./c
http://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico
http://www.monografias.com/trabajos16/automatas-y-gramaticas/automatas-y-
gramaticas.shtml
http://es.wikipedia.org/wiki/Gram%C3%A1tica_libre_de_contexto
http://es.wikipedia.org/wiki/Token_%28programaci%C3%B3n%29
http://www.slideshare.net/FARIDROJAS/analizador-lxico-presentation
c
http://valar.wordpress.com/2004/07/01/analizador-lexico/
c
c
O O