INF-252 Lenguajes de Programación

Profesor Nelson Guerra Alvarez
INF-252 Page 1

Apunte 1 • Programa asignatura • Introduccion y fundamentos matematicos

INF-252

Page 2

PROGRAMA ASIGNATURA

INF-252

Page 3

Programa Asignatura Objetivo Permitir al alumno conocer elementos de la teoría de computabilidad. Proporcionar al alumno una visión introductoria a lenguajes y técnicas de diseño de compiladores INF-252 Page 4 .

Analizadores léxicos. Maquinas de Turing. Lenguajes regulares. Reconocedores sintácticos. Autómatas finitos.Programa asignatura Contenidos Introducción y fundamentos matemáticos. Expresiones regulares. Gramáticas de contexto libre. INF-252 Page 5 .

Programa asignatura Evaluacion  3 certámenes con una ponderación de 20% el 1°.  Casos con un promedio de 5% el promedio  1 certamen recuperativo para las personas que falten a un certamen y realicen el proceso de justificación correspondiente.  3 tareas con una ponderación de 15% el promedio. Fecha Certámenes Certamen1: Miercoles 16 de Sep Certamen2: Miercoles 28 de Oct Certamen3: Miercoles 25 de Noviembre Recuperativo: Lunes 30 de Noviembre Examen : Lunes 07 de Diciembre Fecha Entrega tareas Tarea1 : Martes 15 de Septiembre Tarea2 : Martes 27 de Octubre Tarea3 : Martes 24 de Noviembre INF-252 Page 6 . 30% el 2° y 30% el 3°.

0. .Tener un promedio de asistencia a clases superior al 70%.Programa asignatura Eximision  Promedio mayor o igual a 5. Las tareas son individuales. INF-252 Page 7 .  En caso de no cumplir con alguna de las condiciones el alumno debe contar con un promedio igual o superior a 5. .Haber rendido los tres Certámenes correspondientes del curso. y no existe justificación alguna para no entregar una tarea. esto es aplicable solo en las siguientes condiciones.0 para eximirse de la asignatura.5 y con notas mayores o igual a 3. En caso de no presentarse a un certamen. .Haber realizado y entregado – en el plazo fijado – todas las tareas y todos los casos que conlleva este curso. haber realizado el proceso de justificación correspondiente y haber rendido el certamen recuperativo.

– Addison-Wesley INF-252 Page 8 . & J. Principies. Compilers. et al. – Addison-Wesley. A. Ullman – Addison-Wesley. Principies of Compiler Design Aho. Languages and Computation Hopcroft. Techniques and Tools Aho. et al.Programa asignatura Bibliografia Introduction to Automata Theory. A. J.

INTRODUCCION Y FUNDAMENTOS MATEMATICOS INF-252 Page 9 .

 Un autómata es un modelo matemático para una máquina de estado finita (FSM sus siglas en inglés). dada una entrada de símbolos. leyendo un símbolo a la vez) una vez la entrada se ha agotado. el autómata rechazó la palabra.  La entrada es leída símbolo por símbolo. La teoría de autómatas esta estrechamente relacionada con la teoría del lenguaje formal ya que los autómatas son clasificados a menudo por la clase de lenguajes formales que son capaces de reconocer.  Dependiendo del estado en el que el autómata para se dice que este a aceptado o rechazado la entrada. el autómata acepta la palabra. Si este termina en el estado "acepta". Si lo hace en el estado "rechaza". "salta" a través de una serie de estados de acuerdo a una función de transición (que puede ser expresada como una tabla). el conjunto de todas las palabras aceptadas por el autómata constituyen el lenguaje aceptado por el mismo. hasta que es "consumida" completamente (piense en esta como una cinta con una palabra escrita en ella. INF-252 Page 10 . Una FSM es una máquina que. la cabeza se mueve a lo largo de la cinta. el autómata se detiene.Introduccion  La teoría de autómatas es una rama de las ciencias de la computación que estudia matemáticamente máquinas abstractas y problemas que éstas son capaces de resolver. que es leída por una cabeza lectora del autómata.

como por ejemplo los compiladores. hasta donde podían computar. INF-252 Page 11 .  Todos estos desarrollos teóricos condujeron a la informática de hoy día. antes de que hubieran computadores. Alan Turing estudio una maquina abstracta que tenia todas las capacidades de los computadores de hoy en día.  En los años cincuenta Noam Chomsky comenzó un estudio formal de las gramáticas.Introduccion  En los años 30. o al menos. Algunos de los conceptos como autómatas finitos y gramáticas son usados en el diseño y construcción de importantes tipos de software. Estas gramáticas tienen un directa relación con los autómatas abstractos y servidores actuales al ser las bases de importantes componentes software.

el cual transforma la información de entrada en unidades lógicas. Gramáticas. para encontrar ocurrencias de palabras. Componente importante de un compilador. Expresiones regulares.Introduccion  II. patrones de cadenas de caracteres que pueden describir lo mismo que un autómata finito. Representación estructural   IV. Generación de analizadores léxicos. dentro de las cuales se encuentran. frases. que son modelos útiles para el diseño de software que procese información. Autómatas finitos Creación de software para diseñar y checkear circuitos digitales.    Hay muchas razones por las cuales se debe estudiar los autómatas. Complejidad   INF-252 Page 12 . Software para escanear y analizar grandes cuerpos de texto como una colección de paginas de un sitio Web. Entender que puede hacer un computador? Entender que no puede hacer un computador? III.

.  Algunas de las técnicas de demostración son: .Fundamentos matemáticos Demostraciones  Cuando queremos resolver un problema. existen varios algoritmos disponibles.Demostración por contradicción . cantidad de memoria utilizada. resulta crucial establecer las propiedades matemáticas de los diferentes algoritmos.Demostración por inducción matemática. Para decidir cuál es el más apropiado para nuestra aplicación concreta. etc. numero de instrucciones.  Esto puede implicar demostrar demostración matemática. tal como el tiempo de ejecución.Demostración por contra ejemplo. estas propiedades mediante una  Las demostraciones son algo que todo informático debe conocer. INF-252 Page 13 .

En otras palabras. para esto se empieza por suponer que S es falso (o. 1. la demostración es de manera indirecta. consiste en comprobar la veracidad de una sentencia. Si el razonamiento es correcto. y 2. a partir de esa suposición.Fundamentos matemáticos Demostración por contradicción  La demostración por contradicción.Existen dos números irracionales x e y. de ahí que también se le llame prueba indirecta.Existen infinitos números primos.  A continuación se describirán dos ejemplos. supongamos que se desea demostrar la sentencia S. ¿Que se puede deducir si. equivalentemente. suponiendo que ¬S es verdadero). demostrando que su negación da lugar a una contradicción. la única explicación posible es que la suposición original es falsa.  Como se puede apreciar. tal que x es racional INF-252 Page 14 . el razonamiento matemático establece que la afirmación es evidentemente falsa?.

pn + 1. En los siguientes ejemplos utilizaremos esta idea para probar la imposibilidad de ciertas clases de soluciones a algunas ecuaciones.. Teorema : Existen infinitos números primos Demostración.. pn  La prueba por contradicción se utiliza cuando uno desea demostrar la imposibilidad de algo. INF-252 Page 15 . contradiciendo nuestra presuposición que todos los números primos están en la lista p1. Uno debe asumir que es posible. p2 . ..Fundamentos matemáticos Demostración por contradicción 1.... y todos se enumeran de esta manera: p1..  Asumamos por el contrario que hay solamente finito muchos números primos. allí resultaría un resto de 1 para cada i = 1. no entre los números primos enumerados. p2. y después alcanzar una contradicción. Entonces.. 2. n.. pn Considere el número q = p1p2... Este número no es divisible por cualquiera de los números primos mencionados porque si dividiéramos pi en q. debemos concluir que q es un número primo.

Por tanto hay que concluir que nuestra suposición era falsa: debe ser posible obtener un numero racional cuando se eleva un numero irracional a una potencia irracional. Teorema: Existen dos números irracionales x e y tal que x yes racional Demostración y  Para realizar la demostración por contradicción supongamos que x es necesariamente irracional siempre que tanto x como y son irracionales. lo cual claramente es falso.Fundamentos matemáticos Demostración por contradicción 1. es bien conocido que 2 es irracional. en cuanto que tanto z como son irracionales. INF-252 Page 16 . z es irracional por cuanto el resultado de elevar un numero irracional ( 2) a una potencia irracional (  2 ). Hagamos que w tenga el valor de z 2 . Pero w=z =  2  =  2 2 2 2    2  2 =  2 =2 2 Hemos llegado a la CONCLUSION de que 2 es irracional.Una vez  mas tenemos que w es irracional por nuestra suposición. Hagamos que z tome el valor de  2  2 Por nuestra suposición.

es decir. Si T es finito existe un entero m que describe la cantidad de elementos de T. |S| + |T| = n+ m = |W| pero eso es falso. luego T es infinito. lo cual es falso por lo tanto podemos concluir que la proposición inicial es falsa. donde m Є |N. |W| = ∞ Además S U T = W y S ∩ T = ø Para esta demostración vamos asumir que T es finito. donde n Є |N.Fundamentos matemáticos Demostración por contradicción 1. Como W es infinito. no existe un entero a Є |N tal que |W| = a. Sea T el complemento de S respecto de W. T es infinito. el cual se escribe |T| = m. Teorema: Sea S un subconjunto finito del conjunto infinito W (universo) . INF-252 Page 17 . SUT=WyS∩T=ø |S| + |T| = n + m que es un entero. ya que |W| = ∞ Hemos llegado a la conclusión que |W| es un valor entero conocido. eso lo anotamos como |S| = n. Demostración Si S es finito existe un entero n que describe la cantidad de elementos de S.

se debe describir dos grandes enfoques opuestos fundamentales en la ciencia: inducción y deducción. La inducción consiste en “inferir una ley general a partir de casos particulares”. INF-252 Page 18 .  Antes de explicar esta metodología.Fundamentos matemáticos Demostración por inducción matemática  La inducción matemática permite demostrar propiedades interesantes de la corrección y eficiencia de los algoritmos. mientras que una deducción es una “inferencia de lo general a lo particular”.

131 y 151. Pero p(40)=1681= 412. Por tanto es natural inferir por inducción que p(n) es primo para todos los valores enteros de n. p(2). 43.Fundamentos matemáticos Demostración por inducción matemática  En general no se puede confiar en el resultado del razonamiento inductivo. 61. 97. p(1). 83. p(10). 53. 71. INF-252 Page 19 . Mientras haya casos que no hayan sido considerados. Como ejemplo. 47. Es fácil verificar que todos estos enteros son números primos. se va encontrando 41. sigue siendo posible que la regla general inducida sea incorrecta. la inducción es incorrecta. …. 113. considérese el polinomio p(n)=n2 + n + 41. Al encontrar 1 valor que no cumple con la proposición. Si calculamos p(0).

Este contraejemplo es: 95800 217519 414560 =422481 4 4 4 4 INF-252 Page 20 . B. C y D tales que A +B +C =D 4 4 4 4 Este fue un teorema inductivo que se mantuvo por mas de 2 siglos (fue creada en 1769).Fundamentos matemáticos Demostración por inducción matemática  Otro ejemplo de inducción incorrecta es la siguiente. Recién en 1987 se encontró el primer contraejemplo. ¿Es posible que la suma de tres cuartas potencias sea una cuarta potencia?. el cual infería que NO existía ninguna combinación de valores para A. C y D que cumpliera la igualdad. Que implicaba números de 7 y 8 cifras. es decir. es posible encontrar cuatro enteros positivos A. B.

una vez descubierta una ley por inducción. movimientos de los planetas).  En matemática una de las técnicas deductivas mas utilizadas tiene la mala fortuna de llamarse inducción matemática INF-252 Page 21 . como por ejemplo. Debido a que existen actividades que no pueden describirse de otra forma que no sea a través de la inducción.Fundamentos matemáticos Demostración por inducción matemática  ¿Entonces. para que utilizar la inducción si es proclive a errores?.  Además. en matemática. las leyes fundamentales del universo (comportamiento de los cometas. se debe comprobar por deducción.

Premisa mayor: El número entero a tiene la propiedad P . . demostrado esto. para todo natural n ≥ no.Fundamentos matemáticos Demostración por inducción matemática  La inducción matemática es un razonamiento que permite demostrar una infinidad de proposiciones. y esto sin condición sobre el entero natural n. (relación de inducción).Conclusión: Todos los números enteros a partir de a tienen la propiedad P. En términos simples. digamos por Pno.Premisa menor: El hecho de que cualquier número entero n tenga la propiedad P implica que n + 1 también la tiene . es decir. .Luego.El razonamiento para demostrar una proposición cualquiera mediante el esquema del razonamiento es el siguiente: Llamemos Pn la proposición al rango n. .La inducción puede empezar por otro término que P0. la inducción matemática consiste en el siguiente razonamiento: . o una proposición que depende de un parámetro n que toma una infinidad de valores enteros. concluimos por inducción. entonces Pn+1 lo es también.  Demostraciones por Inducción . que Pn es cierto para todo natural n.Se demuestra que P0 es cierta (iniciación de la inducción). . Entonces Pn será válido a partir del rango no.Se demuestra que si se asume Pn como cierta. INF-252 Page 22 .

funcion cuadrado (n) . como podría demostrarse esto rigurosamente?.Si n=0 entonces devolver 0 . por definición del algoritmo cuadrado(n)=2*n+ cuadrado(n-1) -1 . por tanto: cuadrado(n)=2*n + (n-1)2 -1= 2*n +(n2 -2*n +1)-1 cuadrado(n)=n2 INF-252 Page 23 . Considérese cualquier entero n>=1. para todos los n >=0. Diremos que el algoritmo tiene éxito sobre el entero n siempre que cuadrado(n)=n2 y que fracasa en caso contrario. se observa que: cuadrado(0)=0.Si no devolver 2*n+ cuadrado(n-1) -1  Si se prueba con unas cuantas entradas pequeñas. cuadrado(2)=4. ¿Pero. parece evidente que cuadrado(n)=n2. cuadrado(1)=1.Fundamentos matemáticos Demostración por inducción matemática Considere el algoritmo siguiente: . cuadrado(4)=16  Por inducción. cuadrado(3)=9.

siempre y cuando n>=1. Además esta claro que tiene éxito en n=0. INF-252 Page 24 .Fundamentos matemáticos Demostración por inducción matemática  Ahora verificaremos el comportamiento para n+1  Si para n. Hemos demostrado que el algoritmo debe tener éxito en n+1 siempre que tenga éxito en n. para n+1 el resultado debería ser (n+1)2 cuadrado(n+1) = 2*(n+1) + cuadrado(n+1-1) -1 cuadrado(n+1) = 2n+2 + cuadrado(n) -1 cuadrado(n+1) = 2n + n2 +1 cuadrado(n+1) = n2 +2n +1. por propiedades de polinomios  (n+1)2  ¿Que hemos conseguido?. el cuadrado(n) = n2.

o sea que Pn+1 es cierto. 6n es un número que acaba en 6.  Esta última escritura prueba que 6n+1 acaba por 6.  Entonces 6n+1 = 6*6n = 6(10a + 6) = 60a + 36 = 60a + 30 + 6 = 10(6a + 3) + 6 = 10c + 6. porque 61 = 6. entero. Demostración  Sea Pn la proposición: "6n acaba en 6". La hipótesis es. con c=6a + 3.Fundamentos matemáticos Demostración por inducción matemática  Teorema: Para todo n ≥ 1. con a entero positivo o igual a cero.  Un entero acaba por 6 si se puede escribir así: 10a + 6.  Es claro que P1 es cierto. pues. y probemos Pn+1. 6n = 10a + 6.  Supongamos que Pn es cierto para un valor de n natural.  Luego Pn es cierto para todo n ≥ 1 INF-252 Page 25 .

Fundamentos matemáticos Demostración por inducción matemática  Teorema: ∑ 1  k+1  =n k n+1 k=1 n Demostracion Debemos comprobar si la afirmacion es cierta para n =1. ya que la sumatoria parte desde k =1 Sea n=1. tenemos que n+1 ∑ 1  k+1  =n 1n+1 n+2  n+1 k=1 k ordenando n+1 n n+2 1 ∑ 1  k+1  = n+1 n+ 2  k=1 k n+1 1 n22n1 ∑ k  k+1  = n+1 n+ 2  k=1 INF-252 Page 26 . entonces 1 ∑ 1  k+1  =1 =1 11 2 k=1 k y la afirmacion es cierta para n=1 Supongamos ahora. que la afirmacion es cierta para un n fijo. y veamos que sucede para n 1 1 Por propiedad de las sumatorias tenemos que n+1 n n+1 1 1 ∑ k  k+1  =∑ k  k+ 1  ∑ 1 k+ 1  k=1 k=1 k=n+1 k Como la afirmacion es cierta para n.

la afirmacion es cierta para todo n∈Ν 2 INF-252 Page 27 . la afirmacion tambien es verdadera para n1 Luego.Fundamentos matemáticos Demostración por inducción matemática n+1  n+1 1 ∑ k k+1 = n+1n+2 k=1 como n es distinto de -1. podemos simplificar y n+1  n+1 1 = ∑ k k+1  n+11 k=1 Asi.

Fundamentos matemáticos Demostración por inducción matemática  Teorema: n ∑  2k−13 =n−13 k k=1 1 n+1 3 ∀ n∈ Ν n+1 k=1 ∑ 2k−1 3k =n3n+23 Demostracion n+1 k=1 n+1 k=1 n+1 k=1 n+1 k=1 n+1 k=1 Se analiza si es verdadera para n=1 ∑  2−131 =1−13113=3 k=1 ∑ 2k−1 3k=n−1 3n+1 3[2 n+1−1 ]3 n+1 ∑ 2k−1 3k=n−1 3n+1 3[2n2−1 ]3n+1 ∑ 2k−1 3k=3n+1 n−12n13 ∑ 2k−1 3k=3n+1 3n3 Por lo tanto la proposicion es verdadera para n 1 = Hipotesis inductiva ∑  2k−13k =h−13 h+1 3 k=1 h Tesis inductiva n+1 k=1 ∑ 2k−1 3 =n+1−13 k n+11 3 ∑ 2k−1 3k =n3n+23 INF-252 Page 28 .

pero al encontrarse un caso en que dicha solución no es la correcta la solución se debe en el mejor de los casos modificar (bug). la hipótesis se desecha.  La demostración por “contra ejemplo” trata de demostrar la falsedad de una hipótesis. Por lo mismo muchas veces es muy complejo poder demostrar la veracidad de una hipótesis. Una hipótesis para ser verdadera y pasar a ser teorema debe cumplirse para todos los casos que enmarcan el ámbito de la hipótesis. al contar con un solo caso que no cumpla con dicha hipótesis. y en el peor de los casos desechar completamente.  Se puede hacer una analogía a los programas. INF-252 Page 29 .Fundamentos matemáticos Demostración por el contra ejemplo  Las técnicas anteriores se utilizan para tratar de demostrar la veracidad de un teorema (hipótesis). se puede encontrar e implementar una solución general a dichos casos. al existir programas que necesitan resolver una serie de casos. por lo que es mas fácil tratar de encontrar un caso en el que la hipótesis no se cumpla.

para ese caso el resultado es a mod b = b mod a = 0 Encontramos el caso en que no se cumple la proposición. falta el caso en que a = b. osea a mod b = b mod a es imposible. Proposición: No existe un para de valores enteros a y b tal que a mod b = b mod a  La demostración puede ser la siguiente Asumamos que a < b.Fundamentos matemáticos Demostración por el contra ejemplo 1. Proposición: Todos los números primos son impares. Contraejemplo: El 2 es primo y es par. INF-252 Page 30 . a-1]. por lo tanto dicha proposición es falsa. Por lo anterior. y como a<b. dado que la definición del operador mod es Dado lo anterior el resultado de b mod a es un valor entre [0. luego a mod b = a.  Sin embargo. b mod a < a mod b. 4. dicha hipótesis no llegara a ser un teorema ya que existe al menos un caso en el cual la proposición no se cumple.

∑ i3 = i=0 ∑  n 2 i i= 0 INF-252 Page 31 . 3)Para todo entero n >= 8. 4) ∀ n ≥0. n ∈Ν ∑ i 2=n n+12n1 6 i= 1 n ∀ x ≥ 4. ∑ i= i=0 n n nn+1 2 ∀ n ∈ Ν 0 . n se puede escribir como suma de 3s y 5s. x∈Ν 2x≥ x2 ∀ n ∈ Ν 0 .Ejercicios 1)Demostrar las veracidad o falsedad de las proposiciones. 2)Para todo entero n >= 8. n se puede escribir como suma de 3s y 8s.

Sign up to vote on this title
UsefulNot useful