Está en la página 1de 26

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.
• 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 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 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 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
SIMBOLOS ESPECIALES

void __abstract 2
•\n Nueva línea
main __assume •\t Tabulación horizontal
int __cdecl •\b Espacio atrás
short int
__event •\r Retorno de carro
unsigned int
__finally •\f Salto de página
long int
__hook 3 •\\ Barra invertida
unsigned long
__if_not_exists •\' Comilla simple
float
__int32 •\" Comilla doble
double
long double
char
NULL
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 que obedecen a un
alfabeto fijado.
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
conjunto de palabras con una connotación
sintáctica, sin semántica (sigmatica).
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.
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 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 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.
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. 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 .- Ejemplos
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 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 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 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 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
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. La computación eficiente
requiere cadenas de algún lenguaje y puede
depender del tamaño o longitud de la cadena
de entrada.

También podría gustarte