Skip to content

Árboles de derivación

Un árbol de derivación (o árbol sintáctico) es una representación gráfica de cómo una cadena de entrada puede ser derivada a partir del símbolo inicial de una gramática libre de contexto. Cada nodo interno del árbol corresponde a un no terminal en una regla de producción, y los nodos hoja corresponden a los símbolos terminales (tokens) de la cadena de entrada.

Los árboles de derivación son una forma visual de entender la estructura sintáctica de un programa y cómo el analizador sintáctico lo ha interpretado.

LiveServer

LiveServer

LiveServer

LiveServer

<Programa>
|
------------------------------------------
| | |
<_nl> <Sentencias> <_nl>
|
<Sentencia>
|
<Asignacion>
|
-------------------------------------------------------------------------
| | | | | | |
<Designable> <_> <_OP_ASIGNACION> <_> <Expresion> <_> <_PUNTO_Y_COMA>
| | | | | | |
<_IDENTIFICADOR_VAR> ( ) = ( ) <ExpresionLogicaOr> ( ) ;
| |
$variable <ExpresionLogicaAnd>
|
<ExpresionIgualdad>
|
<ExpresionRelacional>
|
<ExpresionAditiva>
|
<ExpresionMultiplicativa>
|
<ExpresionPotencia>
|
<ExpresionUnaria>
|
<ExpresionPostfija>e
|
<LiteralPrimario>
|
<_numero>
|
123

Arreglo booleano

Arreglo booleano

Arreglo booleano

Arreglo booleano

<Programa>
|
<Sentencias>
|
---------------------
| |
<CondicionalSi> <OtrasSentencias>
|
---------------------------------------------------
| | | | |
"si" "(" <Expresión> ")" "{" <Bloque> "}"
|
-----------------------------------
| |
<ExpresiónLogicaOr> <OperadorLogico>?
| |
<ExpresiónLogicaAnd> |
| |
<ExpresiónIgualdad> <ExpresiónRelacional>
| |
<ExpresiónRelacional> ---------------------
| | |
<ExpresiónAditiva> <ExpresiónAditiva> <OperadorRelacional>
|
<ExpresiónMultiplicativa>
|
<ExpresiónPotencia>
|
<ExpresiónUnaria>
|
<ExpresiónPostfija>
|
---------------------
| |
<Variable> <Literal>
| |
"$<ID>" "<numero>|<texto>|<booleano>"
<Bloque>
|
<Sentencia>*
|
---------------------
| | |
<Imprimir> <Asignación> <CondicionalSi>

Arreglo booleano

Arreglo booleano

Arreglo booleano

<Expresion>
|
<ExpresionAsignacion>
/ | \
<Variable> <OP_ASIGNACION> <ExpresionLogicaOR>
|
<ExpresionLogicaAND>
|
<ExpresionIgualdad>
|
<ExpresionRelacional>
|
<ExpresionAditiva>
/ | \
<ExpresionMultiplicativa> <OP_SUMA> <ExpresionMultiplicativa>
| |
<ExpresionPotencia> <ExpresionPotencia>
| |
<ExpresionUnaria> <ExpresionUnaria>
| |
<ExpresionPrimaria> <ExpresionPrimaria>
| |
<Literal> <Literal>