KELA Presentacion Costa Rica 2024 - evento Protégeles
Lingüística Matemática Clase 1
1. UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN
DEPARTAMENTO DE SISTEMAS
CÁTEDRA SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
WWW.VIRTUAL.UTN.EDU.AR/FRT
Asignatura: SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
Área: PROGRAMACIÓN – TECNOLOGÍAS BÁSICAS
Carrera: INGENIERÍA EN SISTEMAS DE INFORMACIÓN
Régimen: CUATRIMESTRAL
Carga horaria semanal: 3hs.Teoría/3hs.Práctica/2hs.Laboratorio
Profesor: Ing. JORGE BUABUD ( jbuabud@gmail.com)
ING. JORGE BUABUD
2. UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN
DEPARTAMENTO DE SISTEMAS
CÁTEDRA SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
WWW.VIRTUAL.UTN.EDU.AR/FRT
OBJETIVOS:
Adquirir los conocimientos mínimos de lingüística matemática que le
permitan representar lenguajes formales en sus niveles léxico, sintáctico y
semántico.
Conocer los elementos propios de la sintaxis y semántica de los lenguajes de
programación.
Lograr habilidad en el diseño de aceptores de lenguajes formales en sus ni-
veles léxico (Autómatas Finitos) y sintáctico (Autómatas de Pila), utilizando
como herramientas las gramáticas formales (regulares y libres de contexto).
Incursionar en el estudio de la complejidad algorítmica mediante el análisis
de los lenguajes recursivos, lenguajes recursivamente enumerables y las
Máquinas de Turing.
Comprender el procesamiento de lenguajes y en particular, el proceso de
compilación.
ING. JORGE BUABUD
3. UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN
DEPARTAMENTO DE SISTEMAS
CÁTEDRA SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
WWW.VIRTUAL.UTN.EDU.AR/FRT
CONTENIDOS:
UNIDAD TEMÁTICA I: Lingüística Matemática
Alfabetos, palabras y lenguajes. Operaciones con cadenas y con lenguajes. Niveles de un
lenguaje: léxico, sintáctico, semántico y pragmático. Gramáticas para estructuras de frases.
Diagramas de Sintaxis y Formato BNF. Sistemas Canónicos y Esquemas de Traducción.
Aplicaciones: Proceso de Compilación.
UNIDAD TEMÁTICA II: Gramáticas y Modelos Matemáticos.
Jerarquía de Chomsky y formatos estándares para tipos 0 y 1. Los aceptores de lenguajes
formales: MT, AP, AF. Construcción de una MT. Lenguajes Recursivos y recursívamente
enumerables. Aplicaciones: Resolubilidad y complejidad computacional.
UNIDAD TEMÁTICA III: Lenguajes Regulares y Autómatas Finitos.
Gramáticas Regulares (GR), Expresiones Regulares (ER). Autómatas Finitos Determinísticos
(AFD). Operaciones con AFD. Equivalencia y Minimización. Autómatas Finitos No
Determinísticos (AFND, AF-λ y AF-Lazy). Operaciones con AFND. Conversión AFND/AFD.
Propiedades de los LR. Aplicaciones: Analizador Lexicográfico (Scanner).
UNIDAD TEMÁTICA IV: Lenguajes Independientes de Contexto y Autómatas de Pila.
Gramáticas Independientes del Contexto (GIC). Árboles de derivación. Derivación más a la
izquierda. Ambigüedad. Simplificaciones de una GIC. Formas Normales de Chomsky y de
Greibach. L.I.C. y Autómatas de Pila (AP). Criterios de aceptación por estado final y por pila
vacía. Propiedades de los LIC. Aplicaciones: Analizador Sintáctico (Parcer).
ING. JORGE BUABUD
4. UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN
DEPARTAMENTO DE SISTEMAS
CÁTEDRA SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
WWW.VIRTUAL.UTN.EDU.AR/FRT
BIBLIOGRAFÍA PRINCIPAL:
INTRODUCCION A LA TEORIA DE AUTOMATAS LENGUAJES Y COMPUTACION
ISBN 9788478290888
Autor HOPCROFT JOHN E. , MOTWANI RAJEEV , ULLMAN JEFFREY D.
Editorial PEARSON EDUCACION Edición 2008
COMPILADORES Princípios Técnicas y Herramientas.
ISBN 9789702611332
Autor AHO ALFRED V.
LAM MONICA S. , SETHI RAVI , ULLMAN JEFFREY D.
Editorial PEARSON ADDISON-WESLEY Edición 2008
Capítulos 1,3,4 y 5
LENGUAJES, GRAMÁTICAS Y AUTÓMATAS Un enfoque práctico.
ISBN 84-7829-014-1
Autor P. ISASI, P. MARTINEZ , D. BORRAJO
Editorial ADDISON-WESLEY Edición 1997
TEORÍA DE AUTOMATAS Y LENGUAJES FORMALES
ISBN 9780135187050
Autor KELLEY DEAN
Editorial LONGMAN Edición 1995
PROGRAMACIÓN DE SISTEMAS
Autor JOHN J. DONOVAN
Editorial EL ATENEO Edición 1983
ING. JORGE BUABUD
5. UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN
DEPARTAMENTO DE SISTEMAS
CÁTEDRA SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES
WWW.VIRTUAL.UTN.EDU.AR/FRT
ING. JORGE BUABUD
7. U.T.N. – F.R.T.
S. y S. de los L. PRELIMINARES
LENGUAJES:
de Programación
de Música
LENGUAJES FORMALES NIVELES
de Matemática
Léxico
de Química
Sintáctico
Semántico
Español Pragmático
(Oral-Escrito-Señas)
LENGUAJES NATURALES
Inglés
Árabe
ING. JORGE BUABUD
8. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
ALFABETOS:
ALFABETO: Conjunto finito no vacío de símbolos diferentes.
Notación: Nombre genérico de un alfabeto: Σ
Símbolos abstractos de un alfabeto
primeras letras del abecedario en minúscula (a, b, c, …)
Ejemplos: Σ = { a, b, c , d }
Binario = { 0, 1 }
Letras = { a, b, c, d, e, ….., x, y, z }
Español = {el, la, … , casa, perro, …, es, come, … , linda,
alegremente, …}
ING. JORGE BUABUD
9. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
ALFABETOS:
Para describir un hecho o entidad se utilizan conjuntos de símbolos
que en general llamamos DATOS.
Por otro lado, una INFORMACIÓN es un conjunto de datos
significativos: Reconocibles, Íntegros, Inequívocos, Relevantes.
En el ámbito de la informática son de uso frecuente los alfabetos o
códigos ASCII y EBCDIC.
No debemos confundir el “nombre” del símbolo con el propio símbolo.
Por ejemplo: al símbolo $ lo llamamos PESO, en otro contexto
podríamos llamarlo DÓLAR, pero sigue siendo el
mismo símbolo.
ING. JORGE BUABUD
10. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
PALABRAS o CADENAS:
PALABRA: Secuencia finita de símbolos pertenecientes a un alfabeto.
Notación: últimas letras del abecedario en minúsculas (.. w, x, y, z)
Ejemplos: Σ: a, b, aa, ab, ba, bb, abcd, aadd
Binario: 011, 11011, 00, 11
Letras: casa, pieza, del, abc
Español: la_casa_es_linda
el_perro_come_alegremente
ING. JORGE BUABUD
11. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
PALABRAS o CADENAS:
La palabra vacía, que representamos con λ (lambda), es aquella
secuencia que no contiene símbolo alguno.
Prefijo: secuencia de cero o más símbolos iniciales de una palabra.
Sufijo: secuencia de cero o más símbolos finales de una palabra.
Subcadena: secuencia de símbolos obtenida al eliminar un sufijo o un
prefijo de una palabra.
Σ* representa al conjunto de todas las palabras w formadas por símbolos
de dicho alfabeto, es decir el Conjunto Universal de arreglos con
repeticiones de símbolos sobre Σ.
Σ+ representa al Conjunto Universal sin la palabra vacía.
o sea que: Σ+ = Σ* - { λ }
ING. JORGE BUABUD
12. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
LENGUAJES FORMALES:
LENGUAJE: Cualquier subconjunto L del Conjunto Universal de
palabras sobre un alfabeto Σ.
Notación: L1, L2, ….
Ejemplos: Σ: L1 = {a, b, aa, ab, ba, bb, abcd, aadd}
Binario: L2 = {011, 11011, 00, 11}
Letras: L3 = {casa, pieza, del, abc}
Español: L4 = {la_casa_es_linda,
el_perro_come_alegremente}
ING. JORGE BUABUD
13. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
LENGUAJES FORMALES:
Podemos decir que: L ⊆ Σ*
Los siguientes son casos particulares significativos:
El Lenguaje Universal Σ*
El Lenguaje Vacío Ф
El Lenguaje Lλ = { λ }
ING. JORGE BUABUD
14. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON PALABRAS:
CONCATENACIÓN:
Función con dominio en Σ*x Σ* y rango en Σ*. Tal que dadas las palabras u y
v, la concatenación de u con v da como resultado otra palabra w formada por la
secuencia de símbolos de u seguida de la secuencia de símbolos de v.
Notación: w = u.v
Propiedades: dadas las palabras {u, v, w} se cumplen las leyes:
Asociativa: (u.v).w = u.(v.w)
No conmutativa: En general u.v ≠ v.u
Elemento Neutro λ: λ.u = u.λ = u
Ejemplos: Dado el alfabeto Vocal = {a, e, i, o, u} entonces iui . λ = iui
ae . ou = aeou (ieu . aa) . u = ieu . (aa . u) = ieuaau
ING. JORGE BUABUD
15. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON PALABRAS:
POTENCIACIÓN:
Función con dominio en Σ*x N y rango en Σ*. Tal que dada la palabra u y el
número natural i, la potencia con base u y exponente i da como resultado otra
palabra w formada por una sucesión de i palabras u.
Notación: w = u i
Propiedades:
Desde un punto de vista práctico la potencia es una forma reducida
de representar la concatenación de una palabra consigo misma.
Por definición u0 = λ y u1 = u
Ejemplos: Dado el alfabeto Binario = {0, 1} entonces
000 = λ 101 2 = 101101 13 = 111 01 5 = 0101010101
ING. JORGE BUABUD
16. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON PALABRAS:
LONGITUD:
Función con dominio en Σ* y rango en N. Tal que dada la palabra u la longitud
de u da como resultado la cantidad de símbolos que forman la palabra.
Notación: w = | u | = long(u)
Propiedades:
La longitud de λ es cero
| u |a representa la cantidad de símbolos a que hay en u
Ejemplos: Dado el alfabeto Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
long(λ) = 0 | 00110 | = 5 long(1011) = 4 | 01001 | =3
0
ING. JORGE BUABUD
17. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON PALABRAS:
INVERSA:
Función con dominio en Σ* y rango en Σ*. Tal que dada la palabra u la inversa
de u da como resultado la imagen especular de u.
Notación: w = u -1
Propiedades:
λ-1 = λ
Involutiva: (u -1 ) -1 = u
Si se cumple que: u -1 = u entonces se dice que u es palíndromo
Ejemplos: Dado el alfabeto Letras = { a, b, c, ...., z} entonces: arroz -1 = zorra
y haciendo caso omiso del espacio en blanco y la tilde, las siguientes palabras son
palíndromos: “neuquén” ; “adán nada”; “dábale arroz a la zorra el abad” ;
“satán sala las natas”
ING. JORGE BUABUD
18. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
NOTACIÓN CONJUNTO DE SUBCONJUNTOS:
Para representar el conjunto C2 formado por todos los subconjuntos que se
pueden construir con los elementos de un conjunto C1 se utiliza la siguiente
notación: C2 = 2 C1
La misma se debe al hecho de que la cantidad de subconjuntos que se puede
formar con los elementos de C1 es igual a la potencia de base 2 y exponente
igual al módulo del conjunto C1. O sea que | C2 | = 2 | C1 |
Por ejemplo dado C1 = {a, b, c} el conjunto de todos los subconjuntos de
C1, incluidos el vacío y el propio conjunto C1, es:
3
C2 = { Ф, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} } y | C2 | = 2 = 8
ING. JORGE BUABUD
19. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
UNIÓN:
Función con dominio en 2 Σ*x 2 Σ* y rango en 2Σ* . Tal que dados los lenguajes
L1 y L2, la unión entre L1 y L2 da como resultado otro lenguaje L3 formado por
todas las palabras de L1 y todas las palabras de L2 sin repeticiones.
Notación: L3 = L1 ∪ L2
Propiedades: dados los lenguajes L1, L2 y L3 se cumplen las leyes:
Asociativa: (L1 ∪ L2) ∪ L3 = L1 ∪ (L2 ∪ L3)
Conmutativa: L1 ∪ L2 = L2 ∪ L1
Elemento Neutro Ф: Ф ∪ L1 = L1 ∪ Ф = L1
Ejemplos: Dados L1 = { λ, ba }; L2 = { a, b, ab } y L3 = { aa, ab } entonces:
L1 ∪ L2 = { λ, a, b, ab, ba } L2 ∪ L3 = { a, b, aa, ab }
ING. JORGE BUABUD
20. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
DIFERENCIA:
Función con dominio en 2 Σ*x 2 Σ* y rango en 2Σ* . Tal que dados los lenguajes
L1 y L2, la diferencia entre L1 y L2 da como resultado otro lenguaje L3 formado
por todas las palabras de L1 excepto aquellas que pertenezcan también a L2.
Notación: L3 = L1 - L2
Propiedades: dados los lenguajes L1, L2 y L3 se cumplen las leyes:
No Asociativa: (L1 - L2) - L3 ≠ L1 - (L2 - L3)
No Conmutativa: en general L1 - L2 ≠ L2 - L1
Elemento Neutro Ф: L1 - Ф = L1
Ejemplos: Dados L1 = { λ, a, ab }; L2 = { a, b, ba } y L3 = { a, b, ab }
entonces: L1 - L2 = { λ, ab } L2 - L3 = { ba } L1 - L3 = { λ }
ING. JORGE BUABUD
21. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
INTERSECCIÓN:
Función con dominio en 2 Σ*x 2 Σ* y rango en 2Σ* . Tal que dados los lenguajes
L1 y L2, la intersección entre L1 y L2 da como resultado otro lenguaje L3 formado
por todas las palabras que pertenecen a L1 y que también pertenecen a L2.
Notación: L3 = L1 ∩ L2
Propiedades: dados los lenguajes L1, L2 y L3 se cumplen las leyes:
Asociativa: (L1 ∩ L2) ∩ L3 = L1 ∩ (L2 ∩ L3)
Conmutativa: L1 ∩ L2 = L2 ∩ L1
Elemento Neutro Σ*: Σ* ∩ L1 = L1 ∩ Σ* = L1
Ejemplos: Dados L1 = { λ, a, ab }; L2 = { a, b, bb } y L3 = { b, bb, aa }
entonces: L1 ∩ L2 = { a } L2 ∩ L3 = { b, bb } L1 ∩ L3 = Ф
ING. JORGE BUABUD
22. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
COMPLEMENTO:
Función con dominio en 2 Σ* y rango en 2 Σ* Tal que dado el lenguaje L1, el
.
complemento de L1 da como resultado otro lenguaje L3 formado por todas las
palabras que pertenecen a Σ* y que no pertenecen a L1.
_
Notación: L3 = ∼L1 = L1
Propiedades:
∼L1 = Σ* - L1
∼Σ* = Ф y ∼Σ+ = Lλ
Involutiva: ∼(∼L1) = L1
Ejemplos: Dado L1 = { λ, a, b } entonces:
∼L1 = {todas las secuencias de a y/o b excepto la palabra
vacía y las palabras unisimbólicas a y b }
ING. JORGE BUABUD
23. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
PRODUCTO O CONCATENACIÓN:
Función con dominio en 2 Σ*x 2 Σ* y rango en 2Σ* . Tal que dados los lenguajes
L1 y L2, el producto o concatenación entre L1 y L2 da como resultado otro
lenguaje L3 formado por todas las palabras que resultan de concatenar una palabra
de L1 con una palabra de L2 y solo en ese orden.
Notación: L3 = L1 .L2
Propiedades: dados los lenguajes L1, L2 y L3 se cumplen las leyes:
Asociativa: (L1 . L2) . L3 = L1 . (L2 . L3)
No Conmutativa: en general L1 . L2 ≠ L2 . L1
Elemento Neutro Lλ: Lλ . L1 = L1 . Lλ = L1
Ejemplos: Dados L1 = { λ, a }; L2 = { b, bb } y L3 = { aa } entonces:
L1 . L2 = { b, bb, ab, abb } L2 . L3 = { baa, bbaa } L2 . Ф = Ф
ING. JORGE BUABUD
24. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
POTENCIACIÓN:
Función con dominio en 2 Σ*x N y rango en 2Σ*. Tal que dado el lenguaje L1 y
el número natural i mayor o igual que 2, la potencia con base L1 y exponente i
da como resultado otro lenguaje L3 formado por el producto de L1 consigo
mismo (i - 1) veces.
Notación: L3 = L1i
Propiedades:
Desde un punto de vista práctico la potencia es una forma reducida
de representar el producto de un lenguaje consigo mismo.
Por definición L1 0 = Lλ y L11 = L1
Ejemplos: Dados L1 = { a, b } L2 = { bab, bb, ab }
L13 = { aaa, aab, aba, abb, baa, bab, bba, bbb }
L2 2 = { babbab, babbb, babab, bbbab, bbbb, bbab, abbab, abbb, abab }
ING. JORGE BUABUD
25. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
CLAUSURA, CIERRE O ESTRELLA DE KLEENE:
Función con dominio en 2 Σ* y rango en 2Σ* Tal que dado el lenguaje L1, la
.
operación “L1 estrella” da como resultado otro lenguaje L3 formado por todas
las potencias de base L1 y exponente i, desde i igual a cero hasta infinito.
∞
Notación: L3 = L1* = L10 ∪ L11 ∪ L1 2 …… = ∪ L1 i
i=0
Propiedades:
(L1* ) * = L1*
Por definición Ф* = Lλ y Lλ* = Lλ
Ejemplos: Dado L1 = { aa, ab, ba, bb }
L1* = { todas las secuencias de a y/o b de long. par incluida la vacía }
ING. JORGE BUABUD
26. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
CLAUSURA, CIERRE O ESTRELLA POSITIVA:
Función con dominio en 2 Σ* y rango en 2Σ* Tal que dado el lenguaje L1, la
.
operación “L1 estrella positiva” da como resultado otro lenguaje L3 formado por
todas las potencias de base L1 y exponente i, desde i igual a uno hasta infinito.
∞
Notación: L3 = L1+ = L11 ∪ L12 ∪ L1 3 …… = ∪ L1 i
i=1
Propiedades:
(L1+) + = L1+
Por definición Ф+ = Ф y Lλ+ = Lλ
Ejemplos: Dado L1 = { aa, ab, ba, bb } L2 = { λ, aa, ab, ba, bb }
L1+ = { todas las secuencias de a y/o b de long. par }
L2+ = L2* = L1*
ING. JORGE BUABUD
27. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
OPERACIONES CON LENGUAJES:
INVERSA:
Función con dominio en 2 Σ* y rango en 2 Σ*. Tal que dado el lenguaje L1, la
inversa de L1 da como resultado otro lenguaje L3 formado por todas las inversas
correspondientes a las palabras de L1.
Notación: L3 = L1-1
Propiedades:
Distributiva: (L1 . L2) -1 = L2-1 . L1-1 (L1*)-1 = (L1-1 )*
Involutiva: (L1-1 ) -1 = L1
Ejemplos: Dados L1 = { ab, bb } L2 = { aa, ba }
L1.L2 = { abaa, abba, bbaa, bbba}
L2-1 = { aa, ab } L1-1 = { ba, bb }
( L1 . L2 )-1 = { aaba, abba, aabb, abbb } = L2 -1 . L1-1
ING. JORGE BUABUD
28. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Ejemplo 1
Dado el alfabeto Letras = { a, b, c, .…, z }
haciendo caso omiso de las tildes y los espacios en blanco, los
siguientes son casos curiosos de palíndromos:
ananá, oso, ojo, asa, ala, sus, allá, anilina, reconocer, somos, aérea, rasar
atar a la rata, alábala a la bala, anita lava la tina, arroz a la zorra
diversas palabras del español resultan de concatenar dos o más
palabras del mimo lenguaje:
limpia.para.brisas = limpiaparabrisas bala . cera = balacera
casa . miento = casamiento agua . tero = aguatero
rápida . mente = rápidamente villa . nada = villanada
las siguientes palabras y sus inversas tienen distintos significados:
odio, oído, osar, raso, orar, raro, lava, aval, raza, azar, acera, areca
ING. JORGE BUABUD
29. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Ejemplo 2
Dado el alfabeto Sílabas = { ma, mon, mo, ca, co, li, ra, re, ro, ta, to, ja, bron }
haciendo caso omiso de las tildes tenemos los siguientes palíndromos:
maroma, cólico, retaré, remaré, coco, caca, caraca
las siguientes palabras y sus inversas tienen significados distintos:
jamón, monja, bronca, cabrón, mora, ramo, coca, caco,
raco, cora, maca, cama, coma, maco, como, moco,
rata, tara, roca, caro, tomón, monto, rato, tora
ING. JORGE BUABUD
30. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Ejemplo 3
Dado el alfabeto Σ = { a, b, c, …, z, 0, 1, … 9 , _ } se puede definir los
siguientes lenguajes unisimbólicos :
Letras = { a, b, c, …. , z }
Dígitos = { 0, 1, 2, 3, …. , 9}
Guión = { _ }
Combinando convenientemente estos lenguajes se puede representar el
conjunto de todos los identificadores de un lenguaje de programación:
Identificador = (Letras ∪ Guión) . (Letras ∪ Dígitos ∪ Guión)*
ING. JORGE BUABUD
31. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Ejemplo 4
En un lenguaje de programación concreto (C++, Delphi, Visual Basic, Java,
etc.), los identificadores válidos tienen una longitud máxima. Supongamos
que en el ejemplo anterior queremos acotar la longitud en 40. Esto traerá
como consecuencia que el lenguaje dejará de ser infinito.
Una solución satisfactoria pero no muy eficiente sería:
Identificador = (Letras ∪ Guión) . ( { λ } ∪ (Letras ∪ Dígitos ∪ Guión)
∪ (Letras ∪ Dígitos ∪ Guión)2 ∪ (Letras ∪ Dígitos ∪ Guión) 3
∪ (Letras ∪ Dígitos ∪ Guión) 4 ∪ (Letras ∪ Dígitos ∪ Guión) 5
∪ ….... ∪ (Letras ∪ Dígitos ∪ Guión)39 )
ING. JORGE BUABUD
32. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación ejemplo 4
¿Cuántos palabras tiene este lenguaje ? Sigamos el siguiente razonamiento
por inducción en el largo de la palabra, suponiendo 26 letras:
Longitud Cantidad
1 27
2 27x 37 = 999
3 27x 37 2 = 36963
k 27x 37 (k-1)
39
40 27x 37 ≅ 1,445 E+61
ING. JORGE BUABUD
33. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación ejemplo 4
Si ahora sumamos todas estas cantidades obtenemos el total de
identificadores válidos de longitud menor o igual 40:
≅ 4,009 E+62
Este resultado se puede obtener del producto de 27 por la serie de potencias:
2 3 n
X+X + X + ….. + X para n = 39
¿Existe una fórmula para calcular este resultado?
ING. JORGE BUABUD
34. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación ejemplo 4
¡NO! Porque la potencia no es distributiva con respecto a la suma.
Pero se puede hacer el siguiente desarrollo para simplificar el cálculo:
x + x2 + x3 + x4 + x5 = x ( 1 + x + x2 + x3 + x4 ) =
x ( 1 + x ( 1 + x + x2 + x3 ) ) = x ( 1 + x ( 1 + x ( 1 + x + x2 ) ) ) =
x(1+x(1+x(1+x(1+x))))
ING. JORGE BUABUD
35. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación ejemplo 4
Por último veamos como se puede obtener una solución más eficiente para
representar este lenguaje:
En primer lugar consideremos el siguiente caso sencillo:
Dado el alfabeto Σ = { a, b } definimos los lenguajes:
L1 = { a, b } y L2 = { λ, a, b }
entonces: L12 = { aa, ab, ba, bb }
L22 = { λ, a, b, aa, ab, ba, bb }
vemos que: L22 = L10 ∪ L11 ∪ L12
podemos concluir que al agregar la palabra vacía a un
lenguaje L, logramos que:
(L ∪ Lλ) n = L 0 ∪ L 1 ∪ L 2 ∪ …… ∪ L n
ING. JORGE BUABUD
36. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación ejemplo 4
Aplicando esta propiedad al lenguaje de los identificadores obtenemos una
forma simple de acotar la longitud del mismo a 40 símbolos:
39
Identificador = (Letras ∪ Guión) . (Letras ∪ Dígitos ∪ Guión ∪ Lλ)
Esta misma estrategia se puede utilizar para representar diversos lenguajes
que contienen secuencias de caracteres que deben acotarse en su longitud.
Por ejemplo cuando queremos definir un campo de datos en un formulario
de cualquier índole (nombres, número de legajo, dirección de e-mail, etc.).
ING. JORGE BUABUD
37. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Ejemplo 5
Consideremos un caso similar al anterior pero más complejo.
Supongamos que se debe representar el lenguaje de todas las denominaciones
de asignaturas de una carrera, con las siguientes características:
a) Cada componente de la denominación debe comenzar con una letra
seguida o no de letras minúsculas y puede terminar o no en un punto.
b) El primer componente debe comenzar con mayúscula.
c) Debe contener al menos un componente.
d) Si tiene varios componentes deben separarse con un espacio en blanco.
e) La longitud total incluidos puntos y espacios debe ser 45
ING. JORGE BUABUD
38. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación del ejemplo 5
Algunas denominaciones válidas serían:
“Sintaxis y Semántica de los Lenguajes”
“Paradigmas de Prog.”
“Mat. Aplicada I I”
Como vemos, cada componente puede tener una longitud variable y el total
de una denominación no debe superar los 45 símbolos. Esta complicación
hace que no sea posible utilizar la estrategia del ejemplo 5.
En este caso se puede recurrir a otro artificio, que consiste en plantear un
lenguaje de denominaciones sin límite de longitud e intersectarlo con el
lenguaje de todas las secuencias posibles sobre el alfabeto base con longitud
no superior a 45.
ING. JORGE BUABUD
39. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Ejemplos de Operaciones con Palabras
y con Lenguajes:
Continuación del ejemplo 5
Consideremos el alfabeto base:
.
Σ = { a, … , z, A, … , Z, , } donde equivale a un espacio en blanco
definamos los siguientes lenguajes unisimbólicos:
L1 = { A, … , Z } L2 = { a, … , z } L3 = { .} L4 = { }
Entonces el primer lenguaje a intersectar se puede representar así:
L5 = L1 . L2* . ( L3 ∪ Lλ ) . ( L4 . (L1 ∪ L2) . L2* . ( L3 ∪ Lλ ) )*
el segundo lenguaje, es decir el de todas las secuencias con un máximo de 45:
L6 = ( L1 ∪ L2 ∪ L3 ∪ L4 ∪ Lλ ) 45
De tal modo que el lenguaje resultante para solucionar el problema queda:
L7 = L5 ∩ L6
ING. JORGE BUABUD
40. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Niveles de un lenguaje:
Con el objetivo de estudiar una frase o sentencia, se puede considerar 4 niveles
de lenguajes. Esto facilita la tarea de análisis, ya que la divide en fases o
etapas que permiten un procesamiento escalonado del lenguaje; desde un
menor nivel de complejidad a un mayor nivel de complejidad.
Estos niveles son:
LEXICOGRÁFICO
SINTÁCTICO
Niveles de un Lenguaje
SEMÁNTICO
PRAGMÁTICO
ING. JORGE BUABUD
41. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Niveles de un lenguaje:
Nivel Lexicográfico: Se refiere al reconocimiento del léxico de un lenguaje o
sea la identificación de los símbolos del alfabeto del lenguaje, llamados
componentes léxicos. Es lo que normalmente llamamos diccionario. También
incluye la clasificación en tipos de componentes léxicos. Cabe
destacar que este nivel no depende del contexto.
Por ejemplo:
Diccionario del Lenguaje de programación C++:
main if while switch ( ) + - * num id …
Tipos de componentes léxicos de C++:
palabras claves, delimitadores, operadores, identificadores, números, etc.
ING. JORGE BUABUD
42. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Niveles de un lenguaje:
Nivel Sintáctico: Se trata de la forma en la que los componentes léxicos se
organizan dentro de una frase o sentencia, es decir la estructura de dicha
secuencia de símbolos. Este nivel es independiente o libre del contexto.
Por ejemplo:
Lenguaje de programación C++:
Estructura de una sentencia selectiva
if ( exp.lógica ) sentencia else sentencia
Estructura de una sentencia de asignación:
identificador = expresión ;
>
if (N>=0) S1 = S1 + N; else S2 = S2 + N;
ING. JORGE BUABUD
43. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Niveles de un lenguaje:
Nivel Semántico: Se refiere al significado o connotación de una palabra de un
lenguaje. Tiene en cuenta la coherencia de una frase o sentencia. Este nivel
es dependiente del contexto.
Por ejemplo:
Lenguaje de programación C++:
Comprobación de Tipos: verificación de la correspondencia entre las
declaraciones de identificadores y el uso de dichos identificadores.
float I , V[100]; void main (void) { I = 12.3 ; V[ I ] = 23.45 ; }
Observación: En este caso la sentencia es incorrecta semánticamente, ya que
se utiliza una variable I de tipo float como índice del arreglo V.
ING. JORGE BUABUD
44. U.T.N. – F.R.T.
S. y S. de los L. LINGÜÍSTICA MATEMÁTICA
Niveles de un lenguaje:
Nivel Pragmático: Tiene que ver con los hechos o acciones que evocan las
frases o sentencias de un lenguaje y su utilización por parte de un procesador
humano o computacional. Este nivel es dependiente del contexto.
Por ejemplo:
Lenguaje de programación C++:
Una sentencia de entrada implica la espera del dato que ingresa por el
periférico correspondiente, la toma desde el buffer de dicho periférico, la
verificación del formato y de la coherencia del mismo; y almacenamiento en la
posición de memoria RAM correspondiente al identificador de la variable.
float N1; void main(void) { scanf ( “ % f ”, &N1 ); }
Observación: Para que no se produzca un error pragmático, en tiempo de
ejecución, el operador debe introducir un dato de tipo numérico.
ING. JORGE BUABUD