presentación de powerpoint · 2020. 7. 6. · j y g(ε, q i) = s existe un arco dirigido del nodo...

30

Upload: others

Post on 26-Jan-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

  • Contenido

    • Autómata

    • Definición formal de autómata

    • Representación de un autómata

    • Mediante tablas de transiciones

    • Mediante diagramas de estados

    • Autómata finito

    • Definición formal de autómata finito

    • Lenguaje reconocido por un autómata finito

    • Ejemplos

    • Mapas conceptuales 01 y 02

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    2

  • Autómatas

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • En 1938 el matemático norteamericano Claude Elwood Shannon (1916-2001), estableció las bases de la aplicación de la lógica matemática para los circuitos combinatorios y secuenciales, construidos a bases de relés y más adelante con otros dispositivos de vacío y estado solido.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    3

  • Autómatas

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Los autómatas son sistemas capaces de transmitir información. En sentido amplio, todo sistema que acepta señales de su entorno y, como resultado, cambia de estado y transmite otras señales al medio, puede considerarse un autómata.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    4

  • Autómatas

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Si la información se codifica en cadenas de símbolos, podemos con un autómata manipular cadenas de símbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de símbolos a su salida.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    5

  • Autómatas

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • El autómata recibe los símbolos de entrada, uno detrás de otro, es decir secuencialmente.

    • El símbolo de salida que en un instante determinado produce un autómata, no sólo depende del último símbolo recibido a la entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    6

  • Autómata

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • El estado de un autómata es toda la información necesaria en un momento dado, para poder deducir, dado un símbolo de entrada en ese momento, cual será el símbolo de salida, i.e. conocer el estado de un autómata, es lo mismo que conocer toda la historia de símbolos de entrada, así como el estado inicial, estado en que se encontraba el autómata al recibir el primero de los símbolos de entrada.

    • El autómata tendrá un determinado número de estados (pudiendo ser infinitos), y se encontrará en uno u otro según sea la historia de símbolos que le han llegado.

    • Se define configuración de un autómata a su situación en un instante.

    • Se define movimiento de un autómata como el transito entre dos configuraciones.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    7

  • Autómata

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Si un autómata se encuentra en un estado determinado, recibe un símbolo también determinado, producirá un símbolo de salida y efectuará un cambio o transición a otro estado (también puede quedarse en el mismo estado).

    • Los elementos del lenguaje son sentencias, palabras, etc... i.e. cadenas formadas a partir de un alfabeto, que no es otra cosa que un conjunto finito de símbolos. Una cadena de símbolos pertenecerá al correspondiente lenguaje si tal cadena se ha formado obedeciendo esas reglas. Entonces un autómata reconocedor de ese lenguaje, funciona de tal forma que cuando reciba a su entrada una determinada cadena de símbolos indica si dicha cadena pertenece o no al lenguaje.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    8

  • Definición formal de autómata

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Un autómata es una quíntupla A = ( E, S, Q, f, g ) donde :

    • E = {conjunto de entradas o vocabulario de entrada}

    • E es un conjunto finito, y sus elementos se llaman entradas o símbolos de entrada.

    • S = {conjunto de salidas o vocabulario de salida}

    • S es un conjunto finito, y sus elementos se llaman salidas o símbolos de salida.

    • Q = {conjunto de estados}

    • Q es el conjunto de estados posibles, puede ser finito o infinito

    • f es la función de transición o función del estado siguiente, y para un par del

    conjunto E × Q devuelve un estado perteneciente al conjunto Q, y es el producto

    cartesiano de E por Q.

    • g es la función de salida, y para un par del conjunto E × Q, devuelve un símbolo

    de salida del conjunto S.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    9

  • Representación de un autómata

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    •Los autómatas se pueden representar mediante :

    • Tablas de transiciones y salidas

    • Diagramas de estados

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    10

  • Representación de un autómata (Mediante tablas de transiciones y salidas)

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Las funciones f y g pueden representarse mediante una tabla, con

    tantas filas como estados y tantas columnas como entradas. Así por

    ejemplo se puede representar el autómata A = ( E, S, Q, f, g ) donde

    E = {a,b}, S = {0,1}, Q = {q1, q2, q3} y las funciones f y g se pueden

    representar por :

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    11

  • Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Ambas funciones también se pueden representar en una misma tabla

    de la siguiente forma :

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    12

    Representación de un autómata (Mediante tablas de transiciones)

  • Representación de un autómata (Mediante diagramas de estados)

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Los diagramas de Moore son otra forma de representar las

    funciones de transición y salida de un autómata.

    • El diagrama de Moore es un grafo orientado en el que

    cada nodo corresponde a un estado; y si f( ε, qi) = qj y g(ε,

    qi) = s existe un arco dirigido del nodo qi al

    correspondiente qj, sobre el que se pone la etiqueta ε / s.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    13

  • Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Para el ejemplo:

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    14

    Representación de un autómata (Mediante diagramas de Moore)

  • Autómata finito

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Un autómata finito o máquina de estado finito es un modelo matemático, aplicado a la teoría de lenguajes opera como una máquina que recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje regular que el autómata reconoce, i.e. logra reconocer palabras de un lenguaje descrito por una expresión regular.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    15

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    INICIO *abc

  • Autómata finito

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Los autómatas finitos reconocen los lenguajes regulares,

    o de tipo 3 y se pueden representar intuitivamente por una

    cinta y una cabeza de lectura. •La cinta de entrada, sólo contiene

    símbolos de un determinado alfabeto, y se

    mueve en una sólo dirección.

    •El control de estados, determina el

    funcionamiento del autómata.

    •Una sentencia de un lenguaje

    determinado, colocada en la cinta, y leída

    por el autómata finito, es reconocida por

    éste, si el control de estados llega a un

    estado final.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    16

  • Definición formal de autómata finito

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    17

  • Definición formal de autómata finito

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    18

  • Lenguaje reconocido por un autómata

    finito

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Cuando un autómata transita a una configuración final partiendo de

    la configuración inicial, en varios movimientos, se dice que se ha

    producido aceptación o reconocimiento de la cadena de entrada. Es

    decir que dicha cadena, pertenece al lenguaje reconocido por el

    autómata.

    • Por el contrario, cuando el autómata finito no es capaz de llegar a un

    estado final, se dice que el autómata no reconoce dicha cadena y que

    por tanto no pertenece al lenguaje.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    19

  • Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Para toda gramática regular "G3", existe un autómata finito "AF",

    tal que el lenguaje reconocido por el autómata finito es igual al

    lenguaje generado por la gramática.

    • La forma habitual de representar los autómatas finitos es mediante

    un grafo o diagrama de estados, donde los nodos son los estados y

    las ramas están marcadas con los símbolos del alfabeto de entrada.

    Las ramas se construyen según la función de transición, así debe de

    cumplir .

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    20

    Lenguaje reconocido por un autómata

    finito

  • Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Los nodos que representan los estados finales, suelen marcarse con

    un doble círculo, y el estado inicial también se marca con una flecha,

    encima de la cual se coloca la palabra INICIO.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    21

    Lenguaje reconocido por un autómata

    finito

    INICIO *abc

  • Ejemplo 01

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    22

  • Ejemplo 01: Solución

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Solución: Se construye el diagrama de Moore, colocando en primer

    lugar todos los estados dentro de círculos, marcando con doble

    círculo el estado final. El estado inicial se indica con una flecha que

    lo señala con la palabra INICIO encima. Para construir las ramas, nos

    situamos en el primer estado de la tabla de transiciones y se observa

    que f(q1,a)=q2, entonces se traza una flecha entre q1 y q2, apuntando

    a q2, y se coloca encima de la flecha el símbolo del vocabulario de

    entrada a. De igual forma se recorre la tabla de transiciones para cada

    estado y entrada completándose el diagrama de Moore.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    23

  • Ejemplo 01: Lenguaje reconocido

    por un autómata finito

    24

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    24

  • Ejemplo 02

    25

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Los identificadores de C son cadenas de letras, dígitos y guiones

    bajos.

    letra_ -> [A-Za- z_]

    dígito -> [0-9]

    id -> letra_ ( letra_ | dígito)*

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    25

  • Ejemplo 02: Solución

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • Solución : Este ejemplo es inverso al anterior, pues se da un

    lenguaje y se pide el autómata que lo reconoce. En primer lugar se

    construye un diagrama de Moore, de tal forma que a partir del

    estado inicial, después de leer una letra, acepte letras o dígitos de

    forma variable, y cuando encuentre un carácter diferente de letra o

    dígito alcance el estado final. El diagrama de Moore es el que se

    muestra en la figura.

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    26

  • Ejemplo 02: Solución

    Compiladores (Análisis Léxico III - Edgardo A. Franco)

    • $ representa a el fin de la cadena

    • El autómata finito se deduce del diagrama de estaos y es el siguiente:

    • donde f se define por :

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    27

  • •La fecha máxima de entrega de los mapas es el domingo 27 de Febrero de 2011 a las 23:59:59 hrs.

    • Mapa conceptual 01: De las clases 02 y 03

    • Mapa conceptual 02: De las clases 05 a la 09

    • Si deberá de incluir encabezados en cada mapa.

    • Recomendación usar CmapTools

    • Enviar separados con el nombre:

    • MapaConceptual0x_NombreAlumno.pdf

    Mapas Conceptuales 01 y 02

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    28

  • Características de un mapa

    conceptual • Jerarquización: Se refiere a la ordenación de los conceptos más generales e

    inclusivos en la parte superior o central y mediante una diferenciación progresiva,

    están incluidos los conceptos más específicos.

    • Impacto visual: Debe considerar la limpieza, espacios, claridad, ortografía para

    reducir confusiones y amontonamientos, por ello es conveniente dibujarlos varias

    veces ya que el primer mapa que se construye tiene siempre, casi con toda

    seguridad algún defecto. También se recomienda usar óvalos ya que son más

    agradables a la vista que los triángulos y los cuadrados.

    • Simplificación: Se refiere a la selección de los conceptos más importantes,

    haciendo una diferenciación del contenido y localizando la información central de

    la que no lo es para una mejor comprensión y elaboración de un contenido. Los

    conceptos, al ir relacionándose por medio de las palabras enlace, se van

    almacenando en la mente de modo organizado y jerárquico de manera que serán

    más fácilmente comprendidos. 29 Tipo abstracto de datos (Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    29

  • Ejemplo

    30 Tipo abstracto de datos (Edgardo A. Franco)

    09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

    30