Subido por Rogerio Orlando Beltrán Castro

01 CLASE

Anuncio
Informática Teórica
Semana 01
Rogerio Orlando Beltrán Castro
Informática Teórica
COMPARTIMOS NUESTROS
RETOS Y LOGROS ANTE LA
SOCIEDAD Y LA
COMUNIDAD ACADÉMICA
Resultados de Aprendizaje
Informática Teórica
• RA1:Desarrolla estrategias, procesos, sistemas,
componentes, proyectos o servicios informáticos,
fundamentados en las ciencias de la
computación y la aplicación de buenas prácticas
que permitan la solución innovadora y sostenible
de problemas complejos.
• RA2: Desempeñar de forma ética, efectiva,
colaborativa y asertiva actividades que conlleven
la planificación de tareas, la toma de decisiones,
la comunicación y el cumplimiento de objetivos
en los proyectos en los cuales participa.
Agenda
1. PRESENTACIÓNDELDOCENTE.
2. PRESENTACIÓNDE LAASIGNATURA
3. MICROCURRICULO
4. CRONOGRAMA
5. ORGANIZACIÓN DE LA CLASE
6. LABORATORIOS
7. TEMA 01
8. TEMA 02
PRESENTACIÓN DEL DOCENTE.
►
ROGERIO ORLANDO BELTRAN CASTRO
►
INGENIERO DE SISTEMAS. UIS.
►
ESPECIALISTA EN TECNOLOGIAS AVANZADAS DE DESARROLLO DE
SOFTWARE. UNAB
►
ESPECIALISTA EN TELECOMUNCIACIONES. UPB
►
CANDIDATO A MAGISTER EN DESARROLLO DE SOFTWARE. UNAB
►
CANDIDATO A MAGISTER EN GESTIÓN EDUCATIVA. IUV
►
DESARROLLADOR DE SOFTWARE DESDE AL AÑO 1996
►
DOCENTE DESDE EL AÑO 2004
Título de la presentación
5
PRESENTACIÓN DE LAASIGNATURA
►
La asignatura presenta al estudiante los aspectos formales de la programación, en particular
los procesos de análisis léxico y sintáctico comunes a todos los lenguajes de programación.
Además analiza los modelos de máquinas abstractas que permiten la formalización de
cualquier algoritmo, desde los autómatas finitos, que son herramientas muy útiles para resolver
ciertos problemas de análisis o sistemas de eventos discretos, hasta la máquina de Turing,
equivalente a cualquier otro sistema computacional y capaz de resolver cualquier función
recursiva. El conocimiento de estos aspectos permite al estudiante conocer la esencia de los
lenguajes de programación y la base de la construcción de compiladores e intérpretes.
También es básico para c omprender conceptos tan importantes como recursividad,
computabilidad ocomplejidad computacional.
Título de la presentación
6
MICROCURRICULO
PROGRAMA ACADÉMICO
Ingeniería Informática
DENOMINACIÓN DE LA ASIGNATURA
Informática Teórica
SEMESTRE
Optativa
TIPO DE ASIGNATURA
CRÉDITOS/HORAS
No. de
créditos
Horas con
acompañamiento
docente
Horas de
trabajo
independiente
Horas
totales
3
36
108
144
Teórica
Teórico
–
Práctica
COMPONENTE FORMATIVO DE LA ASIGNATURA
Componente de formación especifica
X
Práctica
MICROCURRICULO
DESCRIPCIÓN DE LA ASIGNATURA
En la asignatura de Informática Teórica se busca que el alumno se inicie en
cuestiones como la definición y programación de una máquina de Turing, los
lenguajes recursivos, lenguajes recursivamente numerables y no
recursivamente enumerables, los problemas indecidibles y los problemas
intratables.
Es una asignatura de marcado carácter teórico, pero fundamental en la
formación de un ingeniero informático, ya que el estudio de fondo de las
máquinas de Turing (que pueden resolver el mismo tipo de problemas que
cualquier computador) tiene interés por sí solo, pero además esta disciplina
tiene aplicaciones evidentes en el campo de los traductores de lenguaje, en
los que resulta necesario saber si una cadena dada pertenece a un lenguaje
determinado o no.
La cuestión de los problemas intratables también es esencial para un
ingeniero informático, ya que tienen aplicaciones en campos como la
logística, criptografía, gestión de redes, gestión de transporte, etc. También
se estudian otros problemas de la Teoría de la Complejidad Computacional y
se termina el curso con una introducción a las redes neuronales artificiales.
RESULTADOS DE APRENDIZAJE
1. Desarrolla estrategías, procesos, sistemas, componentes, proyectos o
servicios informáticos, fundamentados en las ciencias de la
computación y la aplicación de buenas prácticas que permitan la
solución innovadora y sostenible de problemas complejos.
2. Desempeñar de forma ética, efectiva, colaborativa y asertiva
actividades que conlleven la planificación de tareas, la toma de
decisiones, la comunicación y el cumplimiento de objetivos en los
proyectos en los cuales participa.
CRONOGRAMA
CRONOGRAMA
ORGANIZACIÓN DE LA CLASE
1. Presentación del Tema
2. Ejemplos.
3. Ejercicios.
Título de la presentación
11
LABORATORIOS
Título de la presentación
12
12
Laboratorio. Máquinas de Turing con JFLAP
Abril 1 2024
Preparación del laboratorio
Para preparar este laboratorio, simplemente descarga JFLAP en tu equipo (PC). Consulta más información sobre la herramienta en el
apartado A fondo del tema. Además, revisa los temas anteriores para asegurarte de que tienes frescos los conceptos relacionados con la
máquina de Turing.
Descripción
Se te facilitará la descripción de una serie de lenguajes recursivamente enumerables. Las tareas que se deben realizar con JFLAP serán las
siguientes:
1.
Diseñar máquinas de Turing que los reconozcan.
2.
Hacer una lista de cinco palabras que sean aceptadas y otras cinco que sean rechazas por la máquina de Turing.
Ejercicios:
1.
Diseñar una máquina de Turing que acepta el lenguaje
2.
Diseñar una máquina de Turing que calcula el numero consecutivo de un numero dado en binario
Título de la presentación
13
Ejercicios de máquinas de Turing
Abril 8 2024
Descripción
Resuelve los problemas:
1. Dibujar una máquina de Turing de una sola cinta que solo quede en estado de
aceptación si el número de unos es par teniendo como alfabeto de entrada Σ = {0, 1} y
como alfabeto de cinta Γ = {0, 1, □}
2. Dibujar una máquina de Turing de una sola cinta cuyo alfabeto de entrada sea
Σ = {0, 1}, cuyo alfabeto de cinta sea Γ = {0, 1, □} y que solo acepte cadenas de unos
seguidos de ceros, excluyendo la cadena vacía.
Título de la presentación
14
TEMA 1. Conceptos matemáticos utilizados
Título de la presentación
15
15
Introducción a la lógica proposicional
Muchos de los conceptosde lógica proposicional que se presentanen este capítulo te resultaránfamiliares ya que son necesariospara evaluar
expresioneslógicas.
La lógica proposicional incluyereglas que permiten construirfórmulas lamadas proposiciones, que se construyen
sobre el siguienteconjuntode símbolos:
Átomos o símbolos proposicionales para representarvariableslógicas.
Conectivas, o conectivas lógicas, (también denominadasoperadorlógico o conectoreslógicos) para representar
la conjunción, la disyunción,la negación,la implicación,la equivalencia y los paréntesis.
Dos constantes, V y F, que representan los valores de verdadero y falso. A continuación, veremos más
definicionesimportantes:
►
Una teoría es un conjuntode cláusulasbien formadas que deben ser verdaderassimultáneamente.
►
Una tabla de verdad combina todos los valoresposibles de los átomos de una fórmula lógica y muestralos valoresque toma la fórmula en
cada caso.
Título de la presentación
16
Teoría de relaciones
Cuando se tiene un sistema, puede ser muy interesante estudiar cómo se relacionan los elementos entre sí.
Las relaciones pueden ser de equivalencia o de orden, por ejemplo. Formalmente,una relación se define
como:
𝑅={(𝑎,𝑏):𝑎𝑅𝑏}
Es decir, se define considerando todos los pares de elementos que están relacionados. Una relación es reflexiva
si ∀ 𝑎 ∈ 𝐴,𝑎𝑅𝑎
Una relación es simétrica ∀ 𝑎,𝑏 ∈ 𝐴,𝑎𝑅𝑏⇒𝑏𝑅𝑎
Una relación R es transitiva si ∀ 𝑎,𝑏,𝑐 ∈ 𝐴,𝑎𝑅𝑏 𝑦 𝑏𝑅𝑐⇒𝑎𝑅𝑐
Una relación es simétrica.
Si una relación es reflexiva, simétrica y transitiva, entonces es una relación de equivalencia.
Título de la presentación
17
Conjuntos numerables y no numerables
George Cantor demostró que existen distintos tipos de infinito, es decir, que hay infinitos
mucho más grandes que otros.
El infinito con menor cantidad de elementos es el infinito numerable, es decir, el infinito
sobre el que puede establecerse una correspondencia uno a uno con los números naturales.
Ejemplos de conjuntos de cardinal numerable son los números naturales y los números
racionales.
Sin embargo, existen conjuntos como los números reales que tienen muchos más
elementos de los que pueden ser descritos por los números naturales. Estos conjuntos se
dice que tienen una cantidad no numerable de elementos
Título de la presentación
18
El concepto de conjunto es fundamental en todas las ramas de la
matemática. Intuitivamente, un conjunto es una lista, colección o clase de objetos
bien definidos, objetos que pueden ser: número, personas, letras, ríos, etc.
Estos objetos se llaman elementos o miembros del conjunto.
EJEMPLOS DE CONJUNTOS:
▪ N: conjunto de los números naturales.
▪ Z: conjunto de los números enteros.
▪ Q: conjunto de los números racionales.
▪ R: conjunto de los números reales.
▪ C: conjunto de los números complejos.
18
Es usual denotar los conjuntos con letras mayúsculas.
A, B, X, Y, …
Los elementos de los conjuntos se representan con letras minúsculas.
a, b ,x , y, …
Al definir un conjunto por la efectiva enumeración de sus elementos, por
ejemplo, el conjunto A que tiene por elementos a los números 1, 2, 3 y 4, se escribe:
A ={ 1,2,3,4}
4
1
3
2
A
C
Separando los elementos por comas y encerrándolos entre llaves {}. Esta
forma es la llamada forma tabular de un conjunto. Pero si se define un conjunto
enunciando propiedades que deben tener sus elementos como, por ejemplo, el
conjunto B, conjunto de todos los números pares, entonces se emplea una letra, por
lo general “x”, para representar un elemento cualquiera y se escribe:
B={x / x es par}
Lo que se lee” B es el conjunto de
todos los números x tales que x es
21
par”. Se dice que esta es la forma definir por comprensión o constructiva de un
conjunto. Téngase en cuenta que la barra vertical “/” se lee tales que.
.
signo
Para indicar que un elemento pertenece a un conjunto, se escribe el


Así: a
{vocales} quiere decir que a es un elemento del conjunto
de las vocales. Para indicar que un conjunto no pertenece a un conjunto, se
escribe el signo
, pero cruzado con una raya
.Al escribir z
{vocales}, se indica que la letra z no pertenece al conjunto de las vocales.


Representación gráfica:
u
a
o
e
i
Conjunto de las vocales
22
Z
A
C
Los conjuntos pueden ser finitos o infinitos. Intuitivamente un
conjunto puede ser finito si consta de un cierto numero de elementos distintos,
es decir, si al contar los diferentes elementos del conjunto el proceso del
contar puede acabar. Si no, el conjunto es infinito.
EJEMPLOS:
Si M es el conjunto de los días de la semana, entonces M es finito.
Si N={2,4,6,8,...}, entonces N es
infinito.
23
Si P={x/x es un río de la tierra}, entonces P es también finito aunque
sea difícil de contar los ríos del mundo se puede hacer
A
C
POR EXTENSIÓN: para determinar un conjunto por extensión se citan
o escriben todos y cada uno de sus elementos, separándolos por comas y
encerrándolos entre dos llaves. Por ejemplo, el conjunto de las vocales será:
A={a,e,i,o,u}
POR COMPRENSIÓN: para determinar un conjunto por comprensión
se indican todas las propiedades comunes a los elementos del conjunto, de
forma que todo elemento que este en el conjunto posee dichas propiedades y
24
todo elemento que posee esas propiedades
esta en el conjunto. El mismo
ejemplo anterior escrito por comprensión sería:
A={vocales}
Para un mejor entendimiento del concepto de conjunto, así como
de las relaciones entre conjuntos, se recurre a representar gráficas que
permiten adquirir, con una mirada, una idea general del conjunto y de sus
propiedades. Los más utilizados son los denominados diagrama de Venn.
Estos gráficos son una representación de los elementos del conjunto
mediante puntos situados en el interior de una línea cerrada.
a
e
25
i
u
o
Diagrama de Venn representativo del
conjunto de las vocales.
Ejemplo:
Sea A={divisores del número 12} (definido por comprensión) = {1,2,3,
4 ,6,12} (definido por extensión)
1
2
4
3
12
6

26
Que 1
A indica que 1 es un divisor de 12. Si 5
es divisor de 12
Aquiere decir que el 5 no
A
C
El conjunto A es igual al conjunto B si ambos tienen los mismos
elementos, es decir, si cada elemento que pertenece a A pertenece también a B y
si cada elemento que pertenece a B pertenece también a A. Se denota la igualdad
de los conjuntos A y B por:
A=B
EJEMPLO:
27
Sean A={1,2,3,4} y B={3,1,4,2}.
Entonces A=B, es decir,
{1,2,3,4}={3,1,4,2} pues cada uno de los elementos 1,2,3 y 4 de A pertenece a B y
cada uno de los elementos 3,1,4 y 2 de B pertenecen a A. Obsérvese, por tanto,
que un conjunto no cambia al reordenar sus elementos.
A
C
El conjunto vacío es un conjunto que carece de elementos. Este conjunto
se suele llamar conjunto nulo. Aquí diremos de un conjunto semejante que es vacío
y se le denota por el símbolo:
“Φ” que significa vacío.
EJEMPLO:
Si A es el conjunto de personas vivientes mayores de 200 años. A es
vacío según las estadísticas conocidas.
28
Sea B={x / x²=4, x es impar}.B
es entonces un conjunto vacío.
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. Más claro: A es un subconjunto de
B si xεAimplica xεB. Se denota esta relación escribiendo:
B
A
Se puede leer “A esta contenido en B”
Su representación gráfica sería:
29
B
A
A B
EJEMPLOS:
El conjunto C={1,3,5} es un subconjunto del D={5,4,3,2,1}, ya que todo
número 1,3 y 5 de C pertenece a D
El conjunto E={2,4,6} es un subconjunto del F={6,2,4}, pues cada número
2,4, y 6 que pertenece a E pertenece también a F. Obsérvese en particular que
E=F. De la misma manera se puede mostrar que todo conjunto es subconjunto de si
mismo.
Dado dos conjuntos M y N, siendo M={a,e,i} y N={a,e,i,o,u}.Entonces se
dice que M
N. Ya que: M está en N

A
C
Puesto que todo conjunto A es un subconjunto de si mismo, se dirá que
B es un subconjunto propio de A si, en primer lugar, B es un subconjunto de A y,
en segundo lugar, B no es igual a A. Más brevemente, B es un subconjunto propio
de A si:
B A y B =A
En algunos libros “B es un subconjunto de A” se denota por:
BA
Y “B es un subconjunto propio
de A” se denota por:
31
BA
Operaciones con conjuntos: unión, intersección,
Diferencia y complemento
La union de A y B es el conjunto de todos los elementos que están
en A o en B (o en ambos).
A B = {x | x A o x B}
Podemos representar la unión A B por la siguiente diagrama de Venn;
La intersección de A y B es el conjunto de todos los
elementos que están en A y también en B.
A B = {x | x A y x B}
Podemos representar la intersección A B por la
siguiente diagrama de Venn;
33
La Diferencia entre dos conjuntos A y B es el
conjunto formado por todos los elementos que
pertenecen a A y no pertenecen a B.
Se denota por A – B
A - B = {x : x ∈ A 𝖠 x ∈/ B}
El conjunto A - B se lee “A menos B” y recibe también el nombre de complementario
relativo del conjunto B respecto del conjunto A.
por la siguiente diagrama de Venn;
Si A es un subconjunto de S, entonces A' es
el complemento de A en S, el conjunto de todos los
elementos de S que no están en A.
Podemos representar el complemento A' por la siguiente
diagrama de Venn:
35
36
37
Ejemplo Visual
El doctor Pérez observa las fichas de 10 pacientes y analiza sus síntomas
Los pacientes que tienen fiebre son:.....................F = {a, b, e, f, g, i, j}
Los pacientes que tienen cólicos son:.....................C = {b, c, d, f, g, h, j}
Los pacientes que tienen mareos son:.....................M = {a, e}
Ejercicios
Observemos en un diagrama de conjuntos los pacientes que tienen
• fiebre y cólicos,
• fiebre y mareos,
• cólicos y mareos
39
Ejercicios
INTERSECCIÓN DE CONJUNTOS
Se llama intersección de dos conjuntos A y B y se escribe AB , al conjunto
formado por todos los elementos que pertenecen a la vez al conjunto A y B.
40
Ejemplo Visual
UNIÓN DE CONJUNTOS
Se llama unión de dos conjuntos A y B y se escribe AB , al conjunto formado
por todos los elementos que pertenecen al conjunto A o al conjunto B..
41
Ejemplo Visual
DIFERENCIA DE CONJUNTOS
Se llama diferencia de dos conjuntos A y B (A menos B) y se escribe A - B , al conjunto formado por todos
los elementos que pertenecen a la vez al conjunto A pero no pertenecen al conjunto B.
42
TEMA 2. Lenguajes y gramáticas formales.
Título de la presentación
43
43
Introducción
La informática teórica trabaja con tres conceptos esenciales que están relacionados: gramáticas, lenguajes y máquinas o
autómatas. El diagrama de la Figura 2.2.1 describe:
Título de la presentación
44
Introducción
A pesar de la estrecha relación de los conceptos, el estudio de gramáticas y lenguajes tiene
orígenes distintos. El estudio de lenguajes procede de del lingüista Noam Chomsky, quién
clasificó las gramáticas en 4 grupos, en función de sus restricciones: G0, G1, G2 y G3.
La teoría de autómatas procede del campo de la ingeniería y posteriormente se descubrió su
relación con la teoría de lenguajes formales. En esta asignatura se van a estudiar Máquinas
de Turing, generan el mismo lenguaje que una gramática G0. La característica fundamental
de estas máquinas es que pueden describir cualquier suceso computable, que es justo lo
que se necesita que haga un computador.
Título de la presentación
45
Lenguajes y gramáticas formales
Alfabeto: conjunto no vacío y finito de símbolos.
Palabra o cadena: secuencia finita de símbolos de un alfabeto.
Cadena vacía: es una cadena que no contiene ningún símbolo.
Concatenación: si x e y son palabras, la concatenaciónxy es una palabra formada por los símbolos de x seguidos por los
símbolos de y.
Potencia:la potencia i-ésima de un lenguaje L es la concatenacióndel lenguaje i veces.
Clausura positiva: es la unión de todas las potencias del lenguaje menos la potencia 0. Si L es un lenguaje, su clausura
positiva es
Clausura: es la unión de todas las potencias del lenguaje, incluyendo la potencia 0.
Producción:es un par (x,y) ordenado de palabras. Si x forma parte de la cadena z, se puede sustituir x por y. Así es posible
transformar unas palabras en otras.
Derivación: es la aplicación de una secuencia de producciones a una palabra.
Título de la presentación
46
Gramáticas formales
Gramática formal. Una gramática formal G se define como una cuádrupla o 4-tupla:
𝐺=(Σ𝑇,Σ𝑁,𝑆,𝑃) Donde:
Σ𝑇 es el alfabeto de símbolos terminales.
Σ𝑁 es el alfabeto de símbolos no terminales.
S es un símbolo denominado axioma de la gramática.
P es un conjunto finito de producciones.
Forma sentencial:x es forma sentencial si existe una derivación desde el axioma hasta esa palabra.
Lenguaje generado por una gramática (𝐿(𝐺)): es el conjunto de todas las cadenas que pueden generarse con la
gramática G.
Equivalenciade gramáticas: dos gramáticas son equivalente si generan el mismo lenguaje.
Título de la presentación
47
Gramáticas formales
• Chomsky clasificó las gramáticas en función de sus restriccionesen las
• siguientes categorías:
•
Tipo 0 (sin restricciones):es la gramáticaque define el mismoconjunto de
lenguajesque puede reconoceruna máquina de Turing.
•
Tipo 1 (dependientes del contexto).
•
Tipo 2 (independientesdel contexto).
•
Tipo 3 (regulares).
Título de la presentación
48
GRAMATICAS
FORMALES
49
Tipos de Gramática
50
Tipos de Gramática
51
Tipos de Gramática
o Esta Compuesta por 4 elementos.
1. T: Símbolos terminales (Elementos que no generan nada)
2. V: No terminales (Elementos del lado izquierdo de una producción,
antes de la flecha “→”
3. P: Conjunto de producciones (sentencias que se escriben en la
gramática )
• Cada regla o producción consta de:
• Cabeza: variable
• → = símbolo de producción
•Cuerpo: cadena de 0 o mas símbolos terminales y/o variables.
Es decir una regla tiene la forma Cabeza → Cuerpo , o por
ejemplo: Aa →BA
4. S: Símbolo inicial (primer elemento de la gramática)
Tipos de Gramática
o Una gramática es una estructura algebraica formada por cuatro
elementos
o G={NT, T, S, P}
o NT es el conjunto de elementos NO TERMINALES
o T es el conjunto de elementos TERMINALES
o S es el SIMBOLO INICIAL de la gramática
o P es el conjunto de REGLAS DE PRODUCCION
G=(V,T,P,S)
V: No terminales
T: Símbolos terminales
P: Conjunto de producciones
S: Símbolo inicial
Tipos de Gramática
1. Las letras mayúsculas A,B,C,D,E y S denotan variables:
y S es el símbolo de inicio.
2. Las letras minúsculas a,b,c,d,e,dígitos, y cadenas en
letras negritas son terminales.
3. Las letras mayúsculas X,Y y Z denotan símbolos que
pueden ser terminales o variables.
4. Las letras minúsculas u,v,w,x,y,z denotan cadenas
terminales.
5. Las letras griegas α,β,γ denotan cadenas de variables
terminales.
Gramática tipo 0
Características
o No tiene restricciones .
o Incluyen a todas las demás gramáticas
formales.
o Las maquinas que lo aceptan son maquinas de
Turing.
Gramáticas de tipo 0
También llamadas gramáticas no restringidas o gramáticas con
estructura de frase.
Las reglas de derivación son de la forma:
α→β
siendo α ∈ (VN𝖴VT)+ β ∈ (VN𝖴VT)* , es decir la única
restricción es que no puede haber reglas de la forma λ → β
donde λ es la cadena vacía.
Ejemplo 1
Sea la gramática definida por G1 = ({S}, {0,1}, S,P) donde P={(S → 000S111),(0S1→ 01)}. Determinar el lenguaje que genera.
Solución :
La única forma de generar sentencias es aplicando cualquier nº de veces la primera producción y
terminando con la aplicación de la segunda, así se obtiene el lenguaje:
S →000S111→000000S111111→⋅ ⋅ ⋅→0(3n − 1)0S11(3n − 1)→0(3n)1(3n)
Por consiguiente el lenguaje que genera esta gramática es el conjunto infinito de instrucciones que se indica a continuación :
L(G1) = {0(3n)1(3n)/n ≥ 1}
Ejemplo 2
Si la 2ª producción de la gramática del ejemplo 1 fuese S →01 el lenguaje sería :
L(G2) = {0(3n + 1)1(3n + 1)/n ≥ 0}
Ejemplo 3
Sea la gramática G3 = ({S}, {a,b}, S, P) donde P={(S → aSb), (S → ab)}. Determinar el lenguaje que genera.
Solución :
Aplicando la primera producción n-1 veces, seguida por la aplicación de la
segunda producción, se tiene que :
S →aSb →aaSbb →a3Sb3→
⋅ ⋅ ⋅→a(n − 1)Sb(n − 1)→anbn
El lenguaje generado :
L(G3)={an bn/n ≥ 1}
Ejemplo 4
Dada la gramática G4 = ({S,A}, {a,b}, S, P) donde P={(S → abAS), (abA → baab), (S → a), (A → b)}. Determinar el lenguaje que
genera.
Solución :
Se generan sentencias del lenguaje aplicando las reglas hasta que se pueda ver la
forma general del lenguaje.
S →abAS →baabS →baaba
S →a
S →abAS →abbS →abba
S →abAS →abAabAS →⋅ ⋅ ⋅→(abA)nS → (abb)na S
→abAS →abAabAS →⋅ ⋅ ⋅→(abA)nS → (baab)na S
→abAS →abAabAS →
S →abAS →abAabAS →baababba
S →abAS →abAabAS →abAabAabAS →baababbbaaba
L(G4) = {cadenas que contienen abb y baab intercambiándose y reproduciéndose cualquier número de veces, y terminando
siempre con el símbolo a}
Se puede observar que la forma de expresar este lenguaje no es simple, y surge la necesidad de tener una
herramienta que permita describir los lenguajes de otra forma.
Ejemplo 5
Sea la gramática G5 = ({S,A,B}, {a,b}, S, P) donde las producciones P son :
S →aB
S →bA
A →a
A →aS
A →bAA
B →b
B→bS
B →aBB
Determinar el lenguaje que genera.
Solución :
Se generan algunas instrucciones.
S →aB →ab
S →bA →ba
S →aB →abS →abbA →abba
S →bA →bbAA →bbaa
S →aB →abS →abaB →ababS →ababaB →ababab
L(G5) = {cadenas que tienen igual nº de a que de b}
Ejemplo 6
Sea la gramática G6 = (VN, VT, S, P) donde :
VN = { <número> , <dígito> } VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
S = <número>
Las reglas de producción P son :
<número> ::= <dígito> <número>
<número> ::= <dígito>
<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Determinar el lenguaje que
genera.
Solución :
Acontinuación se muestran algunas sentencias del lenguaje generado por esta gramática.
< número >→< dígito >< número >→ 7 < número >→ 72
< número >→< dígito >→ 7
< número >→< dígito >→ 0
< número >→< dígito >< número >→< dígito >< dígito >< número >→⋅ ⋅ ⋅→235
L(G6) = {conjunto de los números naturales en base diez}.
Ejemplo 7
Sea la gramática G7 = ({A,S}, {a,b}, S, P) donde las reglas de producción son :
S →aS S →aA A →bA A →b
Determinar el lenguaje que genera esta gramática.
Solución :
Se muestran algunas sentencias del lenguaje generado por la gramática.
S →aS →aaA →aab S →aA →ab
S →aS →aaS →aaaS →
→anS →anaA →an + 1b
S →aA →abA →abbA →abbbA →
→abnA →abn + 1
⋅⋅⋅
⋅⋅⋅
El lenguaje generado se puede definir con la siguiente expresión regular
L(G7) = a a* b b*
Gramática tipo 1
Características
o Generan los lenguajes sensibles al contexto.
o Las maquinas que los aceptan son autómatas
linealmente acotados.
Tipos de Gramáticas Jerarquía de Chomsky
Gramáticas tipo 1
Las reglas de producción de esta gramática tiene la
forma
xAy ::= xvy
donde x, y ϵ ∑*, v ϵ ∑+ y A ha de ser un símbolo no
terminal.
(A puede transformarse en v sólo si aparece en el contexto definido por x e y)
•Ya que v no puede ser la palabra vacía, se deduce de aquí que este tipo de gramáticas no pueden
tener reglas compresoras. Se admite una excepción en la regla S ::= λ (siendo S el axioma de la
gramática). Como consecuencia se tiene que la palabra vacía pertenece al lenguaje generado por la
gramática sólo si contiene esta regla.
• Los lenguajes generados por este tipo de gramáticas se denominan “dependientes del contexto”.
Tipos de Gramáticas Jerarquía de Chomsky
Gramáticas tipo 1
Evidentemente todas las gramáticas de tipo 1 son también de tipo 0, y así, todos los
lenguajes dependientes de contexto serán también lenguajes sin restricciones.
• Ejemplo1 :
G = ({S, B, C}, {a, b, c}, S,P), donde P es:
S → aSBc | aBC
bB → bb
bC → bc
CB → BC
cC → cc
aB → ab
Ejemplo 2
La gramática G = ({S,A,B}, {a,b}, S, P) cuyas producciones P son:
S →aB S
→bA A
→a A
→aS
A →bAA B
→b
B→bS
B →aBB
Ejemplo 3
La gramática G = (VN, VT, S, P) donde VN = { <número> , <dígito> }; VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
S = <número> y las reglas de producción P son:
<número> ::= <dígito> <número>
<número> ::= <dígito>
<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ejemplo 4
La gramática G = ({a,b}, {A,S}, S, P) y sus producciones P son:
S →aS S →aA A →bA A →b
Ejemplo 5
La gramática definida como G = ({S}, {a,b}, S, P) donde P son las siguientes
producciones :
?
S →aaaaSbbbb aSb →ab
La producción aSb →ab no es del tipo 1, pues se sustituye S por vacío en el contexto a...b.
Sin embargo si esta producción fuera S →ab o aSb →abb, entonces sería de tipo 1.
Ejemplo 6
La gramática G = ({S,A}, {a,b}, S, P) con las producciones P siguientes :
S →abAS abA →baab S →a
A →b
No es del tipo 1, ya que la producción abA →baab no es sensible al contexto. Lo sería si fuese abA →abab.
Propiedades de las gramáticas de tipo 1
Propiedad de no decrecimiento
Las cadenas que se obtienen en cualquier derivación de una gramática de tipo 1 son de longitud no decreciente, es decir
:
α→β ⇒ | β |≥| α |
y que se puede enunciar como la longitud de la parte derecha de la producción es mayor o igual a la de la parte
izquierda.
La demostración es inmediata. Si se define una producción de un lenguaje tipo 1 como :
αAβ→αγβ
siendo γ ∈ (VN𝖴VT)+, es decir γ nunca puede ser la cadena vacía, lo que implica que | γ |≥ 1 y como | A | como mínimo
vale 1, queda demostrada la propiedad :
| α A β | ≤| α γ β |
Ejemplo 7
Sea la gramática G = ({S,B,C}, {a,b,c}, S, P) donde P son las producciones :
S →aSBC
S →aBC
CB →BC
bB →bb
bC →bc
cC →cc
aB →ab
La gramática anterior no es de tipo 1 según la definición dada, ya que la regla
CB → BC no respeta el contexto. Sin embargo puede apreciarse que todas las reglas de esta gramática son no
decrecientes, por lo tanto es posible encontrar una gramática equivalente que genere el mismo lenguaje. Se puede
sustituir la regla CB → BC por :
CB → XB
XB → XY
XY → BY
BY → BC
Puede observarse que ambas gramáticas son equivalentes y que generan el lenguaje :
L(G) = { an bn cn / n ≥ 1 }
Gramática tipo 2
Características
o Generan los lenguajes independientes del
contexto.
o Maquinas que lo aceptan son autómata de
pila.
Gramáticas tipo 2
➢ Las reglas de estas gramáticas se ajustan al siguiente esquema:
A ::= v
donde v ϵ ∑*, y A ϵ ∑N En concreto v puede ser λ.
➢Para toda gramática de tipo 2 existe una gramática equivalente desprovista de reglas de la forma A ::= λ, que generará el mismo
lenguaje que la de partida, excepto la palabra vacía. Si se le añade a la segunda gramática la regla S ::= λ, las gramáticas generarán
el mismo lenguaje.
➢Por lo tanto, se pueden definir las gramáticas de tipo 2 de una forma más restringida, en el que las reglas de producción tendrán
la siguiente forma
A ::= v donde v ϵ ∑+, y A ϵ ∑N . Además podrán contener la regla
S ::= λ
➢Los lenguajes generados por este tipo de gramáticas se denominan independientes de contexto, ya que la conversión de A en v
puede realizarse independientemente del contexto en que aparezca A.
Gramáticas tipo 2
➢La mayor parte de los lenguajes de programación de ordenadores pueden describirse
mediante gramáticas de este tipo.
Ejemplo : sea la gramática G = ({a, b}, {S}, S, { S ::= aSb | ab}).
Es una gramática de tipo 2. La derivación de la palabra aaabbb será:
S → aSb → aaSbb → aaabbb
Puede verse que el lenguaje definido por esta gramática es {anbn | n=1, 2, ...}
➢Un mismo lenguaje puede generarse por muchas gramáticas diferentes. Sin
embargo, una gramática determinada describe siempre un lenguaje único.
Ejemplo 1
La gramática G = ({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a continuación es de tipo 2.
S →aB
A →bAA
S →bA
B →b
A →a
B→bS
A →aS
B →aBB
Ejemplo 2
La gramática G = (VN, VT, S, P) donde VN = { <número> , <dígito> }; VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; S =
<número> y las reglas de producción P que se muestran a continuación es de tipo 2.
<número> ::= <dígito> <número>
<número> ::= <dígito>
<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Gramática tipo 3
Características
o También llamadas de
contexto regular.
o Maquinas que lo aceptan son
autómata finito, determinista
o no determinista.
Gramáticas tipo 3
Estas gramáticas se clasifican en los dos grupos siguientes:
•Gramáticas lineales por la izquierda, cuyas reglas de producción pueden tener una de las formas
siguientes:
A ::= a
A ::= Va
S ::= λ
donde a ϵ ∑T , A, V ϵ ∑N, y S es el axioma de la gramática.
• Gramáticas lineales por la derecha, cuyas reglas de producción tendrán la forma:
A ::= a
A ::= aV
S ::= λ
donde a ϵ ∑T , A, V ϵ ∑N, y S es el axioma de la gramática.
• Los lenguajes representados por este tipo de gramáticas se denominan lenguajes regulares.
Gramáticas tipo 3
➢ G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0})
Gramática lineal por la izquierda que describe el lenguaje:
L1 = { 1, 101, 10101, ... } = {1(01)n | n = 0, 1, 2, ...}
➢ G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A})
Gramática lineal por la derecha que genera el mismo lenguaje que la gramática anterior.
EN RESUMEN
79
EN RESUMEN
Gramática
Tipo 3
Lenguajes
Regulares
Tipo 2
Libres de Contexto
(Context Free)
Tipo 1
Dependiente del
contexto
Lenguaje
{𝒂𝒏 , 𝒏 ≥ 𝟏}
{𝒂𝒏 𝒃𝒏 , 𝒏 ≥ 𝟏}
{𝒂𝒏 𝒃𝒏 𝒄𝒏 , 𝒏 ≥ 𝟏}
Reglas
A=aA
S=aSb
Cc=Vcc
Autómata
Finito
Autómata
Determinístico
AFD
Autómata a Pila
AP
Autómata
Linealmente Acotado
Análisis
Análisis Sintáctico
Tabla de Símbolos
Análisis Léxico
Tipo 0
Sin restricciones
Todas las
anteriores
Maquina de
Turing
Recuerda
RA 1
Actividad 1
RA 2
Test
RA 3
Actividad 2
muchas gracias
Esta nueva plantilla se ajusta al nuevo logo de la fundación
Descargar