Este documento describe los conceptos básicos de los lenguajes formales y autómatas. Define términos como alfabeto, símbolo, cadena, lenguaje y tipos de lenguajes como naturales, artificiales y regulares. También explica los autómatas finitos deterministas y no deterministas, y herramientas como traductores, intérpretes y expresiones regulares. El objetivo es proporcionar una introducción a estos temas fundamentales de la teoría de lenguajes formales.
2. ÍNDICE
• 1. Introducción
• 2. Repaso general de conceptos
• 3. Definición de lenguaje
• 4. Tipos de lenguajes
• 5. Herramientas computacionales ligadas con el lenguaje
• 6. Definición de autómatas
• 7. Análisis AFD
• 8. Análisis AFND
• 9. Regex
• 10. Conclusión
• 11. Bibliografía
3. INTRODUCCIÓN
Los lenguajes formales y autómatas ,están
interpretados en lenguajes básicos pero con
operadores lógicos para la interactividad de los
conjuntos.
4. • Alfabeto: es un conjunto de símbolos y
normalmente se denota con la letra Σ. Ejemplos
• Σ = {a,b,c,…z} Σ = {1,2,3,…9} Σ = {0,1} Σ = {a,b}
5. • Símbolo: es un signo que representa algo
abstracto. En este material, símbolo se referirá a un
caracter alfanumérico.
• Ejemplos : a, b, 1, 0, x, y, z, 9,
6. * Cadenas: es un conjunto de símbolos de algún alfabeto Σ concatenados
entre sí, es decir uno enseguida del otro.
Ejemplos:
Para el alfabeto Σ = {a,b,c,…z} algunas cadenas son: ab, z, cc, abc, abab
Para el alfabeto Σ = {0,1} algunas cadenas son: 0, 1, 01, 000, 0101
* Longitud de una cadena: es el número de símbolos que componen la
cadena.
Ejemplos:
"abcbd" tiene longitud 4. Así |abcbd| = 5.
“Manuel” tiene longitud 6. Así |Manuel|=6
7. * Cadena vacía: ε, es la cadena que no
contiene ningún símbolo.
Ejemplos representativos en los lenguajes de
programación:
C, C++: (“”){'0’}
C++: std::string()
* Concatenación de cadenas: es "pegar o unir"
las dos cadenas para formar una nueva o una
sola. Es decir, La concatenación de w con z es la
cadena que se obtiene al añadir a la cadena w la
cadena z. Se denota como wz o w · z.
Ejemplo:
8. *Universo del discurso: Es un conjunto de todas las cadenas
donde podemos formar con símbolos del alfabeto V le
denominamos universo del discurso de V y la representamos
de la siguiente manera W (V).
Ejemplos:
Un alfabeto con una sola letra V = { a }, podemos decir que el
universo del discurso es: W(V) = { λ, a, aa, aaa, aaaa,....} y asi
contiene una cadenas infinitas.
9. * Lenguaje: es un conjunto de cadenas o palabras
definido en un alfabeto Σ.
Ejemplos
Si Σ = {0,1} podríamos definir los lenguajes “conjunto de
cadenas en Σ que terminan en 0” algunos
de las palabras del lenguajes serían:
0, 10,00,010,100, 110…
10. • Tipos de lenguajes: Natural, Artificial y Regulares.
Lenguaje Natural: Este tipo de lenguaje es el que nos permite el designar
las cosas actuales y razonar a cerca de ellas, fue desarrollado y organizado
a partir de la experiencia humana y puede ser utilizado para analizar
situaciones altamente complejas y razonar muy sutilmente.
Ejemplo: inglés, francés, español, etc.
Lenguaje Artificial: Son lenguajes de tamaño típicamente muy limitado
que emergen ya sea en simulaciones computacionales entre agentes
artificiales, interacciones entre robots o en experimentos psicológicos
controlados con seres humanos.
Un claro ejemplo del uso de estos lenguajes es la matemática, que
permite formalizar con precisión teorías físicas y los lenguajes de
programación para transmitir órdenes a las computadoras para que
ejecuten ciertas tareas.
Lenguaje Regular: es un tipo de lenguaje formal que satisface las
siguientes propiedades: Los lenguajes más sencillos que se considerarán
son los lenguajes regulares, es decir, los que se pueden generar a partir de
los lenguajes básicos, con la aplicación de las operaciones de unión,
concatenación y * de Kleene un número finito de veces.
11. *Traductor: Es un programa que tiene como entrada un texto escrito en
un lenguaje (lenguaje fuente) y como salida produce un texto escrito en
un lenguaje (lenguaje objeto) que preserva el significado de origen.
Ejemplos: ensambladores y los compiladores.
Ensambladores: Es el programa que realiza la traducción de un programa
escrito en ensamblador a lenguaje máquina.
Compiladores: es un programa informático que traduce un programa
escrito en lenguaje de programación y lo pasa a lenguaje de
programación, podemos decir que este programa nos permite traducir un
código fuente de un programa en lenguaje de nivel alto, y lo pasmos a
otro nivel inferior (lenguaje máquina).
12. * Intérpretes: Es un programa o software capaz de analizar y ejecutar
programas escritos en lenguajes de alto nivel. Los intérpretes
funcionan de manera distinta a los compiladores, ya que van
traduciendo y ejecutando el código hecho por el programador o
desarrollador línea a línea.
Ejemplos: BASIC, QBASIC, QUICKBASIC, VISUALBASIC, SMALLTALK,
JAVA.
13. Es una máquina matemática M formada por 5 elementos M
= (Σ, Q, s, F, δ) donde Σ es un alfabeto de entrada, Q es un
conjunto finito de estados, s es el estado inicial, F es un
conjunto de estados finales o de aceptación y δ (delta) es
una relación de transición.
14. Autómata Finito Determinista (AFD) es un autómata finito
en donde δ (delta) es una función de transición, es decir,
que para cada par (estado actual y símbolo de entrada) le
corresponde un único estado siguiente.
Autómata Finito No Determinista (AFND) es un autómata
finito en donde δ no es necesariamente una función de
transición, es decir, que para cada par (estado actual y
símbolo de entrada) le corresponde cero, uno, dos o más
estados siguientes, Normalmente la relación de transición
para un AFND se denota con ∆.
15. Regex: Es una secuencia de caracteres que conforma un
patrón de búsqueda. Se utilizan principalmente para la
búsqueda de patrones de cadenas de caracteres u
operaciones de sustituciones.
Por ejemplo, pudieras usar expresiones regulares para
validar datos en un formulario: nombres de usuario,
contraseñas, direcciones de correo, códigos postales,
números telefónicos, etc.
Ejemplos:
Un claro ejemplo del uso de regex en la tecnología de la
información es la función de buscar y reemplazar de los
editores de texto, la cual fue implementada por primera vez
en los por Ken Thompson.
16. CONCLUSIÓN
Hay todo tipos de lenguajes , y cada tipo cumple
con su labor , de entender, traducir y explicar,
además todos los lenguajes interactúan entre si,
para encontrar la singularidad o patrón de
origen.