Está en la página 1de 57

DRA.

IVONNE TORRES IBARRA


El estudiante definirá, diseñará,
construirá y programará las fases del
Analizador Léxico de un traductor o
compilador.
Está materia permite que el estudiante se
acerque al análisis de problemas del área
industrial, como diseño, manufactura,
tratamiento de lenguaje natural, robótica,
inteligencia artificial, procesamiento de
consultas en base de datos, procesamiento
de consultas en Web, análisis y diseño de
algoritmos, entre otros
 Diseñar e Interpretar algoritmos
computacionales y notaciones matemáticas

 Manejar la programación para la solución de


aplicaciones

 Aplicar las estructuras de datos en la solución


de problemas

 Manipular las operaciones básicas de los


archivos
Definir, diseñar, construir y programar las
fases del analizador léxico de un traductor o
compilador.
 Al inicio de cada unidad se les brindará
el nombre de la unidad, su respectiva
bibliografía y la fecha tentativa del
examen.
 Estrategias didácticas a seguir
 Los criterios de evaluación y
acreditación respectiva
 Calendarización del trabajo
semestral
Dra. Ivonne Torres Ibarra

Evaluación Jueves 13 de Febrero de 2020


El estudiante reafirmará las bases
matemáticas necesarias para la teoría
de la computación.
 1. Martin, John C. Introduction to Languages and the Theory of
Computation. Prentice Hall.
 2. Sipser, Michael. Introduction to the Theory of Computation.
PWS Publishing Company.
 3. Cohen, Daniel I.A. Introduction to Computer Theory. Ed. Wie
Wiley.
 4. Davis, Martín D., Weyuker, Elaine. Computability, Complexity
and Languages Fundamentales of Teorical Computer Science.
Academic Press.
 5. Denning, Peter J. Machines, Langueges and
Computation.Prentice Hall.
 6. Hopcroft, John, Ullman, Jeffrey. Introduction to Automatas
Theory, Languages and Computation. Addison-Wesley.
 7. Kelley, Dean. Teoría de Automatas y Lenguajes
Formales.Prentice Hall.
 8. Lewis, Larry., Papadimitrion, Chistos H. Elements of
the Theory of Computation. Prentice Hall.
 9. Rayward-Smith, V.S. A First Course in a Formal
Language Theory. Mc Graw Hill.
 10. Jeffey E.F. Friedl. Mastering Regular Expressions.
O’reilly & Associates, Inc.
 11. Brookshear. Teoría de la Computación, Lenguajes
Formales, Autómatas y Complejidad. Addison Wesley.
 12. Isasi, Martínez y Borrajo. Lenguajes, Gramáticas y
Autómatas. Addison Wesley.
 Evaluación Diagnóstica 0%

 Evaluación Formativa:
◦ Participación en clase 10 %
◦ Tarea 10 %
◦ Exposición 20 %

 Evaluación Sumativa
◦ Examen escrito 60 %

 Total 100%
 1.- ¿Qué es un Traductor?
 2.- ¿Qué es un Compilador?
 3.- ¿Cuál es la diferencia de un software que compila y uno que traduce?
 4.- ¿Qué es un Autómata?
 5.- Menciona los Tipos de Autómatas que conozcas
 6.- ¿Qué es la Complejidad Ciclomática?
 4.- ¿Para qué sirve la Teoría de Conjuntos?
 5.- ¿Qué es un freeware?
 6.- ¿Qué es un chatbot?
 7-10.- Del siguiente conjunto de elementos realiza las operaciones
indicadas:
 A={1,2,3,4,5}
 B={2,4,6}
 C={3,9,5,4}
 A∪B=
 A∩C=
 B∩C=
 A∩B∩C=
 Realizar una investigación sobre los
conceptos elementales de los Analizadores
Léxicos: traductor, compilador y lexemas
léxicos (1 cuartilla manuscrita).
 Autómatas
 Son mecanismos formales que "realizan''
derivaciones en gramáticas formales. La manera
en que las realizan es mediante la noción de
reconocimiento. Una palabra será generada en
una gramática si y sólo si la palabra hace
transitar al autómata correspondiente a sus
condiciones terminales.
 Por esto es que los autómatas son analizadores
léxicos (llamados en inglés " parsers'') de las
gramáticas a que corresponden.
 Un AUTÓMATA es:

 Una máquina (mecanismo) de naturaleza formal (Sólo


existe como un mecanismo matemático) que acepta
una información de entrada (input), la procesa, (La
somete a transformaciones simbólicas que pueden
adoptar la forma de un cálculo o computación) y
genera un resultado o salida (output).

 Definir un autómata equivaldrá a definir el proceso de


transformación del input en un output, lo que
equivale a definir una función cuyos argumentos son
el input y cuyo valor es el output
 TIPOS DE AUTOMATAS

 Hay muchos tipos de autómatas, cada tipo de autómata se asocia


a una potencia computacional determinada, es decir, a una
capacidad dada de resolución de problemas

 De hecho, podemos clasificar los problemas algorítmicamente


solubles asociándolos al tipo de autómata que los resuelve

 Estos tipos se ordenan en una jerarquía de menor a mayor


potencia computacional
◦ Jerarquía de autómatas:
◦ Autómatas finitos (Redes Lógicas)
◦ Autómatas intermedios:
◦ Autómatas de memoria de pila
◦ Autómatas de memoria linealmente limitada
◦ Máquinas de Turing
 Además, podemos clasificar los autómatas:
 Por el tipo de proceso que ejecutan:
◦ Aceptación o reconocimiento
◦ Generación
 Por su tipo de causalidad:
◦ Determinista
◦ No-Determinista
 Por el tipo de su almacenamiento de información:
◦ De tamaño fijo
◦ De tamaño creciente
◦ De tamaño infinito
 Por el tipo de la información que manejan
◦ Discreta
◦ Continua
 Autómatas aceptadores o reconocedores: Resuelven
problemas con respuesta si/no, que se modeliza
normalmente como la identificación de dos estados
finales, uno de aceptación y otro de rechazo

 Autómatas generadores o transductores: Construyen una


respuesta específica (una salida) para el problema
planteado

 Autómatas deterministas: La solución del problema viene


unívocamente determinada por las entradas y los estados
internos del autómata

 Autómatas no-deterministas: La respuesta no está


unívocamente determinada
 Computabilidad
 Es la acción de ser computable, esto es, dado
un determinado problema, existe un
algoritmo representable en una computadora
que puede hallar su solución; entendiéndose
un algoritmo como una secuencia o receta de
pasos finitos que solucionan el problema.
 Complejidad
 Este termino esta ligado únicamente al
algoritmo. Operaciones básicas son las que
constituyen el trabajo realizado para resolver
el problema.
 En ningún momento con la velocidad de la
computadora o con las facilidades de
eficiencia que presenta un lenguaje de
programación, ni con la habilidad del
programador.
 Algoritmo de mayor complejidad ciclomática
que aún se sigue ejecutando

 Definición matemática de algoritmo:


◦ Funciones recursivas (Gödel)
◦ Funciones λ-definibles (Church, Kleene)
◦ Algoritmos de Markov
◦ Teoría de Autómatas (Máquinas de Turing)
 1.2.1. CONJUNTOS

 NOTACIÓN. A los conjuntos se les representa con


letras mayúsculas A, B, C, ... y a los elementos
con letras minúsculas a, b, c, ..., por ejemplo, el
conjunto A cuyos elementos son los números en
el lanzamiento de un dado.
 A = { 1, 2, 3, 4, 5, 6 }
 En base a la cantidad de elementos que tenga un
conjunto, estos se pueden clasificar en conjuntos
finitos e infinitos.
 FINITOS: Tienen un número conocido de elementos, es decir, se
encuentran determinados por su longitud o cantidad. Ej. El
conjunto de días de la semana

 INFINITOS: Son aquellos en los cuales no podemos determinar su


longitud. Ej. El conjunto de los números reales.
Existen dos formas comunes de expresar un conjunto y la
selección de una forma particular de expresión depende de la
conveniencia y de ciertas circunstancias siendo:

 EXTENSIÓN: Cuando se describe a cada uno de los elementos.


 A = {a, e, i, o, u}

 COMPRENSIÓN: Cuando se enuncian las propiedades que deben


tener sus elementos.
 A = {x | x es una vocal}
 IGUALDAD DE CONJUNTOS
 Considerando el conjunto A y el conjunto B, si ambos tienen los mismos
elementos, es decir, si cada elemento que pertenece a A también
pertenece a B y si cada elemento que pertenece a B pertenece también a
A.
 A = B

 SUBCONJUNTO
 Si todo elemento de un conjunto A es también elemento de un conjunto
B, entonces se dice que A es un subconjunto de B. Representado por el
símbolo ⊂.
 A ⊂ B o B ⊂ A

 SUBCONJUNTOS PROPIOS
 Se dice que es un subconjunto propio de A sí todos los elementos de un
conjunto B se encuentran incluidos en él A, denotado por ⊆.
 A ⊆ B o B ⊆ A
 CONJUNTO POTENCIA
 La familia de todos los subconjuntos de un conjunto se
llama conjunto potencia. Si un conjunto es finito con n
elementos, entonces el conjunto potencia tendrá 2n
subconjuntos.
 A = {1, 2 }

 El total de subconjuntos es: 22 = 4 osea {1,2}, {1}, {2}, { }



CONJUNTOS DISJUNTOS
 Son aquellos que no tienen elementos en común, es
decir, cuando no existen elementos que pertenezcan a
ambos.
 F = {1, 2, 3, 4, 5, 6}

 G = {a, b, c, d, e, f}
 PARTICIÓN
 Cuando un conjunto es dividido en
subconjuntos mutuamente excluyentes y
exhaustivos, se le denomina partición.

 OPERACIONES DE CONJUNTOS
◦ Unión
◦ Intersección
◦ Diferencia
◦ Complemento
Producto cartesiano
 UNIÓN DE CONJUNTOS.
 Sean A y B dos subconjuntos cualesquiera del
conjunto universal. La unión de A y B,
expresada por A B, es el conjunto de todos
los elementos que pertenecen a A o
pertenecen a B.
 A B = {x | x A o x B}
 INTERSECCIÓN DE CONJUNTOS.
 Sean A y B dos conjuntos cualesquiera del
conjunto universal. La intersección de A y B,
expresada por A B, es el conjunto de todos
los elementos que pertenecen a A y a B
simultáneamente, es decir:
 A B = {x | x A y x B}
 DIFERENCIA DE CONJUNTOS O
COMPLEMENTO RELATIVO.
 Sean A y B dos conjuntos cualesquiera del
conjunto universal. La diferencia o
complemento relativo de B con respecto a A,
es el conjunto de los elementos que
pertenecen a A, pero no pertenecen a B.
 A - B = {x | x A, x B}

 Nota: A - B ≠ B - A
 COMPLEMENTO ABSOLUTO O SIMPLEMENTE
COMPLEMENTO.
 Sea A un subconjunto cualesquiera del conjunto
universal. El complemento de A es el conjunto de
elementos que perteneciendo al universo y no
pertenecen al conjunto A, denotado por A’ o Ac.
 A’ = {x | x U, x A}
 Nota: A’ = U – A
 PRODUCTO CARTESIANO.
 Sean A y B dos conjuntos, el conjunto
producto o producto cartesiano expresado
por A x B está formado por las parejas
ordenadas (a, b) donde a A y b B.
 A x B = {(a, b) | a A y b B}
 LEYES DE CONJUNTOS
 Ejercicios. Unión
 Ejercicios. Intersección
 EJERCICIOS
 EJERCICIOS
 EJERCICIOS
 Ejercicio. Plano Cartesiano
 Ejercicios. Buscar la unión, intersección y
plano cartesiano de los siguientes conjuntos:

 Si A = {0, 1, 2, 3, 4} y B = {3, 4, 5, 6, 7, 8},

 Si A = {5, 3, 2, 8, 7} y B = {7, 2, 5, 6, 7, 1}

 Si A = {5, 1, 2, 3, 4} y B = {5, 6, 7, 8, 9, 1}
 EJERCICIOS
 EJERCICIOS
 EJERCICIOS
 1.- Sean A ={1,2,3,4,5,φ};B ={2,4,6,8,10}

 2.- Sean A= {2,5,7,3,9,10,12,15} y B=


{2,5,6,3,8,11,13,14}

 Hallar:
 a) A ∪ B
 b) A∩ B
 c) A – B
 d) B - A
 3.- Sea A={a,b,c,g,h,i,k,l,m,n,ñ}; B={x,y,z,g,h,j,k,l,v,w,u} y
C={x,y,z,o,p,q,r,s,t}
 Hallar:
 A∪B=
 A∪C=
 B∪C=
 A∩B=
 A∩C=
 B∩C=
 A–B =
 B–A =
 B–C =
 C–A =
 A–C =
 4.- Sea A = {Pera, durazno, mango, manzana,
melón, sandia, uva} , B = {Uva, papaya, perón,
naranja, sandia, plátano, manzana}
 Hallar:
 A∪B=
 A∩B=
 A–B =
 B–A =
 Sea A= {Chevrolet, Ford, Honda, Toyota, Nissan};
 B= {Jeep, Dodge, Ford, Honda, Mitsubishi}
 C= {Chevrolet, Toyota, Jeep, Dodge, VW}
 Hallar:
 A∪B=
 A∪C=
 B∪C=
 A∩B=
 A∩C=
 B∩C=
 A–B =
 B–A =
 B–C =
 C–A =
 A–C =
 Función. Es una regla que asigna a cada elemento de un
conjunto uno y sólo un elemento de un conjunto B.
 El conjunto A es el dominio de la función, y el conjunto
B es el contra dominio de la función

 Relación. Es una correspondencia entre un primer


conjunto llamado dominio y un segundo conjunto
llamado contra-dominio de modo que a cada elemento
del dominio corresponde uno o más elementos del
contra-dominio.
 Una relación, en general, es cualquier conjunto de pares
ordenados de números reales.
 Una cadena o palabra es una secuencia finita de
símbolos que pertenecen a un alfabeto y
comúnmente se denota con la letra.

 La cadena vacía se denota como y es una secuencia


vacía de símbolos tomados de cualquier alfabeto

 En matemáticas, lógica, y las ciencias


computacionales, un lenguaje formal es un conjunto
de palabras (cadenas de caracteres)
 Cadenas de caracteres. En matemáticas, una cadena de
caracteres, palabra o frase es una secuencia ordenada de
longitud arbitraria (aunque finita) de elementos que
pertenecen a un cierto alfabeto.

 Habitualmente se usan las letras w, x, y,… para referirnos


a cadenas. Por ejemplo, si tenemos un alfabeto:

 Σ = {a, b, c}, una cadena podría ser: x = aacbbcba

 En general, una cadena de caracteres es una sucesión de


caracteres (letras, números o determinados signos).

 Se utilizan en programación, normalmente como un tipo


de dato predefinido, para palabras, frases o cualquier otra
sucesión de caracteres.
 Conjunto por extensión: es una forma muy limitada de
representación
 Ejemplo: Σ = {a, b}, L = {a, b, aa, ab}

 Conjunto por comprensión: La manera de hacerlo es


especificando una propiedad que deben satisfacer las
cadenas del lenguaje.
 Es decir, L = {x ∈ A|Φ(x)}.

 Ejemplo: Σ = {a, b},

 L1= {w ∈ Σ w no tiene aa ni bb como subcadena}

 L2= {w ∈ Σ |w| = 10 ∧ w comienza con a}


 La inducción es uno de los métodos efectivos
más comunes de prueba en las matemáticas.

 La inducción matemática es un método de


demostración que suele ser muy útil en
problemas en los que se trata de probar que
todos los números naturales (1, 2, 3...)
 1. Conceptos Básicos: Lenguajes Formales y
Lenguajes Regulares
 2. Gramáticas
 3. Autómatas Finitos
 4. Autómatas de Pila.
 5. Lenguajes Independientes del Contexto
 6. Máquinas de Turing
 7. Computabilidad
 Dudas
y/o
 Preguntas

También podría gustarte