Your SlideShare is downloading. ×
Gramaticas Regulares
Gramaticas Regulares
Gramaticas Regulares
Gramaticas Regulares
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gramaticas Regulares

5,822

Published on

Published in: Business, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,822
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
154
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 6/9/2008 Autómata de estados finito Un autómata de estados finito (FSA) es un grafo con arcos dirigidos y con etiqueta, dos tipos de nodos (estado final y no final), y un estado inicial único: Esto es también llamado máquina de estados. Gramáticas Regulares ¿que cadena, que se inicia en estado A, termina en estado C? Sección 3.3.2 El lenguaje aceptado por la máquina M es un conjunto de cadenas que se mueve del nodo inicial a un nodo final, o más formalmente: T(M) = { | (A,) = C} donde A es el nodo inicial y C un nodo final. 1 2 Mas FSA Autómatas Deterministicos Deterministicos: Para cada estado y para cada miembro Un FSA puede tener más de un estado final: del alfabeto existe exactamente una transición. No-deterministicos FSA (NDFSA): remueve la restricción. • En cada nodo existe 0, 1, o más de una transición para cada símbolo del alfabeto. • Una cadena es aceptada si existe algún sendero del estado inicial a algún estado final. Ejemplo de un FSA no deterministico (NDFSA): 01 es aceptado vía el sendero: ABD A pesar de que 01 puede tomar también los siguientes senderos: ACC o ABC y C no es el estado final. 3 4 1
  • 2. 6/9/2008 Equivalencia de FSA y NDFSA Expresiones regulares Resultado inicial importante: Se puede escribir lenguaje regular como una expresión: NDFSA = DFSA Subconjuntos de estados son Estados en DFSA. Siga el subconjunto en que 0*11*(0|100*1)1*|0*11*1 puede estar. Cualquier cadena desde {A} a {D} o {CD} Operadores: representa un sendero • Concatenación desde A a D en el • O (| o algunas veces escrito como ) NDFA original. • Cerramiento de Kleene (* - 0 o más instancias) 5 6 Gramáticas regulares Equivalencia de FSA y gramáticas regulares Una gramática regular es una gramática de contexto libre donde toda producción es una gramática de contexto libre de una de dos formas: • X  aY •X  a para X, Y  N, a  T Teorema: L(G) para una gramática regular G es un equivalente a T(M) para FSA M. La prueba es “constructiva”. Esto es dado G o M, podemos construir el otro [siguiente slide] 7 8 2
  • 3. 6/9/2008 BNF extendido Notación EBNF para sentencias de asignación Existe una notación extendida para las reglas de BNF. <sentencia de asignación>::= <variable>= <expresión aritmética> No le añade poder a la sintaxis, es solo una manera <expresión aritmética>::= <término> {[ + | - ] <término>}* de escribir las producciones: <término>::= <primario> {[ * | -]<primario>}* | - Escoger <primario>::= <variable>|<número>| ( ) - Agrupar (<expresión aritmética>) {}* - Repetir - 0 o más veces <variable>::= <identificador>| {}+ - Repetir - 1 o más veces <identificador>[<lista subscrita>] [ ] - Opcional <lista subscrita>::=<expresión aritmética> Ejemplo: identificador – una letra seguida de 0 o más {,<expresión aritmética>}* letras o dígitos: BNF extendido BNF regular I  L { L | D }* I  L | L M L  a | b |... M  CM | C D  0 | 1 |... C  L | D L  a | b |... D  0 | 1 |... 9 10 Diagramas sintácticos Diagrama sintáctico para expresiones regulares También llamados diagramas de ferrocarril. Trace un sendero en la red: Una L seguida o repetida por mallas a través de L y D, por ejemplo, BNF extendido: L  L (L | D)* 11 12 3
  • 4. 6/9/2008 ¿Por que nos preocupamos de lenguajes regulares? Programas están compuestos de tokens: • Identificador • Número • Palabra clave • Símbolos especiales Cada una de estas puede ser definidas por gramáticas regulares. (siguiente slide.) Problema: Como podemos manejar operadores de símbolos múltiples (por Ej.., ++ en C, =+ en C, := en Pascal)? ?? –estados finales múltiples? 13 14 Muestras de clases de token Resumen de FSA Barrido (Scanner) para un lenguajes tiende a ser un gigante NDFSA para la gramática (es decir, tiene reglas  desde el estado inicial al estado inicial de cada tipo de token del slide anterior). integer   identifier  keyword  symbol 15 16 4

×