Ejemplo formal 2 (cont.)

Anuncio
“Análisis y simulación de
sistemas complejos”
curso 2008/09
Alfonso Ortega: [email protected]
Manuel Alfonseca: [email protected]
1
Repaso de Teoría de Autómatas y
Lenguajes Formales: recordatorio
gramáticas Chomsky.
2
Recordatorio de las gramáticas de Chomsky
• Historia.
• Avram Noam Chomsky (lingüista norteamericano) presenta en
los años 50 este modelo para formalizar el lenguaje natural.
• También al estudio de los lenguajes de programación de
ordenadores.
• Descripción informal.
• Formalizan las reglas sintácticas para la construcción o análisis
de las frases de cualquier lenguaje (“las estudiadas en el
colegio”).
• Conciben los lenguajes como conjuntos de cadenas de símbolos.
• Por lo tanto estas gramáticas están compuestas principalmente
por un alfabeto de símbolos y unas reglas para transformar unas
cadenas de símbolos en otras.
3
Recordatorio de las gramáticas de Chomsky
• Ejemplo informal.
• A continuación se presenta informalmente un ejemplo para el
siguiente lenguaje de igualdades matemáticas:
• Se pueden utilizar como operaciones +, -, ×, ÷
• La igualdad se representa con el símbolo =
• Se pueden utilizar como operandos números naturales y
variables (representadas por las letras del alfabeto)
• Se pueden utilizar libremente paréntesis si se necesitan
• Así podemos escribir:
3+x=a
(a+4)*b=1
4
Recordatorio de las gramáticas de Chomsky
• Ejemplo informal (cont.) .
• Nuestro conocimiento del lenguaje ofrece las siguientes reglas
• La estructura de una igualdad puede esquematizarse así:
igualdad es expresión aritmética = expresión aritmética
• Donde la estructura de las expresiones aritméticas es ésta:
expresión aritmética es numero o es variable o es
expresión aritmética operador expresión aritmética o es
(expresión aritmética)
• Y los operadores y variables se pueden describir así:
operador es + o es - o es × o es ÷
variable es a o es b o es … o es z
5
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal.
• Una gramática formal para este problema organiza ordenadamente
esta información.
• Se muestra a continuación
<NE, TE, SE , PE>
• Donde :
• NE={ <igualdad>, <expr>, <op>, <var>, <num>}
• TE={=,+, -, ÷ , ×, (, ), 0,... , 9, a,...,z}
• SE=<igualdad>
6
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal (cont.) .
• PE={
,
<igualdad>::= <expr>=<expr>
<expr>::= <var> | <num> | (<expr>) |
<expr><op><expr>
<op>::= + | - | × | ÷
,
<var>::= a | ... | z
}
,
• Y falta la regla que define <num> que se excluye por
simplificar la charla.
7
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
3
8
+
x
=
a
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
3
+
<expr>
x
=
a
8
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
3
8
<op>
+
<expr>
<expr>
x
=
a
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<expr>
<expr>
<num>
3
+
x
=
a
8
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<expr>
<expr>
<num>
3
8
+
x
=
a
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<expr>
<expr>
<num>
3
+
x
=
a
8
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<num>
3
8
<expr>
<expr>
<var>
+
x
=
a
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<expr>
<num>
3
<expr>
<var>
+
x
=
a
8
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<num>
3
8
<expr>
<expr>
<var>
<var>
+
x
=
a
Recordatorio de las gramáticas de Chomsky
• Ejemplo formal 2 (cont.) .
• Ejemplo de uso de la gramática: árbol sintáctico.
<igualdad>
<expr>
<expr>
<op>
<num>
3
<expr>
<expr>
<var>
<var>
+
x
=
a
8
Recordatorio de las gramáticas de Chomsky.
• Conclusiones.
• Se sigue una secuencia para aplicar las reglas de una en una.
• Los componentes de la gramática se justifican así:
• Hay símbolos a los que no se puede aplicar reglas porque ya
son símbolos finales (terminales): a, =, x, 3, +
• Los demás no pueden estar en la expresión final (no
terminales)
• El proceso comienza con el símbolo que representa lo que se
quiere analizar / construir (axioma)
<igualdad>
9
• La expresión final obtenida (que pertenece al lenguaje
generado por la gramática) está compuesta sólo por
terminales. Las palabras intermedias no pertenecen a él.
Bibliografía.
•Enrique Alfonseca, Manuel Alfonseca, Roberto Moriyón Teoría de
Autómatas y Lenguajes Formales. McGraw Hill 2007 ISBN: 97884-481-5637-4
•Hopcroft, J.E., Motwani, R. and Ullman, J.D.: 'Introducción a la
Teoría de Autómatas, Lenguajes y Computación', Ed. Pearson
Education, 2002.
10
Descargar