You are on page 1of 15

INSTITUTO TECNOLGICO DE TLHUAC

Ingeniera Mecatrnica
Materia: PROGRAMACIN EN TIEMPO REAL

UNIDAD 4: LENGUAJES Y AUTMATAS


Grupo: 8M2

Integrantes Equipo 1: Alcntara Gutirrez Fanny Gmez Escobar Jorge Arnulfo Lpez Jimnez Violeta Martnez Martnez Luis Velzquez De La Rosa Ivn Profesor: Ing. Romualdo Jonatan Quintero Hernndez

Mxico, D.F., a 02 de Mayo de 2013.

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

TABLA DE CONTENIDO
4.1 INTRODUCCIN A LENGUAJES Y AUTMATAS ..................................................... 3 Conceptos Fundamentales de la Teora de Autmatas .................................................. 3 Alfabetos..................................................................................................................... 3 Cadenas de Caracteres .............................................................................................. 3 La Cadena Vaca .................................................................................................... 3 Longitud de una Cadena............................................................................................. 3 Potencias de un Alfabeto ............................................................................................ 4 EJEMPLO ............................................................................................................... 4 Lenguajes ................................................................................................................... 4 4.2 CIRCUITOS SECUENCIALES Y MQUINAS DE ESTADO FINITO ............................ 6 Circuitos Secuenciales ................................................................................................... 6 Sistema Secuencial ........................................................................................................ 6 Clasificacin de Sistemas Secuenciales ..................................................................... 7 ESTRUCTURA GENERAL DE UN SISTEMA SECUENCIAL SNCRONO ................. 7 ELEMENTOS DE MEMORIA: FLIP-FLOP o BIESTABLE ....................................... 7 Sistemas Secuenciales Asncronos ............................................................................ 8 SISTEMAS SECUENCIALES ASNCRONOS: Modo de PULSO ............................ 8 SISTEMAS SECUENCIALES ASNCRONOS: Modo de NIVEL .............................. 8 Mquinas de Estado Finito ............................................................................................. 9 Mquinas de Estado Finito con Salida ........................................................................ 9 Mquina de Estado Finito sin Salida ........................................................................... 9 4.3 Autmatas de Estado Finito ....................................................................................... 10 Autmatas Finitos ........................................................................................................ 10 Autmatas Finitos Deterministas .................................................................................. 10 Cmo se procesa una cadena AFD .......................................................................... 11 Notaciones ms Simples para los AFD ..................................................................... 11 Diagrama de Transiciones..................................................................................... 11 Tablas de Transiciones ......................................................................................... 12 Expresiones Regulares ................................................................................................ 12 Diagrama de transiciones de Expresiones Regulares ............................................... 12 FUENTES DE INFORMACIN ........................................................................................ 15

Pgina 2 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

4.1 INTRODUCCIN A LENGUAJES Y AUTMATAS


Conceptos Fundamentales de la Teora de Autmatas
Los trminos ms importantes empleados en la teora de autmatas son: alfabeto (un conjunto de smbolos), cadenas de caracteres (una lista de smbolos de un alfabeto) y lenguaje (un conjunto de cadenas de caracteres de un mismo alfabeto). Alfabetos Un alfabeto es un conjunto de smbolos finito y no vaco. Convencionalmente, utilizamos el smbolo (sigma) para designar un alfabeto. Entre los alfabetos ms comunes se incluyen los siguientes: 1. = {0,1}, el alfabeto binario. 2. = {a, b,, z}, el conjunto de todas las letras minsculas. 3. El conjunto de todos los caracteres ASCII o el conjunto de todos los caracteres ASCII imprimibles. Cadenas de Caracteres Una cadena de caracteres (que tambin se denomina en ocasiones palabra) es una secuencia finita de smbolos seleccionados de algn alfabeto. Por ejemplo, 01101 es una cadena del alfabeto binario = {0,1}. La cadena 111 es otra cadena de dicho alfabeto. La Cadena Vaca La cadena vaca es aquella cadena que presenta cero apariciones de smbolos. Esta cadena, designada por (psilon) o (lambda), es una cadena que puede construirse en cualquier alfabeto. Longitud de una Cadena Suele ser til clasificar las cadenas por su longitud, es decir, el nmero de posiciones ocupadas por smbolos dentro de la cadena. Por ejemplo, 01101 tiene una longitud de 5. Es habitual decir que la longitud de una cadena es igual al nmero de smbolos que contiene; esta proposicin est aceptada coloquialmente, sin embargo, no es estrictamente correcta. As, en la cadena 01101 slo hay dos smbolos, 0 y 1, aunque tiene cinco posiciones para los mismos y su longitud es igual a 5. Sin embargo, generalmente podremos utilizar la expresin nmero de smbolos cuando realmente a lo que se est haciendo referencia es al nmero de posiciones. La notacin estndar para indicar la longitud de una cadena w es |w|. Por ejemplo, |011|=3 y ||= 0.

Pgina 3 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS
Potencias de un Alfabeto

2013

Si es un alfabeto, podemos expresar el conjunto de todas las cadenas de una determinada longitud de dicho alfabeto utilizando una notacin exponencial. Definimos para que sea el conjunto de las cadenas de longitud k, tales que cada uno de los smbolos de las mismas pertenece a . EJEMPLO Observe que = {}, independientemente de cul sea el alfabeto . Es decir, es la nica cadena cuya longitud es 0. Si ={0,1}, entonces 1={0,1}, ={00,01,10,11}, ={000,001,010,011,100,101,110,111}, etc. Observe que existe una ligera confusin entre y . Lo primero es un alfabeto; sus elementos 0 y 1 son los smbolos. Lo segundo es un conjunto de cadenas; sus elementos son las cadenas 0 y 1, cuya longitud es igual a 1. No vamos a utilizar notaciones diferentes para los dos conjuntos, confiando en que el contexto deje claro si {0,1} o algn otro conjunto similar representa un alfabeto o un conjunto de cadenas. Por convenio, el conjunto de todas las cadenas de un alfabeto se designa mediante . Por ejemplo, {0,1}* = {, 0, 1, 00, 01, 10, 11, 000,}. Expresado de otra forma, = 0 U 1 U 2 UU n En ocasiones, desearemos excluir la cadena vaca del conjunto de cadenas. El conjunto de cadenas no vacas del alfabeto se designa como +. Por tanto, dos equivalencias apropiadas son: += 1 U 2 U 3 U U n. *= + U {}. Lenguajes Un conjunto de cadenas, todas ellas seleccionadas de un *, donde es un determinado alfabeto se denomina lenguaje. Si es un alfabeto y L *, entonces L es un lenguaje de . Observe que un lenguaje de no necesita incluir cadenas con todos los smbolos de , ya que una vez que hemos establecido que L es un lenguaje de . La eleccin del trmino lenguaje puede parecer extraa. Sin embargo, los lenguajes habituales pueden interpretarse como conjuntos de cadenas. Un ejemplo sera el ingls, donde la coleccin de las palabras correctas inglesas es un conjunto de cadenas del alfabeto que consta de todas las letras. Otro ejemplo es el lenguaje C, o cualquier otro lenguaje de programacin, donde los programas correctos son un subconjunto de las posibles cadenas que pueden formarse a partir del alfabeto del lenguaje. Este alfabeto es un subconjunto de los caracteres ASCII. El alfabeto en concreto puede diferir ligeramente entre diferentes lenguajes de programacin, aunque generalmente incluye las letras Pgina 4 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

maysculas y minsculas, los dgitos, los caracteres de puntuacin y los smbolos matemticos. Algunos ejemplos son los siguientes: 1) El lenguaje de todas las cadenas que constan de n ceros seguidos de n unos para cualquier n 0: {, 01, 0011, 000111,}. 2) El conjunto de cadenas formadas por el mismo nmero de ceros que de unos: {, 01, 10, 0011, 0101, 1001,} 3) El conjunto de nmeros binarios cuyo valor es un nmero primo: {10, 11, 101, 111, 1011,} 4) * es un lenguaje para cualquier alfabeto . 5) , el lenguaje vaco, es un lenguaje de cualquier alfabeto. 6) {}, el lenguaje que consta slo de la cadena vaca, tambin es un lenguaje de cualquier alfabeto. Observe que {}; el primero no contiene ninguna cadena y el segundo slo tiene una cadena. La nica restriccin importante sobre lo que puede ser un lenguaje es que todos los alfabetos son finitos. De este modo, los lenguajes, aunque pueden tener un nmero infinito de cadenas, estn restringidos a que dichas cadenas estn formadas por los smbolos que definen un alfabeto finito y prefijado.

Pgina 5 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

4.2 CIRCUITOS SECUENCIALES Y MQUINAS DE ESTADO FINITO


Circuitos Secuenciales
Los sistemas digitales que introducen la dependencia temporal son conocidos como sistemas secuenciales. Una definicin ms rigurosa de sistema secuencial puede ser la siguiente: Un circuito de conmutacin secuencial se define como un circuito bivaluado en el cual, la salida en cualquier instante depende de las entradas en dicho instante y de la historia pasada (o secuencia) de entradas. Sistemas combinacionales: la salida depende solamente de lo que haya en las entradas en ese instante. Sistemas secuenciales: La salida depende de los valores de las entradas en ese instante y tambin de los valores que tuvieron en los instantes anteriores Circuitos que recuerdan o tienen memoria de las situaciones de inters por las que ha pasado el sistema, a las situaciones se denominan estados. Variables de estado: en cada caso concreto definen los estados a recordar.

Sistema Secuencial
La forma de operar de un sistema secuencial A. Operacin secuencial del sistema: dado un estado y una entrada el sistema produce una salida y el estado siguiente:

B. Se describe mediante un diagrama de estados (Secuencia de grafos) por los que pasa el circuito como consecuencia de las sucesivas entradas y las salidas que produce.

Pgina 6 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS
Clasificacin de Sistemas Secuenciales Clasificacin de sistemas secuenciales:

2013

Sistemas sncronos: Slo se observa el sistema durante el pulso de reloj marcapasos. El reloj establece cuando se modifica el estado (no la salida: sistemas Mealy). Sistemas asncronos: El sistema es permanentemente activo. Un cambio en alguna de las entradas del sistema: induce un transitorio que evoluciona hasta el siguiente estado. ESTRUCTURA GENERAL DE UN SISTEMA SECUENCIAL SNCRONO

Dos bloques bsicos: en coincidencia con el pulso de reloj Un bloque combinacional que : Lee las variables de entrada y de estado. Genera las funciones booleanas de salida y de excitacin. Un bloque de memoria que: Recuerda la evolucin del sistema. Configura el estado anterior. El nuevo estado se generar y ser ledo con el nuevo pulso de reloj. ELEMENTOS DE MEMORIA: FLIP-FLOP o BIESTABLE BIESTABLE: circuito secuencial que se caracteriza por: Tener dos estados estables: almacena permanentemente un bit 0 y 1: Estado: contenido de la memoria Se mantiene indefinidamente en uno de los estados posibles Entradas o seales externas de excitacin hacen que el BIESTABLE cambie de estado. NOTA: La funcin de excitacin es caracterstica de cada tipo de biestable (D, T, RS o JK). Pgina 7 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

Tienen dos salidas: y : son las variables de estado (definen los estados internos) Las salidas dependen de las entradas (vars de excitacin) y del estado anterior.

Sistemas Secuenciales Asncronos Son aquellos que NO se encuentran pilotados por un pulso de reloj. Alta velocidad de respuesta. Dos tipos: Sistemas de modo de nivel: cambio en una de las entradas. Sistemas de modo de pulso: doble cambio en una entrada a pulso SISTEMAS SECUENCIALES ASNCRONOS: Modo de PULSO Se disean con elementos de memoria sin reloj (latches).

NO pulsos simultneos en dos o ms entradas (n entradas, n+1 posibles condiciones de entrada). Transiciones de los elementos de memoria iniciadas por los pulsos de entrada. Las variables de entrada slo se utilizan en la forma no complementada ( ) o complementada (Q), pero no en ambas. SISTEMAS SECUENCIALES ASNCRONOS: Modo de NIVEL El cambio de nivel de una entrada provoca el posible cambio de la salida y el estado. No son necesarios elementos de memoria. Circuito combinacional realimentado.

Pgina 8 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

Mquinas de Estado Finito


Las mquinas de estado finito son modelos abstractos de mquinas con una memoria interna primitiva. Una mquina de estados se denomina mquina de estados finitos si el conjunto de estados de la mquina es finito, este es el nico tipo de mquinas de estados que podemos modelar en un computador en la actualidad. Todas las versiones de mquinas de estado finito incluyen un conjunto de estados finito (Q), uno de los cuales es el estado inicial, un alfabeto de entrada () y una funcin de transicin () que asigna a cada pareja de estado y dato de entrada el siguiente estado. Las mquinas de estado finito se utilizan con mucha frecuencia en aplicaciones de ciencias de la computacin y en redes de datos como por ejemplo base de los correctores ortogrficos y gramaticales. Tenemos, que se clasifican en: Mquinas de Estado Finito con Salida Mquinas de Estado Finito sin Salida Mquinas de Estado Finito con Salida Una mquina de estado finito M= (Q, I, O, , g, q0) consiste en un conjunto finito de estados Q; un alfabeto de entradas finito I; un alfabeto finito de salidas O; una funcin de transicin , que asigna a cada par de estado y entrada un nuevo estado; una funcin de salida g, que asigna a cada par de estado y entrada una salida, y un estado inicial q0. Mquina de Estado Finito sin Salida Una de las aplicaciones ms importantes de las mquinas de estado finito es el reconocimiento de lenguajes. Esta aplicacin desempea un papel fundamental en el diseo y construccin de compiladores para los lenguajes de programacin. Se puede utilizar una mquina de estado finito con salida para reconocer un lenguaje produciendo la salida 1 cuando lee una cadena del lenguaje y 0 en caso contrario. Sin embargo, hay otros tipos de mquinas de estado finito que estn especialmente diseadas para el reconocimiento de lenguajes. En lugar de producir una salida, ests mquinas tienen estados finales. Una cadena es reconocida por la mquina si, y slo si, se produce una transicin del estado inicial a unos de estos estados finales. Las mquinas de estado finito sin salida son los llamados Autmatas Finitos.

Pgina 9 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

4.3 Autmatas de Estado Finito


Autmatas Finitos
Los autmatas finitos utilizan estados y transiciones entre estados en respuesta a las entradas. Resultan tiles para construir diversos tipos de software, incluyendo el componente de anlisis lxico de un compilador y los sistemas que permiten verificar la correccin de, por ejemplo, circuitos o protocolos. Estos se separan en Autmatas Finitos Deterministas (AFD) y Autmatas Finitos No Deterministas (AFN).

Autmatas Finitos Deterministas


Es aquel que slo puede estar en un nico estado despus de leer cualquier secuencia de entradas. El trmino determinista hace referencia al hecho de que para cada entrada slo existe uno y slo un estado al que el autmata puede hacer la transicin a partir de su estado actual. Por el contrario, un autmata finito no determinista puede estar en varios estados a la vez. Un autmata finito determinista consta de: 1) Un conjunto finito de estados, a menudo designado como Q. 2) Un conjunto finito de smbolos de entrada, a menudo designado como . 3) Una funcin de transicin que toma como argumentos un estado y un smbolo de entrada y devuelve un estado. La funcin de transicin se designa habitualmente como (delta). En nuestra representacin grfica informal del autmata, se ha representa mediante arcos entre los estados y las etiquetas sobre los arcos. Si q es un estado y a es un smbolo de entrada, entonces (q, a) es el estado p tal que existe un arco etiquetado a que va desde q hasta p. 4) Un estado inicial, uno de los estados de Q. 5) Un conjunto de estados finales o de aceptacin F. El conjunto F es un subconjunto de Q. A menudo haremos referencia a un autmata finito determinista mediante su acrnimo: AFD. La representacin ms sucinta de un AFD consiste en un listado de los cinco componentes anteriores. Normalmente, en las demostraciones, definiremos un AFD utilizando la notacin de quntupla siguiente: A= (Q, , , q0, F)

Pgina 10 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

Donde A es el nombre del AFD, Q es su conjunto de estados, son los smbolos de entrada, es la funcin de transicin, q0 es el estado inicial y F es el conjunto de estados finales. Cmo se procesa una cadena AFD Lo primero que tenemos que entender sobre un AFD es cmo decide si aceptar o no una secuencia de smbolos de entrada. El lenguaje del AFD es el conjunto de todas las cadenas que acepta. Supongamos que a1a2 an es una secuencia de smbolos de entrada. Comenzaremos con el AFD en el estado inicial, q0. Consultamos la funcin de transicin , por ejemplo (q0, a1)= q1 para hallar el estado al que pasar el AFD A despus de procesar el primer smbolo de entrada a1. A continuacin procesamos el siguiente smbolo de entrada, a2, evaluando (q1, a2); supongamos que este estado es q2. Continuamos aplicando el mismo procedimiento para hallar los estados q3, q4,, qn tal que (qi-1, ai)= qi para todo i. Si qn pertenece a F, entonces la entrada a1a2 an se acepta y, si no lo es se rechaza. Notaciones ms Simples para los AFD Especificar un AFD utilizando una quntupla con una descripcin detallada de la funcin de transicin resulta bastante tedioso y complicado de leer. Hay disponibles dos notaciones ms cmodas para describir los autmatas: 1) Un diagrama de transiciones, que es un grafo. 2) Una tabla de transiciones, que es una ordenacin tabular de la funcin , la cual especifica el conjunto de estados y el alfabeto de entrada. Diagrama de Transiciones Un diagrama de transiciones de un AFD A= (Q, , , q0, F) es un grafo definido como sigue: a) Para cada estado de Q, existe un nodo. b) Para cada estado q de Q y cada smbolo de entrada a de , sea (q, a)= p. Entonces, el diagrama de transiciones tiene un arco desde el nodo q hasta el nodo p, etiquetado como a. Si existen varios smbolos de entrada que dan lugar a transiciones desde q hasta p, entonces el diagrama de transiciones puede tener un nico arco etiquetado con la lista de estos smbolos. c) Existe una flecha dirigida al estado inicial q0, etiquetada como Inicio. Esta flecha no tiene origen en ningn nodo. d) Los nodos correspondientes a los estados de aceptacin (los que pertenecen a F) estn marcados con un doble crculo. Los estados que no pertenecen a F tienen un crculo simple.

Pgina 11 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS
Tablas de Transiciones

2013

Una tabla de transiciones es una representacin tabular convencional de una funcin, como por ejemplo , que toma dos argumentos y devuelve un valor. Las filas de la tabla corresponden a los estados y las columnas a las entradas. La entrada para la fila correspondiente al estado q y la columna correspondiente a la entrada a es el estado (q, a).

Expresiones Regulares
* Estrella de Kleene, repeticin (0-n). + Cierre positivo, repeticin (1-n). | Alternativa.

EJEMPLO: 0*1 = {1, 01, 001,, 00001, n1} Diagrama de transiciones de Expresiones Regulares I. (Cadena Vaca):

II.

a (Cadena a):

III.

a*:

Pgina 12 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS
IV. a+:

2013

V.

a|b:

VI.

(a|b)*:

VII.

(ac|b)*:

Pgina 13 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS
VIII. (b|bc)+:

2013

IX.

x*w*yz:

Pgina 14 de 15

U N I D AD 4 : L E N G U AJ E S Y AU T M ATAS

2013

FUENTES DE INFORMACIN
Teora de Autmatas, Lenguajes y Computacin, John E. Hopcroft, et al., Ed. Pearson, Tercera edicin, 2007. Matemtica Discreta y sus aplicaciones, Kenneth H. Rosen, Ed. Mac Graw Hill, Quinta edicin, 2004. Matemticas Discretas, Richard Johnsonbaugh, Ed. Pearson, 2005.

Pgina 15 de 15

You might also like