UNIVERSIDAD LATINA UNILA I ESTUDIO DE LOS LENGUAJES

  • Slides: 26
Download presentation
UNIVERSIDAD LATINA (UNILA) I. - ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN. LE, EI, Profesor

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

Alfabetos y lenguajes Autómatas y lenguajes formales. • Autómata generador de cadena del lenguaje.

Alfabetos y lenguajes Autó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.

Definición de alfabeto • Un alfabeto se puede definir como el conjunto no vacío

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.

Practica 01. - de alfabeto • Desarrolla un programa en C, C++ que escriba

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

Definición de palabra • Una secuencia finita de símbolos de un determinado alfabeto se

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++.

Definición de palabra Palabra reservada: PALABRAS CLAVE void main int short int unsigned int

Definición de palabra Palabra reservada: PALABRAS CLAVE void main int short int unsigned int long int unsigned long float double long double char NULL __abstract 2 __assume __cdecl __event __finally __hook 3 __if_not_exists __int 32 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

Definición de cadena vacía • Se dice que una cadena es vacía cuando la

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.

Definición de lenguaje • Se puede definir un lenguaje como un conjunto de cadenas

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

Gramáticas formales • Son estructuras que tienen la habilidad de generar las palabras que

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.

Definición de lenguaje formal • Un lenguaje formal, sea finito o infinito, es un

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).

Lenguajes regulares y expresiones regulares Sea S un alfabeto. El conjunto de los lenguajes

Lenguajes regulares y expresiones regulares Sea S un alfabeto. El conjunto de los lenguajes regulares sobre S se define recursivamente como sigue: 1. es un lenguaje regular 2. {e} es un lenguaje regular 3. Para todo a Î S {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 S es regular.

ejemplo Por ejemplo. El lenguaje de todas las cadenas sobre {a, b, c} que

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}*)*

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

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*)*

Expresiones regulares Los operadores tienen precedencia (*, · , È). Entonces, una expresión regular

Expresiones regulares Los operadores tienen precedencia (*, · , È). Entonces, una expresión regular sobre el alfabeto S, es 1. y e son expresiones regulares. 2. a es una expresión regular para todo a Î S. 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.

Jerarquización de gramáticas • Las gramáticas pueden ser de distintos tipos de gramáticas, de

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.

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

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.

Lenguajes independientes del contexto

Lenguajes independientes del contexto

Lenguajes independientes del contexto. - Ejemplos

Lenguajes independientes del contexto. - Ejemplos

Modelo • Un modelo es una especificación, algunas veces en término de un lenguaje

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.

Máquina de Turing Se puede ver como una colección de celdas de almacenamiento que

Máquina de Turing Se 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)

 • Alan Turing 1936. - Fue un matemático, informático teórico, inglés. Uno de

• 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)

MAQUINA DE TURING (MT) • Es modelo formal de un computador • Es un

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

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

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).

DEFINICIÓN FORMAL

DEFINICIÓN FORMAL

Resolubilidad • Los problemas de decisión si, no son resolubles si existe un algoritmo

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 ?

Complejidad computacional. • Se mide por la cantidad de espacio y tiempo que consume.

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.