le, ei, profesor ramón castro liceaga universidad latina (unila) i.- estudio de los lenguajes de...

26
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.

Upload: soledad-blanco-cabrera

Post on 24-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

LE, EI, Profesor Ramón Castro Liceaga

UNIVERSIDAD LATINA (UNILA)

I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.

Page 2: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Alfabetos y lenguajesAutómatas y lenguajes formales.

• Autómata generador de cadena del lenguaje. • Son mecanismos formales que realizan derivaciones

en gramáticas formales, se realizan mediante la noción del reconocimiento.

• Una palabra es generada en una gramática si y solo si la palabra hace transitar al autómata correspondiente a sus condiciones terminales.

• Los lenguajes y las gramáticas computacionales se pueden ver como una jerarquía que va de lo más simple a lo más complejo.

Page 3: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de alfabeto

• Un alfabeto se puede definir como el conjunto no vacío y finito de todos los símbolos válidos o posibles para una aplicación. Por tanto, en el campo de los autómatas, un alfabeto está formado por todos los caracteres que utiliza para definir sus entradas, salidas y estados.

• El abecedario español se compone de las siguientes 27 letras: a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z.

• Los nombres de las letras ll, v y y son elle, uve y ye respectivamente. Cabe destacar que la ll no se considera parte del alfabeto, dado que surge de la combinación de dos letras.

Page 4: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Practica 01.- de alfabeto

• Desarrolla un programa en C,C++ que escriba el abecedario con su mayúscula y minuscula en un fondo rojo.

Page 5: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de palabra

• Una secuencia finita de símbolos de un determinado alfabeto se conoce como palabra sobre dicho alfabeto.

• Por ejemplo las palabras clave y reservadas y símbolos especiales del lenguaje C o C++.

Page 6: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de palabra

SIMBOLOS ESPECIALES

•\n Nueva línea •\t Tabulación horizontal•\b Espacio atrás•\r Retorno de carro•\f Salto de página•\\ Barra invertida•\' Comilla simple •\" Comilla doble

Palabra reservada:

voidmainintshort intunsigned int long int unsigned longfloatdoublelong doublecharNULL

PALABRAS CLAVE

__abstract 2 __assume __cdecl __event __finally __hook 3 __if_not_exists __int32

Page 7: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de cadena vacía

• Se dice que una cadena es vacía cuando la longitud del conjunto de caracteres que utiliza es igual a cero, es decir, es una cadena que no tiene caracteres asociados.

Page 8: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de lenguaje

• Se puede definir un lenguaje como un conjunto de cadenas que obedecen a un alfabeto fijado.

Page 9: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Gramáticas formales

• Son estructuras que tienen la habilidad de generar las palabras que forman un lenguaje formal.

• Una gramática formal es, básicamente, un conjunto de producciones, es decir: reglas de re-escritura que se aplican para obtener cada una de las palabras del lenguaje formal que la gramática formal en cuestión genera. Una gramática formal genera un determinado lenguaje formal y, obviamente, sus sub lenguajes. Pero lo importante es el lenguaje formal total que genera.

Page 10: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Definición de lenguaje formal

• Un lenguaje formal, sea finito o infinito, es un conjunto de palabras con una connotación sintáctica, sin semántica (sigmatica).

Page 11: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Lenguajes regulares y expresiones regulares

Sea un alfabeto. El conjunto de los lenguajes regulares sobre se define recursivamente como sigue:

1. es un lenguaje regular

2. {} es un lenguaje regular

3. Para todo a {a} es un lenguaje regular

4. Si A y B son lenguajes regulares, entonces A B, A · B , A* son lenguajes regulares

5. Ningún otro lenguaje sobre es regular.

Page 12: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

ejemplo

Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c} que no tienen ninguna subcadena ac es un lenguaje regular, y puede expresarse por

 

A = {c}* ({a} {b}{c}*)*

Page 13: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Simplificación

Se puede simplificar la notación mediante el uso de expresiones regulares. Las equivalencias son:

 

a b denota {a} {b}

ab denota {ab}

a* denota {a}*

a+ denota {a}+

Ejemplo: A = {c}* ({a} {b}{c}*)* = c* (a bc*)*

Page 14: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Expresiones regulares

Los operadores tienen precedencia (*, · , ). Entonces, una expresión regular sobre el alfabeto , es

 

1. y son expresiones regulares.

2. a es una expresión regular para todo a .

3. Si r y s son expresiones regulares, entonces r s, r · s , r* también lo son.

4. Ninguna otra secuencia de símbolos es una expresión regular.

Page 15: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Jerarquización de gramáticas

• Las gramáticas pueden ser de distintos tipos de gramáticas, de acuerdo con las características que rigen la formulación de reglas de producción válidas, todos los cuales parten de las gramáticas arbitrarias que son aquellas que consideran la existencia infinita de cadenas formadas por los símbolos del lenguaje.

Page 16: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Jerarquización de gramáticas• Esta jerarquización puede ser:• - Gramáticas sensibles al contexto. Este tipo de gramáticas

tiene la característica de que el lado derecho de la regla de producción siempre debe ser igual o mayor que el lado izquierdo.

• - Gramáticas independientes del contexto. Es aquella que cumple con las propiedades de la gramática sensible al contexto y que, además, tiene la característica de que el lado izquierdo de la regla de producción sólo debe tener un elemento y éste no puede ser un elemento terminal.

• - Gramáticas regulares. Es aquella que cumple con las características de la gramática independiente del contexto y, además, se restringe a través de las reglas de producción para generar sólo reglas de los dos tipos anteriores.

Page 17: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Lenguajes independientes del contexto

Page 18: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Lenguajes independientes del contexto .- Ejemplos

Page 19: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Modelo

• Un modelo es una especificación, algunas veces en término de un lenguaje matemático, de los pasos necesarios para reproducir un subconjunto determinado de la realidad previamente descrita. Un modelo parte siempre de la descripción de lo que se representa.

Page 20: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Máquina de TuringSe puede ver como una colección de celdas de almacenamiento que se extienden infinitamente en ambas direcciones (derecha/izquierda) como una cinta infinita. • Cada celda es capaz de almacenar un único símbolo• Tiene capacidad de almacenamiento ilimitado• Los contenidos de las celdas se pueden acceder en cualquier orden• Tiene una cabeza de lectura/escritura que puede moverse sobre la cinta (leer y escribir un símbolo) La Maquina de Turing es un aceptador de lenguajes (Modelo clásico de una computadora)

Page 21: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

• Alan Turing

1936.- Fue un matemático, informático teórico, inglés.

Uno de los padres de la Ciencia de la computación siendo el precursor de la informática moderna. Proporcionó una influyente formalización de los conceptos de algoritmo y computación: la máquina de Turing.

Formuló la Tesis de Church-Turing, la cual postula que cualquier modelo computacional existente tiene las mismas capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing (MT = algoritmos + modelo computacional)

Page 22: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

MAQUINA DE TURING (MT)

•Es modelo formal de un computador

•Es un modelo computacional que realiza una lectura/escritura de manera automática sobre una entrada llamada cinta, generando una salida en esta misma.

CINTA => L/E => CINTA

•Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un equipo digital sea capaz de realizar

Page 23: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

ELEMENTOS DE LA MAQUINA DE TURING (MT) Este modelo está conformado por:

•un alfabeto (conjunto de letras) de entrada y uno de salida

•un símbolo especial llamado blanco (normalmente b, Δ o 0)

•un conjunto de estados finitos

•un conjunto de transiciones entre dichos estados (inicio / fin).

Page 24: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

DEFINICIÓN FORMAL

Page 25: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Resolubilidad

• Los problemas de decisión si, no son resolubles si existe un algoritmo que sea capaz de responder si o no a cada uno de los casos.

• Si el algoritmo no existe, se dice que el problema es irresoluble.

• El problema irresoluble mas conocido es el problema de parada para una Máquina de Túring donde

• Sea M una máquina de Turing arbitraria con un alfabeto de entrada Σ. Sea w Є Σ. Parará M con la cadena w como cadena de entrada ?

Page 26: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN

Complejidad computacional.

• Se mide por la cantidad de espacio y tiempo que consume. La computación eficiente requiere cadenas de algún lenguaje y puede depender del tamaño o longitud de la cadena de entrada.