Compiladores e Intérpretes

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Compiladores e Intérpretes"

Transcripción

1 Compiladores e Intérpretes Coordinador: Prof. Ing. Pablo Pandolfo 1

2 Contenido: Lenguajes Formales. Gramáticas Formales. Lenguajes Regulares. Lenguajes Incontextuales. Maquina de Turing. Proceso de compilación 2

3 Lenguajes Formales Lenguajes Formales: Los LENGUAJES FORMALES están formados por PALABRAS, las palabras son CADENAS y las cadenas están constituidas por SÍMBOLOS de un ALFABETO. 3

4 Lenguajes Formales Símbolo: Es el elemento constructivo básico; es la entidad fundamental, indivisible, a partir de la cual se forman los alfabetos. Ejemplos: La letra a es un símbolo o carácter que forma parte del alfabeto español, del alfabeto inglés, etc. Los símbolos >, = y + son elementos del alfabeto de los operadores de los lenguajes Pascal y ANSI C. 4

5 Lenguajes Formales Alfabeto: Es un conjunto (colección de objetos) no vacío y finito de símbolos. Se lo identifica, habitualmente, con la letra griega Σ (sigma) y con sus caracteres se construyen las palabras de un lenguaje. Ejemplo: El alfabeto Σ = {0, 1} proporciona los caracteres utilizados en la construcción de los números binarios. Los números enteros con signo en base 10 se construyen con símbolos del siguiente alfabeto: Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -, +} 5

6 Lenguajes Formales Cadena Es una secuencia finita de caracteres tomados de cierto alfabeto y colocados uno a continuación de otro. Se construye CONCATENANDO (yuxtaponiendo) caracteres de un alfabeto dado. Ejemplo: abac (se lee a-b-a-c ) es una cadena formada con caracteres del alfabeto {a, b, c} ( uno-cero-uno-uno-uno-cero ) es una cadena construida con caracteres del alfabeto {0, 1}. 6

7 Lenguajes Formales Longitud de una cadena La LONGITUD de una cadena S (se representa S ) es la cantidad de caracteres que la componen. Ejemplo: La longitud de la cadena abac es: abac = 4. La longitud de la cadena b es: b = 1. Cadena vacía Se representa λ (lambda) Es la cadena que no tiene caracteres. Es la cadena de longitud 0 ( λ = 0). Este símbolo λ no forma parte de ningún alfabeto. 7

8 Lenguajes Formales Potenciación de un símbolo c n representa la repetición del carácter c, n veces. Simplifica la escritura de cadenas. Ejemplo: aaaaabbbbbbb = a 5 b 7. Concatenación de dos cadenas La operación de CONCATENACIÓN aplicada a cadenas (S1S2) produce una nueva cadena formada por los caracteres de la primera cadena seguidos inmediatamente por los caracteres de la segunda cadena. Ejemplo: Sean las cadenas S1 = aab y S2 = ba; entonces, S1S2 = aabba. NO ES CONMUTATIVA La cadena vacía (λ) es la IDENTIDAD para la concatenación. Esto es: para cualquier cadena S, S λ = λ S = S. 8

9 Lenguajes Formales Potenciación de una cadena Si S es una cadena, entonces S n (con n 1 y entero) representa la cadena que resulta de concatenar la cadena S, consigo misma, n-1 veces. S 0 es λ (la cadena vacía), para cualquier cadena S Ejemplo: Sea S = ab; entonces: S 3 = SSS = (ab) 3 = ababab. Prefijo de una cadena: Es una secuencia de cero o más caracteres iniciales de esa cadena. Ejemplo: Sea la cadena abcd. Entonces, sus prefijos son: λ, a, ab, abc y abcd (la cadena completa). Sufijo de una cadena: Es una secuencia de cero o más caracteres finales de esa cadena. Ejemplo: Sea la cadena abcd. Entonces, sus sufijos son: λ, d, cd, bcd y abcd. Subcadena de una cadena: es una secuencia de caracteres que se obtiene eliminando cero o más caracteres iniciales y cero o más caracteres finales de esa cadena. Ejemplo: Sea la cadena abcd. Entonces, sus subcadenas son: abcd, bcd, cd, d, abc, ab, a, bc, b, c y λ. 9

10 Lenguajes Formales Lenguajes Naturales Lenguajes Formales Lenguaje Natural Lenguaje hablado y/o escrito que es utilizado por los seres humanos para comunicarse. Características: EVOLUCIONAN con el paso del tiempo, incorporando nuevos términos y nuevas reglas gramaticales para mejorar y actualizar la comunicación Sus REGLAS GRAMATICALES surgen después del lenguaje, para poder explicar su estructura, es decir: su sintaxis El SIGNIFICADO (o sea, la semántica) de cada palabra y de cada oración de un Lenguaje Natural es, en general, más importante que su composición sintáctica. 10

11 Lenguajes Formales Lenguajes Naturales Lenguajes Formales Lenguaje Formal Conjunto de cadenas formadas con los caracteres de un alfabeto dado, y tiene una característica fundamental: es un lenguaje abstracto, en el que el término FORMAL pone de manifiesto que, en esta disciplina, solo estamos interesados en la forma de una cadena (sintaxis) y no en su significado (semántica). Definidos por reglas gramaticales PREESTABLECIDAS y se deben ajustar rigurosamente a ellas. En consecuencia, un LF nunca puede evolucionar. Un LF puede ser descripto por enumeración (extensión), por comprensión, mediante una frase en un lenguaje natural (castellano) o mediante otras formas especiales. Ejemplo: Sea Σ = {a}, un alfabeto con un solo símbolo. Los que siguen son algunos LFs que se pueden construir sobre este alfabeto: L1 = {a}; L2 = {aa, aaa}; L3 = {λ, a, a 18 }. 11

12 Lenguajes Formales Palabra Una cadena es vacía, o bien está compuesta por una sucesión de uno o más caracteres que pertenecen a un alfabeto dado. Si una cadena pertenece a un determinado lenguaje, decimos que es una PALABRA de ese lenguaje. Propiedades: longitud de una palabra palabra vacía concatenación de dos o más palabras potenciación de una palabra prefijos y sufijos de una palabra subpalabras 12

13 Lenguajes Formales Cardinalidad de un LF Es la cantidad de palabras que lo componen. Ejemplos: L = {a, ab, aab} es un lenguaje de cardinalidad 3 sobre el alfabeto {a, b}. El lenguaje L = {λ} es un lenguaje de cardinalidad 1, ya que contiene una sola palabra. Sublenguajes Dado que un Lenguaje Formal es un conjunto, un SUBLENGUAJE es un subconjunto de un lenguaje dado. Ejemplo: Sea L1 = {a, ab, aab}. Entonces, L2 = {ab, aab} es un sublenguaje de L1, mientras que L3 = { } es el sublenguaje vacío de L1. 13

14 Lenguajes Formales Lenguajes formales finito Lenguajes con un número finito de palabras Ejemplo: L1 = {a, ab, aab}. Lenguajes formales infinitos Lenguajes con una cantidad infinita de palabras, pero cada una de longitud finita (no existen las palabras de longitud infinita). Ejemplo: L = {a n / n 1} es un LF infinito ya que no existe un límite superior para el supraíndice n. Cada palabra de este lenguaje está formada por una secuencia de una o más aes. Por ello, la concatenación de dos palabras cualesquiera de este lenguaje producirá siempre otra palabra del lenguaje L. Por esta propiedad, se dice que este lenguaje L es cerrado bajo la concatenación. 14

15 Lenguajes Formales Lenguaje Universal Dado un alfabeto Σ, el LENGUAJE UNIVERSAL sobre este alfabeto es un lenguaje infinito que contiene todas las palabras que se pueden formar con los caracteres del alfabeto Σ, más la palabra vacía. Se lo representa con la notación Σ*, que se lee sigma clausura o sigma estrella. Es cerrado bajo concatenación. Cualquier lenguaje L sobre el alfabeto Σ es un sublenguaje de Σ*. Por lo tanto, existen infinitos lenguajes sobre un alfabeto dado. Ejemplo: Si Σ = {a, b}, entonces el Lenguaje Universal para este alfabeto es: Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, aba, abb,..., aabaabbbab, } 15

16 Lenguajes Formales Operaciones con Lenguajes: Unión: es el lenguaje que contiene las palabras de L1, de L2 o de ambos. L1 U L2 = {x ЄΣ* : xєl1 v x Є L2} Intersección: es el lenguaje que contiene las palabras de L1 y de L2. L1 L2 = {x ЄΣ* : xєl1 ^ x Є L2} Complementación: es el lenguaje que contiene todas las palabras sobre el alfabeto Σ que no pertenecen a L. Ī = {x ЄΣ* : xєl} Diferencia: L1 L2 = L1 Ī2 Diferencia simétrica L1 L2 = (L1 Ī2) U (Ī1 L2) Producto L1 L2 = {x,y ЄΣ* : xєl1 ^ x Є L2} Potencia L n = {{λ} si n=0 v L n-1 si n>0} Cierre estrella (de Kleene) L* = U L i i 0 Cierre positivo L + = U L i i > 0 16

17 Lenguajes Formales Operaciones con Lenguajes: L* = {λ} U L + L + = L* λ Є L λєl + L*L = LL* = L + L* = L* L + = L + L*L* = L* pero L + L + = L 2 L* (L*)* = (L + )* = (L * ) + = L* (L + ) + = L + Ø* = {λ} Ø + = Ø 17

18 Lenguajes Formales - Ejercicios (1) Dado el alfabeto Σ = {a, b, c}, escriba las palabras del lenguaje L = {x / x ЄΣ}. (2) Cuál es la cardinalidad del lenguaje L = {λ, a, aa, aaa}? (3) Describa, mediante una frase en castellano, el lenguaje del Ejercicio 2. (4) Escriba todas las palabras del lenguaje L = {a 2n+1 / 1 n 4}. (5) Sea el lenguaje L = {λ, a, ba, abc}. Cuál es el mínimo alfabeto Σ sobre el que se puede construir este lenguaje? (6) Sea el lenguaje L = {0, 00, 01, 010}. Escriba una concatenación de dos palabras que produce otra palabra de este lenguaje. (7) Sea el lenguaje anterior. Escriba una concatenación de dos palabras que produce una cadena que no es palabra del lenguaje. (8) Sea el lenguaje del Ejercicio (6). Escriba tres sublenguajes de L, de distinta cardinalidad. (9) Describa, mediante una frase en castellano, el lenguaje L = {a n b n / 1 n 3000}. (10) Sea Σ = {a, b} y sea el lenguaje Σ*. Cuántas palabras de longitud 3 tiene este lenguaje? Y cuántas de longitud 4? (11) Sea el lenguaje infinito L = {ab n / n 1}. Escriba las tres palabras de menor longitud. (12) Sea el lenguaje infinito L = {(ab) n / n 1}. Escriba las tres palabras de menor longitud. (13) Sea el alfabeto Σ = {0, 1}. Describa, por comprensión, un lenguaje infinito L sobre Σ (que no sea Σ*). (14) Describa, mediante una frase en castellano, el lenguaje definido en el ejercicio anterior. 18

19 Lenguajes Formales - Ejercicios IMPLEMENTACIÓN EN ANSI C o JAVA Para cada una de los ejercicios que siguen, construir en ANSI C O JAVA la función solicitada y un programa que la pruebe con todos los datos constantes que sean necesarios. (15) Longitud de una cadena (16) Determinar si una cadena dada es vacía. (17) Concatenación de dos cadenas. (18) Determinar si una subcadena es Prefijo de una cadena dada. 19

20 Gramáticas Formales Estructuras que generan las palabras que forman un Lenguaje Formal. Es un conjunto de producciones (reglas de re escritura) que se aplican para obtener cada una de las palabras del LF que la GF en cuestión genera. Ejemplo: Sea el lenguaje L = {a}, formado por una sola palabra. Este lenguaje es generado por una gramática con una única producción: S -> a (se lee S produce a ). Toda producción está formada por tres partes: el lado izquierdo, el lado derecho, y la flecha, que indica que el lado izquierdo de la producción produce (o es reemplazado por o equivale a ) el lado derecho. 20

21 Gramáticas Formales Definición formal: Toda GF es una 4-upla (V N, V T, P, S), donde: V N es el vocabulario de no terminales o variables (un conjunto finito), V T es el vocabulario de terminales o caracteres del alfabeto sobre el cual se construye el LF que es generado por la gramática descripta (otro conjunto finito), P es el conjunto finito de producciones S Є V N es un no terminal especial, llamado símbolo inicial (start) o axioma o símbolo distinguido, desde el cual siempre debe comenzar a aplicarse las producciones que generan todas las palabras de un determinado LF Ejemplo: G = ({S, T}, {a, b}, {S -> at, T -> a, T -> b}, S). 21

22 Gramáticas Formales Jerarquía de Chomsky: En 1956 y 1959, el lingüista norteamericano Noam Chomsky publicó dos trabajos sobre los Lenguajes Naturales que, aplicados al área de los Lenguajes Formales, produjeron lo que se conoce como Jerarquía de Chomsky. Establece una clasificación (según las restricciones que se imponen a sus producciones ) de cuatro tipos de GFs que, a su vez, generan cuatro tipos diferentes de LFs. Tipos: Gramáticas Regulares o Gramáticas Tipo 3 Gramáticas Independientes del Contexto o Gramáticas Tipo 2 Gramáticas Dependientes del Contexto o Gramáticas Tipo 1 Gramáticas Irrestrictas o Gramáticas Tipo 0 22

23 Gramáticas Formales Gramáticas Regulares o racionales o de Kleene o Gramáticas Tipo 3 Una GF es Regular si sus producciones tienen las siguientes restricciones: Tipos el lado izquierdo debe tener un solo no terminal, el lado derecho debe estar formado por un solo terminal, o un no terminal seguido de un terminal. el símbolo distinguido puede o no derivar a λ Lineales por la izquierda P={(S λ) (A Bv) (A v) / (A,B) Є V N, v Є V T } Lineales por la derecha P={(S λ) (A vb) (A v) / (A,B) Є V N, v Є V T } Ejemplo: P = {(S C0), (S D1), (C 1), (D C1)} 23

24 Gramáticas Formales Gramáticas Independientes del Contexto o incontextuales o algebraicas o de Chomsky o Gramáticas Tipo 2 Una GF es Independiente del Contexto si sus producciones tienen las siguientes restricciones: el lado izquierdo debe tener un solo no terminal, el símbolo distinguido puede o no derivar a λ P={(S λ) (A v) / A Є V N, v ЄΣ + } Ejemplo: P = {(S λ), (S 01S1), (S 0S10), (S A1), (A 0S10)} Estas GICs son de gran utilidad en la representación de la sintaxis de los Lenguajes de Programación. 24

25 Gramáticas Formales Gramáticas Dependientes del Contexto o Contextuales o Gramáticas Tipo 1 Una GF es Dependiente del Contexto si sus producciones tienen las siguientes restricciones: β α. el símbolo distinguido puede o no derivar a λ P={(S λ) (xay xvy) / (A Є V N, (x,y) ЄΣ*, v ЄΣ + } Ejemplo: P = {(S λ), (S 0A100), (0A1 011), (0A0 000)} 25

26 Gramáticas Formales Gramáticas Irrestrictas o con Estructura de frase o Gramáticas Tipo 1 Una GF es Irrestricta si sus producciones no tienen ningún restricción P={(u v) / u = xay, u ЄΣ +, (v,x,y) ЄΣ*, A Є V N } Ejemplo: P = {(S 0), (0SA 0A10), (A 1), (A 1S0)} 26

27 Gramáticas Formales Cada tipo de GF genera un tipo de LF cuyo nombre deriva del nombre general de la correspondiente gramática. Así, las GRs generan LENGUAJES REGULARES, las GICs generan LENGUAJES INDEPENDIENTES DEL CONTEXTO, las GDCs generan Lenguajes Sensibles al Contexto y las GIs generan Lenguajes Irrestrictos. 27

28 Gramáticas Formales Derivación: Es el proceso que permite obtener cada una de las palabras de un LF a partir del axioma de una GF que lo genera y aplicando sucesivamente las producciones convenientes de esa GF. Existen diferentes formas de representar una derivación: en forma horizontal, utilizando el símbolo => en cada paso de una derivación; S => asb => aasbb => aaabbb en forma vertical, reemplazado un no terminal por su lado derecho para producir una nueva línea; S asb aasbb aaabbb en forma de árbol. Se llama Lenguaje generado por una gramática G. al conjunto de todas las palabras que derivan a partir del axioma. L(G) = {x ЄΣ* : S x} Dos gramáticas G y G son equivalentes si generan el mismo lenguaje, es decir, si L(G) = L(G ) 28

29 Gramáticas Formales - Ejercicios (1) Describa el orden en que se aplican las producciones para generar las palabras del lenguaje formal L ={aa, aab} (2) La producción O λ Genera la palabra vacía? (3) Qué lenguaje formal genera la gramática G = ({S,T}, {a,b}, {S at, T a, T λ}, S)? (4) Sea la gramática formal con producciones: {S at bq, T a b, Q a λ} a) La gramática con estas seis producciones genera la cadena bab? Justifique b) Cuál es el lenguaje formal generado por esta gramática? Justifique. (5) Escriba la definición formal y las producciones de una GR que genere el Lenguaje Regular L = {a n b / 1 n 3} (6) Escriba la definición formal y las producciones de una GR que genere el Lenguaje Regular L = {a n b n / 0 n 2} (/) Indique cual es la mínima palabra del LR generado por la GR {S as at, T b}. Escriba la sucesión de producciones que aplicaría para generar la palabra aaab (8) Escriba una GR que genere cualquier secuencia de uno o más digitos decimales. (9) Justifique: a) Una GR es siempre una GIC b) Una GIC es siempre una GR 29

30 Gramáticas Formales - Ejercicios (10) Cual es la mínima palabra generada por la GIC {S asb a} Cual es la palabra que le sigue en longitud? Describa por comprensión, el LIC generado por la GIC (11) Sea el lenguaje L = {a n b n+1 / n 0}. Escriba las producciones de una GIC que lo genere. (12) Sea el lenguaje L = {a 2n b n+1 a r / n 1, r 0}. Escriba la definición formal de una GIC que lo genere. (13) Dada la GIC {S asb ab}, determine aplicando una derivación vertical, si la cadena aaabbbb es una palabra del LIC generado por esta GIC. Dibuje la misma derivación en forma de árbol. (14) Sea el LF infinito L = {a n bc n / n 1}. Describa la Definición Formal de una GIC que genere este LF. (15) Dada la GIC construida en el punto anterior, utilice DERIVACIÓN VERTICAL para determinar si las siguientes cadenas son o no palabras del LF generado: a) aaabccc b) aabbcc c) aaabcc d) aabccc e) aaaccc 30

31 Gramáticas Formales - Ejercicios (16) Supongamos un Lenguaje de Programación en el que sus expresiones aritméticas están formadas por los números enteros 2 y 6, el operador de suma y siempre termina con un punto y coma. Algunas expresiones aritméticas de este Lenguaje de Programación son: {6; 2+2+6; } Vamos a construir una GIC que genere la totalidad de estas expresiones aritméticas. Para ello, debemos definir el vocabulario de noterminales, el vocabulario de terminales, el axioma y el conjunto de producciones. Supongamos que el vocabulario de noterminales esta formado por: S (el axioma), E (de expresión) y T (de término). Los terminales son 2, 6, + y ; (punto y coma). Las producciones de la GIC que genera el lenguaje de estas expresiones aritméticas son: {S E; E T E+T T 2 6} a) Determine, aplicando derivación a izquierda, si 6; es una expresión correcta. b) Determine, aplicando derivación a izquierda, si ; es una expresión correcta. c) Determine, aplicando derivación a derecha, si ; es una expresión correcta. d) Determine, aplicando derivación a izquierda, si ; es una expresión correcta. 31

32 Lenguajes Regulares Son los lenguajes formales mas simples. Importancia en el diseño de los LENGUAJES DE PROGRAMACIÓN: los identificadores, las palabras reservadas, las constantes numéricas, los operadores y los caracteres de puntuación (Técnicas de reconocimiento de patrones). La tarea de reconocimiento de patrones es manejada por el analizador léxico del compilador. Un LENGUAJE es REGULAR si: Si el LF es FINITO, Si existe una GRAMÁTICA REGULAR que lo genere. Si se puede representar mediante una EXPRESIÓN REGULAR. Si puede ser reconocido por un AUTÓMATA FINITO 32

33 Lenguajes Regulares Ejemplos: L1 = {a n b n / 1 n 4} Es Regular L2 = {a n / n 1} Es Regular L3 = {a n b n / n 1} No es Regular L4 = {a n / 1 n 1000} Es Regular L5 = {a n b t / n 1, t 1} Es Regular L6 = {(ab) n (cde) t a z / n 1, t 1, z 1} Es Regular L7 = {1 2n+1 0 / n 0} Es Regular 33

34 Lenguajes Regulares Expresiones Regulares Es la forma mas precisa y útil de REPRESENTAR a los Lenguajes Regulares. Mecanismo alternativo al igual que las gramáticas regulares para definir los lenguajes regulares. Forman un metalenguaje. Componentes: Caracteres del alfabeto Símbolo λ Operadores: Concatenación. Unión 34

35 Lenguajes Regulares Expresiones Regulares Una expresión regular sobre un Σ se define en forma inductiva como sigue: Ø es una ER que denota al lenguaje vacío. λ es una ER que denota el lenguaje que contiene únicamente a la cadena vacía {λ} a ЄΣ, a es una ER que denota el lenguaje que contiene únicamente a cadena a, {a} Sea r una ER que denota el lenguaje Lr, entonces (r) es también una expresión regular para el mismo lenguaje. r s es una ER que denota la unión de los lenguajes denotados por r y s r.s es una ER que denota la concatenación de los lenguajes denotados por r y s r* es una ER que denota la clausura del lenguaje denotado por r. 35

36 Lenguajes Regulares Expresiones Regulares Propiedad de los operadores aa* <> (aa)* ( ) paréntesis * clausura. concatenación unión Ejemplos: (aa)* aa* (0 1)* (0 1)*00(0 1)* (1 10)* 36

37 Lenguajes Regulares Expresiones Regulares Propiedades de equivalencia. Sean a,b,c expresiones regulares sobre el alfabeto Σ Asociatividad de la unión a (b c) = (a b) c Conmutatividad de la unión a b = b a Asociatividad de la concatenación (ab)c = a(bc) Distributividad de la concatenación respecto de la unión a(b c) = ab ac Elemento neutro de la concatenación aλ = λa = a Elemento neutro de la unión a Ø = Ø a = a λ* = λ Øa = a Ø = Ø Ø* = λ a*a* = a* aa* = a*a (a*)* = a a* = λ a aa a n a n+1 a* a* = λ aa* a* = (λ a) n-1 a n a* (a* b*)* = (a*b*)* = (a b)* (ab)*a = a (ba)* (a*b)*a* = (a b)* (a*b)* = (a b)*b λ a+ = aa* = a*a 37

38 Lenguajes Regulares Expresiones Regulares Dos expresiones regulares son equivalentes si representan el mismo lenguaje regular Ejemplo: a b = b a ambos representan al L = {a,b} Dos expresiones regulares son diferentes si representan a diferentes lenguajes regulares Ejemplo: a(a b) <> (a b)a Expresión regular universal (ERU) Expresión regular que representa al Lenguaje Universal sobre un alfabeto dado. Representa al LR que contiene la palabra vacía y todas las palabras que se pueden formar con caracteres del alfabeto dado. Ejemplo: Σ = {a,b}, la ERU es (a b)* 38

39 Lenguajes Regulares Expresiones Regulares Operaciones sobre lenguajes regulares Unión: Si L1 es representado por la ER a*b y L2 es representado por la ER ba b*, L1 U L2 es representado por la ER (a*b) (ba b*) = a*b ba b* Concatenación: Si L1 es representado por la ER a*b y L2 es representado por la ER a b*, el LR concatenación L1L2 es representado por la ER a*b(a b*). Clausura de Kleene: Si L es representado por la ER a*b, L* es representado por la ER (a*b)* Clausura positiva: Si L es representado por la ER a*b, L+ es representado por la ER (a*b)+ Complemento: Si L es representado por la ER a(a b)*, L c es representado por la ER b(a b)* λ Intersección: Si L1 es representado por la ER a(a b)* y L2 es representado por la ER (a b)*b, L1 L2 es representado por la ER a(a b)*b 39

40 Lenguajes Regulares Expresiones Regulares y Lenguajes de programación Los componentes léxicos de un LP identificadores, palabras reservadas, constantes, operadores constituyen diferentes LRs. Ejemplos: Identificador L(L D)* Constante real D+.D* Palabras reservadas if else while Expresiones regulares extendidas Las ERs también se emplean para representar datos que serán procesados por diversas herramientas de software. Toda herramienta de software que necesite representar ERs para su posterior procesamiento, considera a estas expresiones como un lenguaje: El Lenguaje de las Expresiones Regulares. Un metalenguaje es un lenguaje que se usa para describir otro lenguaje. 40

41 Lenguajes Regulares Expresiones Regulares en Java (string.matches(regex)) Intervalos de caracteres [abc] a, b, o c [^abc] Cualquier carácter excepto a, b, o c (negación) [a-za-z] Desde la a a la z o desde la A hasta la Z, incluidos Intervalos de caracteres predefinidos. Cualquier carácter d Un numero: [0-9] D Todo menos un numero: [^0-9] s Un espacio en blanco: [ x0bf ] S Todo menos un espacio en blanco: [^s] w Una letra: [a-za-z_0-9] W Todo menos letras: [^w] Cuantificadores de cantidad X? X, una o ninguna vez X* X, cero o ninguna vez X+ X, una o mas veces X{n} X, exactamente n veces X(n,} X, por lo menos n veces X{n,m} X, por lo menos n veces pero no mas de m veces Operadores lógicos XY X seguido de Y X Y X o Y (X) X, como un grupo 41

42 Lenguajes Regulares Ejercicios ER (1) Escriba una ER que defina el siguiente lenguaje: identificadores de cualquier longitud que comience con a y contenga a, b o c. No pueden terminar con c y además no pueden contener dos c seguidas. (2) Escriba una ER que represente al LR L = {a n b n / 1 n 3} (3) Describa mediante una frase sin ambigüedades, el LR representado por la ER a(b a)b (4) Determine si las siguientes ERs son equivalentes: aa ab ba, a(a b) ba y ab ba aa. Justifique su respuesta. (5) Escriba una ER que represente al LR: Todas las palabras sobre el alfabeto {a,b} que tienen longitud 100 y terminan con 28 bes. (6) Sea el LR: Todas las palabras sobre el alfabeto {a,b,c} que: a) Comienzan con 16 aes, terminan con 16 aes y tienen una longitud total de 1200 caracteres. b) Comienzan con 342 bes y terminan con 100 repeticiones de cualquiera de los caracteres del alfabeto (pero siempre uno solo de ellos) (7) Compare las ER a 1000 y a*. Informe sus conclusiones. 42

43 Lenguajes Regulares Ejercicios ER (8) Escriba las tres palabras de menor longitud de LR representado por la ER (aba)* (9) La cadena a 24 b 24 a 24 es una palabra de LR representado por la ER (aba)*? Justifique su respuesta. (10) Describa, mediante una frase, el LR representado por la ER (a b)+ (11) Sea la ER a+ba+. Describa por comprensión, el LR representado por esta ER (12) Escriba las únicas palabras comunes a los LRs representados por las ERs (ab)* y a*b* (13) Defina mediante una frase, el LR representado por la ER (b*ab*ab*)* (14) Construya la ER que representa al LR: Todos los números binarios que comienzan con un 1 o con un 0. el cual puede estar seguido por una secuencia de 1s. (15) Construya la ER que representa al LR: Todas las palabras que comienzan con una secuencia de dos o mas 1s seguida de un 0 como último carácter o que comienzan con una secuencia de dos o más 0s seguida de un 1 como último carácter. (16) Si el alfabeto fuera todos los dígitos decimales, Cuál sería la ERU sobre ese alfabeto? (17) Dado dos LRs representados, respectivamente, por las ERs (a b)*a* y a 24 b, escriba dos ERs que representen la unión de los dos LRs. Escriba cinco palabras del LR unión (18) Sean los LRs representados por las ERs a*bc y b(a b)*. Escriba la ER que representa a la concatenación de estos dos LRs. Escriba las cinco palabras de menor longitud del LR concatenación. (19) Sea L = {a n bc t / n,t >= 1}. Escriba la ER que representa a L+ 43

44 Lenguajes Regulares Autómatas Finitos Es una herramienta abstracta que se utiliza para reconocer un determinado Lenguaje Regular. Es un modelo formal de un sistema que trabaja con entradas y salidas discretas. Es un modelo matemático de un sistema que recibe una cadena constituida por caracteres de cierto alfabeto Σ y tiene capacidad de determinar si esa cadena pertenece al Lenguaje Regular que el Autómata Finito reconoce. Es una máquina de estados finitos. Una máquina es una abstracción matemática que capturan solamente el aspecto referente a las secuencias de eventos (transiciones) que ocurren. RECONOCER un lenguaje regular aceptar cada cadena que es una palabra del Lenguaje Regular y rechazar cada cadena que no pertenece al lenguaje. Una palabra es aceptada si: Cadena ha sido consumida (se ha analizado todos los caracteres de la cadena) El autómata finito se encuentra en un estado especial llamado ESTADO FINAL o ESTADO DE ACEPTACION. 44

45 Lenguajes Regulares Autómatas Finitos Definición formal <Q, Σ, q0, F, δ> Q: Conjunto finito de estados Σ: Alfabeto de entrada reconocidos por el autómata q0: Estado inicial q0 Є Q, único en un conjunto. F: Conjunto de estados finales F C Q δ: Función de transición Q x Σ Q Ejemplo: ab (lenguaje regular finito) ACTIVIDAD 0 a 1 b 2 RECONOCE a b

46 Lenguajes Regulares Autómatas Finitos Casos La cadena ab pertenece al LR reconocido por este AF? ACTIVIDAD 0 a 1 b 2 RECONOCE Se dice que la cadena x es aceptada por el AF M cuando δ(q0, x) Є F Se define el Lenguaje aceptado por el AF M como L(M) = {x ЄΣ* / δ(q0, x) Є F} La cadena a es reconocida? ACTIVIDAD 0 a 1 RECHAZA La cadena abab es reconocida? ACTIVIDAD 0 a 1 b 2 a?? RECHAZA La cadena baa es reconocida? ACTIVIDAD 0 b?? RECHAZA Ejemplo: a*b (lenguaje regular infinito) 46

47 Lenguajes Regulares a*b 0 b 1 a (a b)* a 0 b 47

48 Lenguajes Regulares Autómatas Finitos. Hay dos maneras de equivocarse al diseñar un AF Sobren palabras : El autómata acepte algunas palabras que no debería aceptar. Solución INCORRECTA Falten palabras : palabras en el lenguaje que no son aceptadas por el autómata cuando debería serlo. Solución INCOMPLETA 48

49 Lenguajes Regulares Autómatas Finitos. Tipos: Autómatas Finitos Deterministas (AFD). Deterministic Finite Automaton Para cualquier estado en que se encuentre el autómata en un momento dado, la lectura de un carácter determina, SIN AMBIGUEDADES, cuál será el estado de llegada en la próxima transición. (unívocamente determinado) Es un AFN (ya que es un caso especial) Se puede encontrar un AFD por cada AFN que acepte el mismo lenguaje. Autómatas Finitos No Determinitas (AFN). Non-deterministic Finite Automaton Permite cero, una o más transiciones a partir de un estado con un determinado símbolo de entrada. Una cadena de entrada se dice que es aceptada por un AFN si existe una secuencia de transiciones, correspondiente a la cadena de entrada, que lleva del estado inicial a algún estado final. Acepta transiciones vacías: el autómata puede cambiar de estado sin tener que leer ningún símbolo de la entrada (arcos sin etiquetas entre pares de estados). 49

50 Lenguajes Regulares a(a ba*) 0 a 1 a 2 M = (Q, Σ, q0, F, δ) Q = {0,1,2,3} Σ = {a,b} q0 = 0 F = {2,3} δ = {0=>a=>1, 1=>a=>2, 1=>b=>3, 3=>a=>3} b 3 δ a a b

51 Lenguajes Regulares AFD completo Un AFD es completo si cada estado tiene exactamente una transición por cada carácter del alfabeto. Un AFD es completo cuando su tabla de transiciones no tiene huecos ; si los tiene, el AFD es incompleto. Completar un AFD significa eliminar los huecos de su tabla de transiciones, agregando un nuevo estado, que se denomina ESTADO DE RECHAZO o ESTADO DE NO ACEPTACION. AFD equivalentes Dos AFDs son EQUIVALENTES si reconocen al mismo Lenguaje Regular. 51

52 Lenguajes Regulares Autómata Finito No Determinista (a b)*abb a 0 a b b b Sea M = (Q, Σ, q0, F, δ) un AFN, Se define el lenguaje aceptado por el AFN M como: L(M) = {x ЄΣ* / δ(qo,x) F Ø} δ a {0,1} b

53 Lenguajes Regulares Autómata Finito Determinista (a b)*abb a a 0 a b b a b El número de estado de un AFN puede llegar a ser logarítmicamente menor que el número de estados del mínimo AFD que reconozca el mismo lenguaje. b δ a b

54 Lenguajes Regulares Autómatas Finitos. Operaciones: Complementación: Se define el autómata complementario M c como aquel que se obtiene a partir de M dando a los estados no aceptadores el carácter de aceptadores y viceversa L(M c ) = ~L(M) M c = (Q, Σ, q0, F=Q-F, δ) Intersección: M1 M2 M = (Q=Q1xQ2, Σ, q0=q1,q2, F=F1xF2 p Є Q1 q Є Q2 w ЄΣ* δ((p,q), w) = (δ1(p,w), δ2(q,w)) (p,q)w = (pw, qw) Unión: M1 U M2 M = (Q=Q1UQ2, Σ, q0=q1uq2, F=F1UF2, δ= δ1uδ2) δ(q,w) = δ1(q,w) si q Є Q1 δ(q,w) =δ2(q,w) si q Є Q2 Concatenación: M1.M2 M = (Q=Q1UQ2, Σ, q0=q1, F=F2 δ(q,a) = δ1(q,a) si q Є Q1 y a ЄΣ δ(q,a) = δ2(q,a) si q Є Q2 y a ЄΣ δ(q,λ) = q2 para cada q Є F1 54

55 Lenguajes Regulares Ejercicios AF (1) Sea el Σ {a, b} y el LR {a, aba} (a) Dibuje el AF que reconoce este LR (b) Describa los diferentes casos posibles y sus actividades. (2) Diseñe un AF que reconozca la ER a*bb*a (3) Diseñe un AF que reconozca la ER (a b c d)* (4) Diseñe un AF que reconozca la ER a(ab)+ (5) Diseñe un AF que reconozca la ER a* ab (6) Escriba la definición formal de un AF que reconozca el LR Todas las palabras sobre el alfabeto {a,b,c} que tienen por lo menos tres letras (7) Sea el AFD definido formalmente de la siguiente manera: M = (Q, Σ, q0, F, δ) Q={0,1,2,3}; Σ={a,b,c}; q0=0; F={2,3}; δ ={0=>a=>1, 1=>c=>2, 1=>b=>3, 3=>a=>3} (a) Describa formalmente el AFD equivalente con la δ completa. (b) Escriba una ER que represente al LR reconocido por este AFD. (c) Describa las actividades de este AFD para todos los casos posibles. (8) Diseñar un AFD que acepte las palabras en el alfabeto {a,b} en que la cantidad de a s es impar. (9) Diseñar un AFD que acepte las palabras en el alfabeto {0,1} en que las cadenas empiecen con 1 no tienen un par de 0 s consecutivos. (1 10)* (10) Diseñe un AFD que reconozca la ER (a) 1(1 0 -)*(1 0) 1 (g) (0 1)*00 (b) (a b)(a b(a b))* (h) (b bab)+ (c) (0 1)(10)* (i) (ab ba)+ (d) a(bb*a)* (j) ba* (e) a(aa)* (k) (ba)* (f) (aa)+ (l) b*a* 55

56 Lenguajes Incontextuales Es un lenguaje formal. Generado por una Gramática Independiente de Contexto. Ejemplos: expresiones aritméticas, sentencias de un lenguaje de programación. 56

57 Lenguajes Incontextuales Lema del bombeo Sea L un lenguaje regular. Entonces existe un entero ("longitud de bombeo") Tal que cualquier cadena w perteneciente a L, de longitud mayor o igual que p, Puede ser escrita como w = xyz (p. ej. dividiendo w en tres subcadenas), de forma que se satisfacen las siguientes condiciones: 1. y 1 2. xy p 3. i / i 0, xy i zєl y es la subcadena que puede ser bombeada (borrada o repetida un número i de veces como se indica en (3), y la cadena resultante seguirá perteneciendo a L). (1) significa que la cadena y que se bombea debe tener como mínimo longitud uno. (2) significa que y debe estar dentro de los p primeros caracteres. No hay restricciones acerca de x o z. 57

58 Lenguajes Incontextuales Autómata Finito Con Pila Conocidos como autómatas push-down Mas poderosos que los AF, porque además de reconocer a los Lenguajes Regulares tienen la capacidad de reconocer a los Lenguajes Independientes de Contexto. Además de tener estados y transiciones, tiene una memoria en forma de PILA (stack) que permite almacenar, retirar y consultar cierta información que será útil para reconocer los LICs. Su lógica es LIFO (Last In First Out) Los AFD no tienen memoria: no pueden representar el lenguaje: L = {x n y n, n Є N} Es un dispositivo no determinístico. 58

59 Lenguajes Incontextuales Autómata Finito Con Pila Definición formal: AP = <Q, Σ, Ґ, q0, p0, F, > Q: Conjunto finito de estados. Σ: Alfabeto de entrada Ґ : Alfabeto de la pila (terminales, símbolos de la pila) q0: Estado inicial p0: Símbolo inicial de la pila, el que indica que la pila no tiene símbolos. Ejemplo: $ F: Conjunto de estados finales. : Relación de transición ((Q, Σ, Ґ),(Q, Ґ)) (estado actual, símbolo del alfabeto que se lee en la entrada, símbolo que se extrae de la pila, nuevo estado, símbolo que se inserta en la pila) Transiciones especiales: δ(p,x,λ)=(q,z) (transita sin extraer nada de la pila) δ(p,λ,s)=(q,λ) (transita sin avanzar en la cinta de entrada) δ (p,λ,λ)=(q,λ) (transita sin avanzar en la cinta de entrada y sin extraer nada de la pila) δ(p,x,λ)=(q,λ) Autómata finito!!!!! 59

60 Lenguajes Incontextuales Autómata Finito Con Pila Un AP puede reconocer un LIC de dos maneras: Por estado final, como en los AF s Por pila vacía. Lenguaje aceptado por el AP: L(M) Es la colección de todas las cadenas que acepta M Los lenguajes aceptados por los autómatas de pila incluyen los lenguajes regulares Teorema: Para cada autómata de pila que acepte cadenas sin vaciar su pila, existe un autómata que acepta el mismo lenguaje pero que vacía su pila antes de llegar a un estado de aceptación. Vaciado de pila: 1) Se crea un nuevo estado inicial y se añade la transición:δ(i,λ,λ)=(q0,#) 2) Para cada uno de los estados finales se añade un nuevo estado mediante la transición δ(f,λ,λ)=(s, λ) 3) Para cada símbolo de pila x se añade la transición: δ(s,λ,x)=(s, λ) 4) Se añade un estado final nuevo y la transición δ(s,λ, #)=(F, λ) 60

61 Lenguajes Incontextuales Ejemplo: Cualquier cadena que contenga un número de y s menor o igual a que de x s. Pueden estar intercaladas. L={xyx, xxy, xxyxyx, } leo / saco / pongo q x / λ / x y / x / λ 61

62 Lenguajes Incontextuales Ejemplo: S asb λ p a / λ / a leo / saco / pongo FALTA LEER aabb abb LEO a PILA λ a b / a / λ bb a aa b b a q b / a / λ λ b λ 62

63 Lenguajes Incontextuales Ejemplo: L = {ww -1 / w,w -1 ЄΣ*} S A λ A aa bb aaa bab a / λ / a FALTA LEER LEO PILA p b / λ / b abba a λ bba a λ / λ / λ ba b ba λ ba ba q a / a / λ b / b / λ a b a a λ λ 63

64 Lenguajes Incontextuales Ejemplo: S cac A b ba FALTA LEER LEO PILA p cbbc c λ c / λ / c bbc b c q b / λ / λ bc c b c c c c / c / λ λ λ r 64

65 Lenguajes Incontextuales Ejemplo: x n y n x n x / λ / x y / λ / λ x / x / λ p q r s t λ / λ / # λ / λ / λ λ / λ / λ λ / # / λ 65

66 Lenguajes Incontextuales Autómata Finito Con Pila Para cada gramática G independiente del contexto, existe un autómata de pila M tal que L(G)=L(M) Dada una gramática G independiente del contexto, construimos un autómata de pila M de la manera siguiente: Designe el alfabeto de M como los símbolos terminales de G, y los símbolos de pila de M como los símbolos terminales y no terminales de G, junto con el símbolo especial #. 2) Designe los estados de M como i, p, q y f, donde i es el estado inicial y f es el único estado de aceptación. 3) Introduzca la transición (i, λ, λ; p, #). 4) Introduzca una transición (p, λ, λ; q, S) donde S es el símbolo inicial de G. 5) Introduzca una transición de la forma (q, λ, N; q, w) para cada regla de reescritura N w en G (aquí empleamos nuestra nueva convención que permite que una sola transición inserte más de un símbolo de pila. W puede ser una cadena de cero o más símbolos, incluyento terminales y no terminales. 6) Introduzca una transición de la forma (q, x, x; q, λ) para cada terminal x de G (es decir, para cada símbolo del alfabeto de M 7) Introduzca la transición (q, λ, #; f, λ) 66

67 Lenguajes Incontextuales Ejemplo: S zmnz M ama z N bnb z 67

68 Lenguajes Incontextuales Análisis completo de la cadena zazabzbz que efectúa el autómata: 68

69 Lenguajes Incontextuales Ejemplo: S aa A Sb b λ / Aa / S λ / b / A λ / bs / A b / λ / b a / λ / a p q r r λ / λ / # λ / S / λ λ / # / λ 69

70 Lenguajes Incontextuales Ejemplo: S xsy λ λ / S / xsy λ / S / λ y / y / λ x / x / λ p q r r λ / λ / # λ / λ / S λ / # / λ 70

71 Lenguajes Incontextuales Compilador LL Es un analizador sintáctico. L: left to right: lee la entrada de izquierda a derecha. L: left derivation: produce una derivación por la izquierda. Principio de previsión ( lookahead ): observar un carácter de la palabra de entrada que aún no ha sido leído El carácter leído por adelantado nos permite en algunas ocasiones decidir adecuadamente cual de las transiciones del AP conviene aplicar. 71

72 Lenguajes Incontextuales Compilador LL FALTA LEER abcba LEO PILA λ Ejemplo: S asa bsb c abcba λ S λ p abcba a asa bcba Sa λ λ / λ / S bcba bsba b λ / S / asa cba Sba q λ / S / bsb λ / S / c a / a / λ b / b / λ cba ba a λ c b cba ba a c / c / λ λ a λ 72

73 Lenguajes Incontextuales Compilador LL FALTA LEER aabbb LEO PILA λ Ejemplo: S asb asbb λ aabbb λ S λ p aabbb a asbb abbb Sbb λ λ / λ / S abbb asbbb a λ / S / asb bbb λ Sbbb q λ / S / asbb λ / S / λ bbb bb b bbb bb a / a / λ b / b / λ b b b b λ λ 73

74 Lenguajes Incontextuales Compilador LR Es un analizador sintáctico. L: left to right: lee la entrada de izquierda a derecha. R: righmost derivation: produce una derivación mas a la derecha. No tratan de adivinar una derivación, sino que tratan de ir reconociendo cadenas que correspondan al lado derecho de una regla gramatical, para reemplazar por el lado izquierdo. Recorren el árbol de derivación de abajo hacia arriba, por lo que se llaman también compiladores ascendentes. Cadena reconocida con el símbolo distinguido en el tope de la Pila. Se analiza el tope de la Pila Operaciones: Desplazar: pasar un carácter de la entrada al tope de la pila Reducir: reemplazar en el tope de la pila el lado derecho de una regla gramatical por el lado izquierdo de la misma. 74

75 Lenguajes Incontextuales Compilador LR Ejemplo: S aa; A Sb b i λ / λ / # λ / Aa / S FALTA LEER aabb aabb PILA λ # ACCION λ / λ / # DESP p λ / bs / A λ / b / A abb bb b a# aa# baa# DESP DESP RED q λ / S / λ λ / # / λ a / λ / a b / λ / b b b λ λ λ Aaa# Sa# bsa# Aa# S# RED DESP RED RED λ / S / λ f λ λ # λ λ / # / λ FIN 75

76 Lenguajes Incontextuales Compilador LR Ejemplo: S asa bsb c i λ / λ / # λ / asa / S FALTA LEER abcba abcba PILA λ # ACCION λ / λ / # DESP p λ / bsb / S λ / c / S bcba cba ba a# ba# cba# DESP DESP RED q λ / S / λ λ / # / λ a / λ / a b / λ / b c / λ / c ba a a λ λ Sba# bsba# Sa# asa# S# DESP RED DESP RED λ / S / λ f λ λ # λ λ / # / λ FIN 76

77 Lenguajes Incontextuales Compilador LR Ejemplo: S cac; A ba b i p q λ / λ / # λ / S / λ λ / # / λ λ / cac / S λ / Ab / A λ / b / A b / λ / b c / λ / c FALTA LEER cbbc cbbc bbc bc bc c c λ λ λ PILA λ # c# bc# Ac# bac# Ac# cac# S# # ACCION λ / λ / # DESP DESP RED DESP RED DESP RED λ / S / λ λ / # / λ f λ λ FIN 77

78 Lenguajes Incontextuales Compilador LR Ejemplo: S asb asbb λ i p q λ / λ / # λ / S / λ λ / # / λ λ / bsa / S λ / bbsa / S λ / λ / S a / λ / a b / λ / b FALTA LEER aabbb aabbb abbb bbb bbb bb bb b λ λ PILA λ # a# aa# Saa# bsaa# Sa# bsa# bbsa# S# ACCION λ / λ / # DESP DESP DESP DESP RED DESP DESP RED λ / S / λ f λ λ # λ λ / # / λ FIN 78

79 Lenguajes Incontextuales Ejercicios (1) En uno de sus viajes, Alicia pasó por un pueblo dispuesta a encontrar alojamiento para pasar la noche. Sin embargo, pronto se dio cuenta de que no entendía una palabra a ninguno de los habitantes. Al cabo de un tiempo de intentar, infructuosamente, establecer comunicación con alguno de ellos, se le acercó un muchacho de aspecto bonachón que la saludó cortésmente: Buenos días. Alicia respiró aliviada. Buenos días. Menos mal que me encuentro a alguien que me entiende! Estaba ya a punto de marcharme de aquí. Qué lengua hablan en este pueblo? A decir verdad, hay en el pueblo dos dialectos diferentes. Si le interesa, puedo hablarle sobre ellos. Me gustaría mucho. 79

80 Lenguajes Incontextuales Ejercicios (cont.) Pues verá, en el lenguaje oficial, se utiliza una única vocal, la a, combinada con dos consonantes, la s y la b, para formar sílabas. Una sílaba puede ser, o bien una vocal, o bien una consonante seguida por una vocal. Además, para complicar las cosas, cuando una sílaba comienza por consonante, la sílaba precedente puede terminar en s. Eso es fácil, en mi idioma las sílabas son muy similares. Y cómo se forman las palabras? Una palabra siempre tiene una o varias sílabas. Sin embargo, se da el caso de que todas las palabras han de tener el mismo número de sílabas acabadas en s, que de sílabas acabadas en a. Ah, sí? Qué lenguaje tan original! Entonces, basba es una palabra válida, pero asbaa no lo es, no? Exacto. Pero eso no es todo, porque, como te dije, en el norte del pueblo se habla otro dialecto. En qué se diferencia? Las palabras se forman de manera parecida, pero no hay eses al final de las sílabas, por lo que no existe la restricción de que haya el mismo número de sílabas acabadas en s que acabadas en a. Entonces, palabras válidas del sur serían bassa y basba, y palabras válidas del norte serían aa, basa, o sasasa, verdad?. Así es! 80

81 Lenguajes Incontextuales Ejercicios (cont.) Se pide, para cada uno de estos dos dialectos: En el caso de que sea un lenguaje regular, a. Proporcionar una Expresión Regular para el lenguaje. b. Construir un autómata finito determinista que acepte las palabras del mismo. c. Proporcionar una gramática regular para el lenguaje. En el caso de que sea independiente del contexto no regular, a. Proporcionar una gramática independiente del contexto para el lenguaje. b. Proporcionar un autómata a pila LL que acepte las palabras del lenguaje. c. Analizar la palabra basba con un autómata de pila de tipo LR. 81

82 Lenguajes Incontextuales Ejercicios (2) Cual es el lenguaje que acepta el siguiente AP q 0 / λ / 0 0 / 1 / λ 1 / 0 / λ 1 / λ / 1 (3) Diseñe el AP que reconoce el lenguaje generado por esta gramática: S λ A A aab baa ab ba 82

83 Lenguajes Incontextuales Ejercicios (4) Obtenga la gramática G tal que L(G) = {xyxy n zy 2n+1 ; n 0} Solución: S xyxa; A yayy zy (5) Construya la tabla de análisis sintáctico LR para la cadena zxzxyzyz S zabz A xax z B yby z (6) Grafique y defina el AP de análisis sintáctico LL para la siguiente gramática: S AA 0 A SS 1 83

84 Máquina de Turing Los autómatas son insuficientes: AF modelan adecuadamente mecanismos que requieren una memoria pequeña. AP modelan adecuadamente mecanismos que requieren memoria infinita que sólo puede ser replicada con una pila LIFO (Last In First Out) {a n b n c n n > 0} no es un lenguaje libre de contexto pero sí es sensitivo al contexto, es decir, es generado por una gramática sensitiva al contexto. {a n b n c n n 0} no es un lenguaje sensitivo al contexto (porque contiene λ) pero sí es un lenguaje recursivamente numerable, es decir, es generado por una gramática sin restricción. 84

85 Máquina de Turing {a n b n c n n > 0} es un lenguaje sensitivo al contexto 1. S abtc abc 2. T ABTc 3. T ABc 4. BA BX 5. BX YX 6. YX AX 7. AX AB 8. aa aa 9. ab ab 10. bb bb {a n b n c n n 0} es un lenguaje recursivamente enumerable 1. S abtc abc λ 2. T ABTc 3. T ABc 4. BA BX 5. BX YX 6. YX AX 7. AX AB 8. aa aa 9. ab ab 10. bb bb 85

86 Máquina de Turing LR {a n b m } {a n b n } X α LSC LLC {a n b n c n } α X β α γ β 86

87 Máquina de Turing Máquina abstracta definida por el matemático inglés Alan Turing en Proceedings of the London Mathematical Society 2: , Turing empezó tratando de modelar a una computadora humana, es decir, a un humano tratando de resolver algorítmicamente un problema utilizando papel y lápiz. Reglas básicas: Sólo se pueden escribir símbolos que pertenecen a un conjunto finito. Cada acción que la computadora toma sólo depende del símbolo que está siendo examinado y del estado mental en ese momento. Aunque el estado mental puede cambiar como resultado de los símbolos o cálculos que se han efectuado, el número de estados mentales distintos es finito. Máquina abstracta Examinar un símbolo individual en el papel. Borrar un símbolo o reemplazarlo por otro. Trasladar la atención de una parte del papel a otra. 87

88 Máquina de Turing Se tiene un alfabeto de entrada y un alfabeto, posiblemente mayor, de los símbolos utilizados durante la operación o cálculos de la máquina. Un conjunto finito de estados que representan los distintos estados mentales. En lugar de una hoja de papel, se tiene una cinta lineal semi-infinita con inicio en el extremo izquierdo e infinita hacia la derecha. Esta cinta esta dividida en cuadros, en cada uno de los cuales puede estar un símbolo o un espacio en blanco (#). 88

89 Máquina de Turing Caricatura de una MT 89

90 Máquina de Turing Operación de la MT: La acción está determinada por el estado actual y el símbolo en la cinta y consiste de tres partes Reemplazar el símbolo en el cuadrado actual por otro que puede ser distinto o el mismo. Mover la cabeza lectora a la derecha o a la izquierda (a menos que se encuentre en el extremo izquierdo de la cinta) o quedarse donde está. Hacer una transición de estado, que puede ser distinto o el mismo. La cinta sirve como dispositivo de entrada y salida así como la memoria disponible para utilizar durante la operación o cálculos de la máquina. Diferencias de una MT con un autómata La cabeza lectora se puede mover a la izquierda o derecha o quedarse donde está. Puede modificar los datos de entrada. Puede examinar parte de los datos de entrada, modificarlos, irse a otro lugar de la cinta y ejecutar ciertos cálculos, regresar a re-examinar los datos de entrada, repetir cualquiera de estas acciones y quizás detener el proceso antes de procesar todos los datos de entrada. En lugar de que un subconjunto de los estados sean estados finales o de aceptación, tendremos dos estados de paro que son un estado de aceptación h a y un estado de rechazo h r. 90

91 Máquina de Turing Definición formal: Una Máquina de Turing es un quinteto T = (Q, Σ, Γ, q 0, δ) Q es un conjunto finito de estados en el que no está incluído los estados de paro h a y h r. Σ es el alfabeto de entrada con el que se forman las cadenas a procesar. Γ es el alfabeto de la cinta que contiene a Σ pero no al espacio en blanco (#). q 0 es el estado inicial y pertenece a Q. La función de transición δ: Q (Γ {#}) Q {h a, h r } (Γ {#}) {#}) {R, L, S} δ(q, X) = (r, Y, D) significa que si la máquina se encuentra en el estado q y leyendo el símbolo X en la cinta, entonces la máquina reemplaza X por Y, se mueve al estado r y mueve la cabeza lectora en la dirección D. 91

92 Máquina de Turing Notación gráfica: δ(q, X) = (r, Y, D) se puede representar gráficamente de la siguiente manera: X/Y, D q r 92

93 Máquina de Turing Configuración inicial # a b b a # # #... 93

94 Máquina de Turing Aceptación de palabras por MT Una palabra x Σ* es aceptada por una MT T si empezando con la configuración inicial correspondiente a la palabra x, eventualmente se llega al estado de aceptación h a. Note que no es necesario procesar toda la palabra para aceptarla. El lenguaje aceptado por T es el conjunto de palabras aceptadas por T. Rechazo de palabras por MT Una palabra x Σ* es rechazada por una MT T si empezando con la configuración inicial correspondiente a la palabra x, eventualmente se llega al estado de rechazo h r. Note que no es necesario procesar toda la palabra para rechazarla. Es costumbre omitir el estado de rechazo y rechazar una palabra cuando no existe una transición, es decir, cuando la máquina se queda colgada. 94

95 Máquina de Turing Ejemplo 1: MT que acepta palabras sobre {a, b} que inician con a #/#,R a/a,s 1 2 h a b/b,s #/#,S h r 95

96 Máquina de Turing Ejemplo 2: MT palabras en {a, b} que terminan con a a/a,r b/b,r 1 #/#,R #/#,L a/a,s 2 3 h a b/b,s #/#,S h r 96

97 Máquina de Turing Ejemplo 3: MT que acepta (a b)*aba (a b)* 97

98 Máquina de Turing Ejemplo 4: MT que acepta (a b)*aba 98

99 Máquina de Turing Ejemplo 5: MT que acepta palíndromos sobre {a, b}. 99

100 Máquina de Turing Ejemplo 6: MT que acepta el lenguaje L = {ss s (a + b)*} Este lenguaje no es libre de contexto 100

101 Máquina de Turing Ejemplo 7: MT que acepta la reversa de un string 101

102 Máquina de Turing Ejemplo 8: MT que calcula n % 2 102

103 Máquina de Turing Ejemplo 9: MT que copia strings 103

104 Máquina de Turing Ejemplo 10: MT que borra un símbolo 104

105 Máquina de Turing Configuración de una Máquina de Turing Definida por: El estado en el que se encuentra El contenido de la cinta La posición de la cabeza lectora. Representada como uqv cuando la MT se encuentra en el estado q, el contenido de la cinta es la cadena uv (en ese orden, de izquierda a derecha) y la cabeza lectora se encuentra en el primer símbolo de v. La cinta sólo contiene espacios blancos (#) a la derecha del último símbolo de v; para abreviar, estos blancos a la derecha de la palabra no se indican en la configuración. Por ejemplo, #1011q representa la configuración cuando el contenido de la cinta es # ###..., el estado es q 7 y la cabeza lectora se encuentra sobre el segundo 0. # # # #... q 7 105

106 Máquina de Turing Aceptabilidad Un lenguaje L es Turing-aceptable si existe una máquina de Turing que dá halt para toda entrada w L, es decir, la palabra w es aceptada por la máquina de Turing. Ejemplo: Máquina de Turing que acepte el lenguaje L = {1 x x = 2 n para n 0}, es decir, cadenas de 1 s cuya longitud es una potencia de 2. Idea de construcción: 1) Barrer la palabra de izquierda a derecha tachando un 1 sí y otro no. 2) Si en el paso 1) la cinta contiene sólo un 1, entonces parar y aceptar. 3) Si en el paso 1) la cinta contiene más de un 1 y el número de 1 s es impar, entonces rechazar. 4) Regresar la cabeza lectora al extremo izquierdo de la cinta. 5) Ir al paso 1). 106

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA 1ER PARCIAL TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Examen parcial 12/02/2003 1.- Usa el lema de bombeo para

Más detalles

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ. Alfabetos, Cadenas y Lenguajes Definición 1 Un Alfabeto es cualquier conjunto finito, no vacío. Ejemplo 1 Sea Σ = {0, 1, 2, 3,..., 9} donde 0 Σ Definición 2 Una cadena sobre Σ es cualquier secuencia de

Más detalles

SSL Guia de Ejercicios

SSL Guia de Ejercicios 1 SSL Guia de Ejercicios INTRODUCCIÓN A LENGUAJES FORMALES 1. Dado el alfabeto = {a, b, c}, escriba las palabras del lenguaje L = {x / x }. 2. Cuál es la cardinalidad del lenguaje L = {, a, aa, aaa}? 3.

Más detalles

Capítulo 1 Lenguajes formales 6

Capítulo 1 Lenguajes formales 6 Capítulo 1 Lenguajes formales 6 1.8. Operaciones entre lenguajes Puesto que los lenguajes sobre Σ son subconjuntos de Σ, las operaciones usuales entre conjuntos son también operaciones válidas entre lenguajes.

Más detalles

DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES

DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES 1 DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES Los LENGUAJES FORMALES están formados por PALABRAS, las palabras son CADENAS y las cadenas están constituidas por SÍMBOLOS de un ALFABETO. SÍMBOLOS

Más detalles

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo: 1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.

Más detalles

NÚMEROS NATURALES Y NÚMEROS ENTEROS

NÚMEROS NATURALES Y NÚMEROS ENTEROS NÚMEROS NATURALES Y NÚMEROS ENTEROS Los números naturales surgen como respuesta a la necesidad de nuestros antepasados de contar los elementos de un conjunto (por ejemplo los animales de un rebaño) y de

Más detalles

1. Cadenas EJERCICIO 1

1. Cadenas EJERCICIO 1 LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada

Más detalles

Autómatas Finitos. Leopoldo Altamirano, Eduardo Morales. Verano, 2011 INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico

Autómatas Finitos. Leopoldo Altamirano, Eduardo Morales. Verano, 2011 INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico los s s s s Leopoldo Altamirano, Eduardo Morales INAOE Verano, 2011 (INAOE) Verano, 2011 1 / 60 Contenido los s s 1 los s 2 3 4 s 5 (INAOE) Verano, 2011 2 / 60 los s los s los s s : Conjunto de estados

Más detalles

Teoría de Lenguajes. Teoría de la Programación I

Teoría de Lenguajes. Teoría de la Programación I Teoría de Lenguajes Soluciones Consideraciones generales i) Escriba nombre y C.I. en todas las hojas. ii) Numere todas las hojas. iii) En la primera hoja indique el total de hojas. iv) Comience cada ejercicio

Más detalles

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones:

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones: Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 5: Cómo se simplifica una Gramática de Contexto Libre?. 1. Objetivos. El objetivo de este boletín es ilustrar cómo proceder para simplificar

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 11 de Octubre de 2006

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 11 de Octubre de 2006 Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 11 de Octubre de 2006 I Tareas 1. Dudar de todo, al menos una vez en la vida. 2. Revisar sus apuntes todos los días en la tarde

Más detalles

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Números 2 Polinomios 3 Funciones y su Representación

Más detalles

martilloatomico@gmail.com

martilloatomico@gmail.com Titulo: OPERACIONES CON POLINOMIOS (Reducción de términos semejantes, suma y resta de polinomios, signos de agrupación, multiplicación y división de polinomios) Año escolar: 2do: año de bachillerato Autor:

Más detalles

Ámbito Científico-Tecnológico Módulo III Bloque 2 Unidad 1 Quien parte y reparte, se lleva la mejor parte

Ámbito Científico-Tecnológico Módulo III Bloque 2 Unidad 1 Quien parte y reparte, se lleva la mejor parte Ámbito Científico-Tecnológico Módulo III Bloque 2 Unidad 1 Quien parte y reparte, se lleva la mejor parte En esta unidad vamos a estudiar los números racionales, esto es, los que se pueden expresar en

Más detalles

INSTITUTO VALLADOLID PREPARATORIA página 9

INSTITUTO VALLADOLID PREPARATORIA página 9 INSTITUTO VALLADOLID PREPARATORIA página 9 página 10 FACTORIZACIÓN CONCEPTO Para entender el concepto teórico de este tema, es necesario recordar lo que se mencionó en la página referente al nombre que

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Propiedades de Clausura de los Lenguajes Regulares y Lenguajes Libres del Contexto Propiedades de Clausura de Lenguajes Regulares Los lenguajes regulares (LR son cerrados bajo

Más detalles

COLEGIO APUNTES ACCESS

COLEGIO APUNTES ACCESS COLEGIO APUNTES ACCESS Índice Introducción al Access... 3 Conocimientos básicos... 6 Tablas... 7 Formularios... 10 Consultas... 12 Consultas de eliminación... 15 Consulta de actualización... 15 Informes...

Más detalles

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1 Tecnología 4º ESO Tema 5: Lógica binaria Página 1 4º ESO TEMA 5: Lógica binaria Tecnología 4º ESO Tema 5: Lógica binaria Página 2 Índice de contenido 1. Señales analógicas y digitales...3 2. Código binario,

Más detalles

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 1: Lenguajes y Gramáticas Formales

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 1: Lenguajes y Gramáticas Formales Teoría de Autómatas y Compiladores [ICI-445] Capítulo 1: Lenguajes y Gramáticas Formales Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

Teoría del Juego - Juegos Combinatoriales Imparciales

Teoría del Juego - Juegos Combinatoriales Imparciales Teoría del Juego - Juegos Combinatoriales Imparciales Carlos Gámez Taller de Resolución de Problemas Escuela de Matemática Universidad de El Salvador Estudio de Casos Esquema Introducción Juegos de Agarrar

Más detalles

UNIDAD I NÚMEROS REALES

UNIDAD I NÚMEROS REALES UNIDAD I NÚMEROS REALES Los números que se utilizan en el álgebra son los números reales. Hay un número real en cada punto de la recta numérica. Los números reales se dividen en números racionales y números

Más detalles

Lógica Binaria. Contenidos. Objetivos. Antes de empezar 1.Introducción... pág. 2. En esta quincena aprenderás a:

Lógica Binaria. Contenidos. Objetivos. Antes de empezar 1.Introducción... pág. 2. En esta quincena aprenderás a: Contenidos Objetivos En esta quincena aprenderás a: Distinguir entre una señal analógica y una digital. Realizar conversiones entre el sistema binario y el decimal. Obtener la tabla de la verdad de un

Más detalles

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales.

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales. Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales. Introducción Por qué La Geometría? La Geometría tiene como objetivo fundamental

Más detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos

Más detalles

Ejemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios }

Ejemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios } La Teoría de Conjuntos es una teoría matemática, que estudia básicamente a un cierto tipo de objetos llamados conjuntos y algunas veces, a otros objetos denominados no conjuntos, así como a los problemas

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras. 1 Conceptos Generales 1.1 Definición de Informática Una posible definición de informática podría ser: El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática

Más detalles

CAPITULO 2: LENGUAJES

CAPITULO 2: LENGUAJES CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,

Más detalles

Objetivos: Al inalizar la unidad, el alumno:

Objetivos: Al inalizar la unidad, el alumno: Unidad 3 espacios vectoriales Objetivos: Al inalizar la unidad, el alumno: Describirá las características de un espacio vectorial. Identiicará las propiedades de los subespacios vectoriales. Ejempliicará

Más detalles

EXPRESIONES ALGEBRAICAS. POLINOMIOS

EXPRESIONES ALGEBRAICAS. POLINOMIOS EXPRESIONES ALGEBRAICAS. POLINOMIOS 1. EXPRESIONES ALGEBRAICAS. Estas expresiones del área son expresiones algebraicas, ya que además de números aparecen letras. Son también expresiones algebraicas: bac,

Más detalles

Fórmulas y funciones

Fórmulas y funciones 05... Fórmulas y funciones En este tema vamos a profundizar en el manejo de funciones ya definidas por Excel, con el objetivo de agilizar la creación de hojas de cálculo, estudiando la sintaxis de éstas

Más detalles

LECCION 2 FORMULAS Y FUNCIONES

LECCION 2 FORMULAS Y FUNCIONES LECCION 2 FORMULAS Y FUNCIONES FÓRMULAS Esta es una de las características más importantes de una planilla de cálculos. Permite establecer relaciones entre constantes, funciones y referencias a celdas

Más detalles

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o teoremas muy útiles tales como :

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o teoremas muy útiles tales como : SIMPLIFICACION DE CIRCUITOS LOGICOS : Una vez que se obtiene la expresión booleana para un circuito lógico, podemos reducirla a una forma más simple que contenga menos términos, la nueva expresión puede

Más detalles

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice 1 Polinomios Dedicaremos este apartado al repaso de los polinomios. Se define R[x] ={a 0 + a 1 x + a 2 x 2 +... +

Más detalles

Apuntes de Matemática Discreta 11. Teorema Fundamental de la Aritmética

Apuntes de Matemática Discreta 11. Teorema Fundamental de la Aritmética Apuntes de Matemática Discreta 11. Teorema Fundamental de la Aritmética Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 11 Teorema Fundamental

Más detalles

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES Tema 07 LÍMITES Y CONTINUIDAD DE FUNCIONES Límite de una función en un punto Vamos a estudiar el comportamiento de las funciones f ( ) g ( ) ENT[ ] h ( ) i ( ) en el punto Para ello, damos a valores próimos

Más detalles

Conjuntos, Relaciones y Grupos. Problemas de examen.

Conjuntos, Relaciones y Grupos. Problemas de examen. Conjuntos, Relaciones y Grupos. Problemas de examen. Mayo 2006 1. La función f es definida por (a) Halle el recorrido exacto, A, de f. f : R R donde f(x) = e senx 1. (b) (i) Explique por qué f no es inyectiva.

Más detalles

Números Reales. MathCon c 2007-2009

Números Reales. MathCon c 2007-2009 Números Reales z x y MathCon c 2007-2009 Contenido 1. Introducción 2 1.1. Propiedades básicas de los números naturales....................... 2 1.2. Propiedades básicas de los números enteros........................

Más detalles

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño El proceso de diseño para una base de datos consta básicamente de 7 pasos, los cuáles se describen en la siguiente imagen.

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

Entorno de trabajo y funciones matemáticas en Excel

Entorno de trabajo y funciones matemáticas en Excel Libro 7 Entorno de trabajo y funciones matemáticas en Excel NTICx / Informática para Adultos Profesor: Carlos A. Sardá 2012 1. Entorno de trabajo de Excel Excel es un programa de computadora desarrollado

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.2 Operaciones aritmético-lógicas en Pascal 3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES

Más detalles

Nombre del polinomio. uno monomio 17 x 5 dos binomio 2x 3 6x tres trinomio x 4 x 2 + 2

Nombre del polinomio. uno monomio 17 x 5 dos binomio 2x 3 6x tres trinomio x 4 x 2 + 2 SISTEMA DE ACCESO COMÚN A LAS CARRERAS DE INGENIERÍA DE LA UNaM III. UNIDAD : FUNCIONES POLINÓMICAS III..1 POLINOMIOS La expresión 5x + 7 x + 4x 1 recibe el nombre de polinomio en la variable x. Es de

Más detalles

Vamos a ver los principales conceptos básicos que debemos

Vamos a ver los principales conceptos básicos que debemos 1. LIBROS Y HOJAS EN EXCEL Vamos a ver los principales conceptos básicos que debemos tener en cuenta a la hora de trabajar con los documentos de Excel. Antes que nada, veremos la manera de organizar las

Más detalles

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria Metodología de la programación y desarrollo de software Marta Zorrilla Universidad de Cantabria Metodología de la programación Objetivos Fases en la solución de un problema de programación. Ciclo de vida

Más detalles

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas Universidad de Cádiz Departamento de Matemáticas MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas Tema 4 La recta en el plano Elaborado por la Profesora Doctora María Teresa

Más detalles

Módulo 2: Expresiones polinómicas. Factorización

Módulo 2: Expresiones polinómicas. Factorización CURSO DE NIVELACIÓN Apunte teórico - práctico Módulo 2: Expresiones polinómicas. Factorización 1 FACTORIZACIÓN Una expresión polinómica es (justamente) una expresión formada por sumas y restas de términos,

Más detalles

EMPLEO NTIC`S II SEGUNDO SEMESTRE

EMPLEO NTIC`S II SEGUNDO SEMESTRE UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CONTABILIDAD Y AUDITORIA EMPLEO NTIC`S II SEGUNDO SEMESTRE Ing. Luz Perez SEMESTRE MARZO JULIO 2009 EXCEL Excel es un programa del tipo Hoja de Cálculo que permite

Más detalles

INSTITUTO VALLADOLID PREPARATORIA página 37

INSTITUTO VALLADOLID PREPARATORIA página 37 INSTITUTO VALLADOLID PREPARATORIA página 37 página 38 SUMA DE FRACCIONES CONCEPTO Las cuatro operaciones fundamentales, suma, resta, multiplicación y división, con fracciones algebraicas se realizan bajo

Más detalles

La suma y la resta. Introducción. Capítulo

La suma y la resta. Introducción. Capítulo Capítulo II La suma y la resta Introducción En el capítulo anterior, vimos que los números permiten expresar la cantidad de objetos que tiene una colección. Juntar dos o más colecciones, agregar objetos

Más detalles

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x Los polinomios Los polinomios Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x Elementos de un polinomio Los términos: cada

Más detalles

Ejercicios de combinatoria resueltos. Matemática Discreta. 4º Ingeniería Informática

Ejercicios de combinatoria resueltos. Matemática Discreta. 4º Ingeniería Informática 1. Un número telefónico consta de siete cifras enteras. Supongamos que la primera cifra debe ser un número entre 2 y 9, ambos inclusive. La segunda y la tercera cifra deben ser números entre 1 y 9, ambos

Más detalles

Coeficientes 43 X = 43 X partes literales - 7 a 3 = - 7 a 3

Coeficientes 43 X = 43 X partes literales - 7 a 3 = - 7 a 3 APUNTES Y EJERCICIOS DEL TEMA 3 1-T 3--2ºESO EXPRESIONES ALGEBRAICAS: Son combinaciones de n os y letras unidos con operaciones matemáticas (aritméticas), que generalmente suelen ser sumas, restas, multiplicaciones

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Conceptos básicos: 1,2 puntos

Conceptos básicos: 1,2 puntos Procesadores del Lenguaje 1 Universidad Rey Juan Carlos Departamento de Lenguajes y Sistemas Informáticos I 8 de junio de 2009 Parcial primero. Conceptos básicos y problemas. Entrega en 90 minutos. Lea

Más detalles

1.3 Números racionales

1.3 Números racionales 1.3 1.3.1 El concepto de número racional Figura 1.2: Un reparto no equitativo: 12 5 =?. Figura 1.3: Un quinto de la unidad. Con los números naturales y enteros es imposible resolver cuestiones tan simples

Más detalles

EXPRESIONES ALGEBRAICAS

EXPRESIONES ALGEBRAICAS EXPRESIONES ALGEBRAICAS Un grupo de variables representadas por letras junto con un conjunto de números combinados con operaciones de suma, resta, multiplicación, división, potencia o etracción de raíces

Más detalles

AUTOMATAS Y LENGUAJES

AUTOMATAS Y LENGUAJES AUTOMATAS Y LENGUAJES Un enfoque de diseño a b a b b... q q 6 7 q 5 q 0 q 1 q 2 q q 3 4 Ramón Brena Tec de Monterrey Verano 2003 ii Prefacio En años recientes se ha visto la aparición de un buen número

Más detalles

Comenzaremos recordando algunas definiciones y propiedades estudiadas en el capítulo anterior.

Comenzaremos recordando algunas definiciones y propiedades estudiadas en el capítulo anterior. Capítulo 2 Matrices En el capítulo anterior hemos utilizado matrices para la resolución de sistemas de ecuaciones lineales y hemos visto que, para n, m N, el conjunto de las matrices de n filas y m columnas

Más detalles

Ejercicios de Programación Lineal

Ejercicios de Programación Lineal Ejercicios de Programación Lineal Investigación Operativa Ingeniería Informática, UCM Curso 8/9 Una compañía de transporte dispone de camiones con capacidad de 4 libras y de 5 camiones con capacidad de

Más detalles

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )

Más detalles

Tema 7. Límites y continuidad de funciones

Tema 7. Límites y continuidad de funciones Matemáticas II (Bachillerato de Ciencias) Análisis: Límites y continuidad de funciones 55 Límite de una función en un punto Tema 7 Límites y continuidad de funciones Idea inicial Si una función f está

Más detalles

Recuerdas qué es? Expresión algebraica. Es una combinación de números y letras relacionados mediante operaciones aritméticas.

Recuerdas qué es? Expresión algebraica. Es una combinación de números y letras relacionados mediante operaciones aritméticas. Recuerdas qué es? Expresión algebraica Es una combinación de números y letras relacionados mediante operaciones aritméticas. Propiedad distributiva de la multiplicación respecto de la suma Si a, b y c

Más detalles

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc TEMA 5: HOJAS DE CÁLCULO Edición de hojas de cálculo con OpenOffice Calc Qué vamos a ver? Qué es una hoja de cálculo y para qué sirve El entorno de trabajo de OpenOffice Calc Edición básica de hojas de

Más detalles

FUNCIONES. Funciones. Qué es una función? Indicadores. Contenido

FUNCIONES. Funciones. Qué es una función? Indicadores. Contenido Indicadores FUNCIONES Calcula el valor de incógnitas usando la definición de función. Determina valores de la variable dependiente a partir de valores dados a la variable independiente. Determina los puntos

Más detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 1 de agosto de 2003 1. Introducción Cualquier modelo de una situación es una simplificación de la situación real. Por lo tanto,

Más detalles

CONVOCATORIA 2016 GUÍA DE ESTUDIO PARA PRUEBA DE ADMISIÓN DE MATEMÁTICAS

CONVOCATORIA 2016 GUÍA DE ESTUDIO PARA PRUEBA DE ADMISIÓN DE MATEMÁTICAS CONVOCATORIA 2016 GUÍA DE ESTUDIO PARA PRUEBA DE ADMISIÓN DE MATEMÁTICAS Guía de Estudio para examen de Admisión de Matemáticas CONTENIDO PRESENTACIÓN... 3 I. ARITMÉTICA... 4 1. OPERACIONES CON FRACCIONES...

Más detalles

Polinomios y Ecuaciones

Polinomios y Ecuaciones Ejercicios de Cálculo 0 Prof. María D. Ferrer G. Polinomios y Ecuaciones.. Polinomios: Un polinomio o función polinómica es una epresión de la forma: n n n P a a a a a a = n + n + n + + + + 0 () Los números

Más detalles

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN Ejercicio 1. Diseñar una planilla EXCEL que tome como dato de entrada un número entero y devuelva la representación en base 2. Testearla con los números 23, 245, 673,

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

CAPÍTULO I MATEMÁTICAS

CAPÍTULO I MATEMÁTICAS CAPÍTULO I MATEMÁTICAS 1. CONJUNTOS En el lenguaje común, conjunto es, hasta cierto punto, sinónimo de colección, clase o grupo. Sin embargo, en el desarrollo de este estudio, veremos que la noción matemática

Más detalles

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12 Teoría de conjuntos. Teoría de Conjuntos. personal.us.es/elisacamol Curso 2011/12 Teoría de Conjuntos. Teoría de conjuntos. Noción intuitiva de conjunto. Propiedades. Un conjunto es la reunión en un todo

Más detalles

Nivel Medio I-104 Provincia del Neuquén Patagonia Argentina

Nivel Medio I-104 Provincia del Neuquén Patagonia Argentina Nivel Medio I-104 Provincia del Neuquén Patagonia Argentina www.faena.edu.ar info@faena.edu.ar TERCER BLOQUE MATEMATICA Está permitida la reproducción total o parcial de parte de cualquier persona o institución

Más detalles

INSTITUTO VALLADOLID PREPARATORIA página 57

INSTITUTO VALLADOLID PREPARATORIA página 57 INSTITUTO VALLADOLID PREPARATORIA página 57 página 58 RESTA DE FRACCIONES RESTA La resta de fracciones está basada, por ser el inverso de la operación suma, en las mismas reglas y leyes de la suma, es

Más detalles

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado

Más detalles

Análisis de una variable real I. Tijani Pakhrou

Análisis de una variable real I. Tijani Pakhrou Análisis de una variable real I Tijani Pakhrou Índice general 1. Introducción axiomática de los números 1 1.1. Números naturales............................ 1 1.1.1. Axiomas de Peano........................

Más detalles

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009 Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios Dra. Noemí L. Ruiz Limardo 2009 Objetivos de la Lección Al finalizar esta lección los estudiantes: Identificarán, de una lista de expresiones

Más detalles

REPASO NÚMEROS NATURALES Y NÚMEROS ENTEROS

REPASO NÚMEROS NATURALES Y NÚMEROS ENTEROS SUMA REPASO NÚMEROS NATURALES Y NÚMEROS ENTEROS NÚMEROS NATURALES (N) 1. Características: Axiomas de Giuseppe Peano (*): El 1 es un número natural. Si n es un número natural, entonces el sucesor (el siguiente

Más detalles

Iniciación a las Matemáticas para la ingenieria

Iniciación a las Matemáticas para la ingenieria Iniciación a las Matemáticas para la ingenieria Los números naturales 8 Qué es un número natural? 11 Cuáles son las operaciones básicas entre números naturales? 11 Qué son y para qué sirven los paréntesis?

Más detalles

Lección 9: Polinomios

Lección 9: Polinomios LECCIÓN 9 c) (8 + ) j) [ 9.56 ( 9.56)] 8 q) (a x b) d) ( 5) 4 k) (6z) r) [k 0 (k 5 k )] e) (. 0.) l) (y z) s) (v u ) 4 f) ( 5) + ( 4) m) (c d) 7 t) (p + q) g) (0 x 0.) n) (g 7 g ) Lección 9: Polinomios

Más detalles

Lógica Proposicional IIC2212. IIC2212 Lógica Proposicional 1 / 56

Lógica Proposicional IIC2212. IIC2212 Lógica Proposicional 1 / 56 Lógica Proposicional IIC2212 IIC2212 Lógica Proposicional 1 / 56 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos

Más detalles

UNIVERSIDAD NACIONAL DE VILLA MERCEDES. Curso de Formación en Matemáticas

UNIVERSIDAD NACIONAL DE VILLA MERCEDES. Curso de Formación en Matemáticas UNIVERSIDAD NACIONAL DE VILLA MERCEDES Curso de Formación en Matemáticas - 06 - Autor: Lic. Esp. Fernando Javier Quiroga Villegas OBJETIVOS DEL CURSO Objetivo General: Afianzar los conocimientos adquiridos

Más detalles

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

Para iniciar Excel es posible realizarlo de varias maneras, una de ellas es: Desde el menú Inicio.

Para iniciar Excel es posible realizarlo de varias maneras, una de ellas es: Desde el menú Inicio. Alexander Siniscalchi Agosto 2005 Introducción Este documento está adaptado al curso de Excel que se dicta a estudiantes que se inician con poco o ningún conocimiento de las herramientas de hojas de cálculos,

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Informes Características de los informes Un informe es una forma efectiva de presentar los datos en formato impreso. Como se tiene control sobre el tamaño y el aspecto de todos los elementos

Más detalles

MICROSOFT EXCEL 2007 NIVEL AVANZADO. Contenido

MICROSOFT EXCEL 2007 NIVEL AVANZADO. Contenido MICROSOFT EXCEL 2007 NIVEL AVANZADO GUÍA TEÓRICO-PRÁCTICA N 1 FORMULAS y FUNCIONES AVANZADAS Contenido INTRODUCCIÓN...2 CONCEPTOS BÁSICOS...2 Fórmulas Algebraicas...2 Precedencia de los operadores en las

Más detalles

Relaciones entre conjuntos

Relaciones entre conjuntos Relaciones entre conjuntos Parejas ordenadas El orden de los elementos en un conjunto de dos elementos no interesa, por ejemplo: {3, 5} = {5, 3} Por otra parte, una pareja ordenada consiste en dos elementos,

Más detalles

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA VENEZUELA CURSO PROPEDÉUTICO TALLER DE MATEMÁTICA

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA VENEZUELA CURSO PROPEDÉUTICO TALLER DE MATEMÁTICA INSTITUTO UNIVERSITARIO DE TECNOLOGÍA VENEZUELA CURSO PROPEDÉUTICO TALLER DE MATEMÁTICA CARACAS, MARZO DE 2013 ESTUDIO DEL SISTEMA DECIMAL CONTENIDO Base del sistema decimal Nomenclatura Ordenes Subordenes

Más detalles

Notaciones y Pre-requisitos

Notaciones y Pre-requisitos Notaciones y Pre-requisitos Símbolo Significado N Conjunto de los números naturales. Z Conjunto de los números enteros. Q Conjunto de los números enteros. R Conjunto de los números enteros. C Conjunto

Más detalles

Capítulo 6. Modificar archivos de datos. Ordenar casos

Capítulo 6. Modificar archivos de datos. Ordenar casos Capítulo 6 Modificar archivos de datos Los archivos de datos no siempre están organizados de forma idónea. En ocasiones podemos desear cambiar el orden de los casos, o transponer las filas y las columnas,

Más detalles

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos).

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos). 1. ÁLGEBRA DE BOOLE. El álgebra de Boole se llama así debido a George Boole, quien la desarrolló a mediados del siglo XIX. El álgebra de Boole denominada también álgebra de la lógica, permite prescindir

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Con este programa pueden abrirse formatos sencillos de texto (como TXT) y editarlos de manera básica.

Con este programa pueden abrirse formatos sencillos de texto (como TXT) y editarlos de manera básica. El Bloc de Notas es el programa más básico que tiene Windows para crear documentos de texto. Puede también venir identificado por su nombre en inglés: Notepad. Es una aplicación muy sencilla que apenas

Más detalles

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces

Más detalles

CONJUNTOS Y RELACIONES BINARIAS

CONJUNTOS Y RELACIONES BINARIAS UNIVERSIDAD CATÓLICA ANDRÉS BELLO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA CÁTEDRA DE LÓGICA COMPUTACIONAL CONJUNTOS Y RELACIONES BINARIAS INTRODUCCIÓN Intuitivamente, un conjunto es una

Más detalles

1.1Estándares de longitud, masa y tiempo

1.1Estándares de longitud, masa y tiempo CLASES DE FISICA 1 PRIMER PARCIAL 1) UNIDADES DE MEDIDA 2) VECTORES 3) MOVIMIENTO EN UNA DIMENSION 4) MOVIMIENTO EN DOS DIMENSIONES 5) MOVIMIENTO RELATIVO FÍSICA Y MEDICIONES Al igual que todas las demás

Más detalles