Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Toda comunicación implica la utilización de un lenguaje. Es posible distinguir dos tipos de lenguajes: los
naturales y los formales. Los lenguajes formales obedecen reglas estrictas, no evolucionan y se crean de
manera artificial con un fin específico. Los lenguajes naturales, en cambio, se generan de manera
espontánea, evolucionan con el tiempo y las reglas que rigen su estructura se van estableciendo cuando
el lenguaje ya existe
No se deben confundir los lenguajes formales con el registro lingüístico formal (también llamado a
veces lenguaje formal), correspondiente al uso cuidadoso y correcto del lenguaje propio de ciertas
situaciones comunicativas, opuesto al registro informal, en el que se emplean frases y
expresiones coloquiales
Ejemplos: algunos ejemplos del uso de lenguajes formales en tu vida cotidiana son:
Ejemplos: algunos de los ejemplos del uso de lenguajes formales en la Informática son:
Conocer el tipo de un Lenguaje Formal ayuda a comprender su complejidad, cómo puede ser
descrito y reconocido, y cuáles son sus aplicaciones prácticas. Esto influye en varios aspectos del
diseño y la implementación de sistemas informáticos, desde la creación de lenguajes de
programación hasta el desarrollo de compiladores y la comprensión de la computabilidad de
problemas (posibilidad de resolverse mediante algoritmos).
Lenguajes Regulares: Estos lenguajes se caracterizan por su capacidad para describir patrones
simples y regulares dentro de secuencias de símbolo, como números, identificadores, o patrones
de texto que siguen una estructura predecible y repetitiva.
LENGUAJES FORMALES Y COMPUTABILIDAD
Definición: Son lenguajes descritos por expresiones regulares o gramáticas regulares. Algunas
expresiones regulares son más expresivas que otras; por ejemplo, una expresión regular que
puede reconocer cualquier cantidad de caracteres es más expresiva que otra que solo puede
reconocer un patrón específico
Características: Los lenguajes regulares son reconocidos por autómatas finitos, lo que los hace
útiles para modelar patrones simples o para implementar analizadores léxicos en compiladores.
Se usan para representar números enteros, identificadores en lenguajes de programación, o
palabras que cumplen ciertas reglas gramaticales simples.
Lenguaje de expresiones regulares simples: Las expresiones regulares básicas como ab*, que
representa todas las cadenas que comienzan con 'a' seguida por cero o más b's (a, ab, abb, etc.)
¨
Lenguaje de cadenas que contienen un patrón específico: Por ejemplo, el conjunto de cadenas
que contienen el patrón abc en cualquier lugar de la cadena (abca, babc, cabcd, etc.).
Otro ejemplo sería el lenguaje de números binarios pares, es decir el conjunto de todos los números
binarios que terminan en cero (0, 10, 110, etc.).
Lenguaje de cadenas que siguen un patrón específico de repetición: Por ejemplo, el conjunto de
todas las cadenas que consisten en bloques repetidos de dos caracteres (aa, bb, cc, etc.).
Lenguajes Libres de Contexto (LLC): Estos lenguajes son más expresivos que los lenguajes
regulares y pueden representar estructuras más complejas, como construcciones anidadas,
jerarquías y agrupaciones.
Características: Los LLC son reconocidos por autómatas de pila, lo que los hace adecuados para
describir la sintaxis de lenguajes de programación, para la modelización de estructuras y patrones
que tienen una forma más compleja y recursiva. En efecto, este tipo de lenguajes son los que
más desarrollo han tenido, debido a que son la base de la mayoría de los lenguajes de
programación que incluyan construcciones como sentencias condicionales, bucles y funciones.
Lenguaje de expresiones aritméticas balanceadas: Este lenguaje incluye todas las expresiones
aritméticas bien formadas donde los paréntesis están correctamente equilibrados. Por ejemplo: ((2
+ 3) * (5 - 1)).
Lenguajes Sensibles al Contexto: A pesar de ser más expresivos que los lenguajes libres de
contexto, los lenguajes sensibles al contexto aún tienen limitaciones y no pueden representar
todos los lenguajes recursivamente enumerables.
Características: Los lenguajes sensibles al contexto tienen reglas más flexibles que los LLC, lo
que les permite expresar estructuras con restricciones más complejas. Son más expresivos ya que
las reglas de producción no son completamente independientes del contexto, sino que pueden
tomar en cuenta la estructura circundante de la palabra.
Lenguaje {ww ∣ w ∈ {a,b}∗} Este lenguaje está formado por cadenas repetidas, donde una cadena
es igual a su propia repetición. Por ejemplo, aa, bb, aaaa, bbbb, etc.
Definición: Son lenguajes reconocidos por Máquinas Universales de Turing que, cuando se le da
una cadena perteneciente al lenguaje, eventualmente se detiene y acepta esa cadena. Sin
embargo, si la cadena no pertenece al lenguaje, la máquina podría no detenerse o podría entrar
en un bucle infinito.
puede enumerar todas las cadenas válidas del lenguaje, pero no necesariamente detenerse en el
proceso.
Ejemplo:
Un alfabeto: Es un conjunto finito de símbolos y/o caracteres que constituyen los elementos
básicos del lenguaje.
Palabras o Cadenas: Son secuencias de símbolos tomados del alfabeto del lenguaje. Pueden ser
de longitud variable y contener cualquier combinación de símbolos del alfabeto.
Reglas o gramática formal: definen de manera unívoca cómo se pueden combinar los símbolos
del alfabeto para formar lo que se denominan palabras válidas o cadenas válidas en el lenguaje,
esto es, de todas las posibles palabras (de todas las posibles combinaciones de símbolos),
aquellas que pertenecen al lenguaje.
Ejemplo: los elementos del lenguaje L= {00,11,01,10} del sistema binario son
Los símbolos 0 y 1
El alfabeto {0, 1}
La regla p= xx con x|x x=0 o x=1