Está en la página 1de 25

Análisis Léxico

November 3, 2023
Agenda
• Introducción • Aplicaciones de las Expresiones Regulares

• Gramáticas Regulares - Definición • Autómata Finito - Definición


• Autómata Finito - Explicación
• Gramáticas Regulares - Explicación
• Tipos de Autómatas Finitos
• Tipos de Gramáticas Regulares
• Ejemplos de Autómatas Finitos
• Ejemplos de Gramáticas Regulares
• Aplicaciones de los Autómatas Finitos
• Aplicaciones de las Gramáticas Regulares
• Relación entre Gramáticas Regulares, Expresiones
• Expresiones Regulares - Definición Regulares y Autómatas Finitos
• Conversion: Regular Grammars, Regular
• Expresiones Regulares - Explicación
Expressions, and Finite Automata
• Sintaxis y Semántica de Expresiones • Conclusiones - Recapitulación
Regulares
• Conclusiones - Futuro en las Ciencias
• Ejemplos de Expresiones Regulares Computacionales
Introducción

Las gramáticas regulares, expresiones regulares y autómatas finitos son conceptos


fundamentales en el análisis léxico.

Una gramática regular define un lenguaje mediante reglas de producción y símbolos


terminales y no terminales.

Una expresión regular es una cadena de caracteres que permite definir patrones de texto.

Los autómatas finitos son modelos matemáticos que representan un sistema que pasa de
un estado a otro en respuesta a una entrada.
Gramáticas Regulares
Gramáticas Regulares - Definición
Definición y explicación de gramáticas regulares

● Las gramáticas regulares son un tipo de gramáticas formales utilizadas


para describir lenguajes regulares.
● Las gramáticas regulares constan de reglas de producción, símbolos
terminales y no terminales, y un símbolo inicial.

● Las reglas de producción de una gramática regular son de la forma A -> w,


donde A es un símbolo no terminal y w es una cadena de símbolos
terminales y no terminales.

● Las gramáticas regulares pueden ser representadas mediante autómatas


finitos deterministas o no deterministas.
Gramáticas Regulares -
Explicación
Definición y explicación de gramáticas regulares

● Las gramáticas regulares son un tipo de gramática formal


que sigue un conjunto de reglas específicas.

● Se utilizan para describir lenguajes regulares, que son


lenguajes que pueden ser reconocidos por un autómata
finito.

● Permiten generar cadenas de caracteres que cumplen con


las reglas de producción establecidas.
Tipos de Gramáticas Regulares

Gramática Regular Derecha Gramática Regular Izquierda

También conocida como gramática de mano También conocida como gramática de mano
derecha. izquierda.

En esta gramática, las producciones tienen un En esta gramática, las producciones tienen un
único símbolo no terminal al final de la producción. único símbolo no terminal al inicio de la producción.

La derivación de las cadenas ocurre de izquierda a La derivación de las cadenas ocurre de derecha a
derecha. izquierda.

Se utiliza principalmente en el diseño de autómatas Se utiliza principalmente en el análisis sintáctico de


finitos y en el análisis léxico de compiladores. compiladores y en el procesamiento de lenguajes
naturales.
Ejemplos de Gramáticas Regulares
Ejemplos de gramáticas regulares:

● Gramática para reconocer números enteros: S -> 0A | 1A


| 2A | ... | 9A, A -> 0A | 1A | 2A | ... | 9A | ε

● Gramática para reconocer palabras en un lenguaje


binario: S -> 0S0 | 1S1 | ε

● Gramática para reconocer números en notación decimal:


S -> D | D.D, D -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

● Gramática para reconocer cadenas de paréntesis


balanceadas: S -> (S)S | ε
Aplicaciones de las Gramáticas Regulares
Aplicaciones de las Gramáticas Regulares

● Análisis léxico y sintáctico en


compiladores

● Validación de formatos de datos

● Búsqueda y extracción de información


en texto

● Análisis de lenguaje natural


Expresiones Regulares
Expresiones Regulares -
Definición
Definición y explicación de las expresiones regulares

● Las expresiones regulares son patrones de búsqueda que


permiten encontrar coincidencias en cadenas de texto.

● Consisten en una combinación de caracteres literales y


metacaracteres que representan reglas de búsqueda.

● Las expresiones regulares son utilizadas ampliamente en el


procesamiento de texto y el pattern matching.
Expresiones Regulares - Explicación
Definición y explicación de las expresiones regulares

● Las expresiones regulares son secuencias de caracteres que forman un


patrón de búsqueda
● Se utilizan para buscar y manipular texto de manera eficiente
● Puede utilizarse para definir reglas que deben seguir ciertas palabras:
nombre de variables, contraseñas, etcétera.
Sintaxis y Semántica de Expresiones Regulares

Sintaxis de Expresiones Regulares Semántica de Expresiones Regulares

• Las expresiones regulares se componen de • La semántica de una expresión regular define el


caracteres literales y metacaracteres. significado o comportamiento de la expresión.

• Los metacaracteres permiten realizar operaciones • Una expresión regular puede representar un
como coincidencia de patrones, repeticiones y conjunto de cadenas que cumplen ciertas reglas.
agrupaciones.
• Esta semántica le permite que pueda ser utilizada en
• Utilizando los caracteres y metacaracteres la búsqueda y/o validación de patrones de texto.
construimos expresiones regulares que nos
permitan describir las características de cadenas de
texto particulares.
Ejemplos de Expresiones Regulares
Ejemplos de expresiones regulares:

● Validar una dirección de correo electrónico:


^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

● Buscar números de teléfono en un texto:


^[0-9]{3}-[0-9]{3}-[0-9]{4}$

● Encontrar todas las palabras que comienzan con la letra 'a':

^a[a-z]*.$

● Ejemplo adicional: Expresión regular para validar una URL:


^(http|https):\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(\/[a-zA-Z0-9.-]*)*$
Aplicaciones de las Expresiones Regulares
Aplicaciones de ● Validación de datos: Las expresiones regulares se utilizan para verificar si
las Expresiones un dato cumple con un patrón específico.
Regulares
● Búsqueda y filtrado de texto: Las expresiones regulares permiten
encontrar y filtrar texto basado en patrones específicos, lo que es útil en
aplicaciones como procesamiento de texto y motores de búsqueda.

● Extracción de información: Las expresiones regulares se utilizan para


extraer información específica de texto, como direcciones de correo
electrónico, números de teléfono, etc.

● Sustitución de texto: Las expresiones regulares se utilizan para reemplazar


texto que cumple con un patrón específico por otro texto.
Relacion Gramática y Expresión Regular
Automata Finito
Autómata Finito - Definición
Definición y explicación de autómatas finitos

● Los autómatas finitos son modelos matemáticos


abstractos que representan sistemas que pueden estar
en diferentes estados y cambiar de estado en respuesta
a una entrada.

● Estos modelos consisten en un conjunto finito de


estados, un conjunto finito de símbolos de entrada, una
función de transición que describe cómo los estados
cambian en respuesta a una entrada y un conjunto de
estados finales.
Autómata Finito - Definición
Definición y explicación de autómatas finitos

● Los autómatas finitos pueden ser deterministas


(DFA) o no deterministas (NFA), lo que significa que
su comportamiento está determinado de manera
única o no determinística (aleatoria),
respectivamente.

● Los autómatas finitos son ampliamente utilizados en


ciencias de la computación y teoría de la
computación para modelar y analizar sistemas de
estados finitos.
Tipos de Autómatas Finitos

Autómata Finito Determinista (DFA) Autómata Finito No Determinista (NFA)

● Un DFA es un tipo de autómata finito ● Un NFA es un tipo de autómata finito


en el que cada estado tiene una única en el que un estado puede tener
transición para cada símbolo de múltiples transiciones para un mismo
entrada. símbolo de entrada.

● Es determinista porque siempre ● No es determinista porque puede tener


produce un único estado siguiente múltiples estados siguientes para un
para cada símbolo de entrada. mismo símbolo de entrada.

● Se utiliza para modelar sistemas con ● Se utiliza para modelar sistemas con
comportamiento predecible y bien comportamiento no determinista o con
definido. múltiples posibilidades.
Ejemplos de Autómatas Finitos
Ejemplos de ● Autómata finito que valida la cadena '0101'.
autómatas
finitos: ● Autómata finito que reconoce el lenguaje de todas las
cadenas binarias que terminan en '00'.

● Autómata finito que acepta el lenguaje de todas las


cadenas binarias que contienen '11' como subcadena.

● Autómata finito que verifica si una cadena es un número


binario válido.
Aplicaciones de los Autómatas Finitos
Aplicaciones de los Autómatas Finitos

● Diseño de compiladores: Los autómatas finitos se utilizan para analizar y reconocer la


estructura sintáctica de un lenguaje de programación.

● Parsing: Los autómatas finitos se utilizan para reconocer y analizar la estructura sintáctica de un
texto o cadena de caracteres.

● Análisis léxico: Los autómatas finitos se utilizan para realizar el análisis léxico de un lenguaje,
identificando y clasificando los componentes léxicos.

● Procesamiento de lenguaje natural: Los autómatas finitos se utilizan para reconocer y procesar
patrones en texto, como en el caso de reconocimiento de palabras clave o análisis de
sentimientos.
Relación entre Gramáticas Regulares, Expresiones
Regulares y Autómatas Finitos
Relación entre Las gramáticas regulares y las expresiones regulares están estrechamente
Gramáticas Regulares y relacionadas. Una gramática regular puede ser representada mediante una
Expresiones Regulares expresión regular y viceversa.

Las expresiones regulares pueden ser utilizadas para describir los patrones
Relación entre
de entrada aceptados por un autómata finito. Un autómata finito puede ser
Expresiones Regulares y construido a partir de una expresión regular para reconocer el lenguaje
Autómatas Finitos definido por dicha expresión.

Una gramática regular puede ser convertida en un autómata finito. El


Relación entre
autómata finito resultante reconocerá el mismo lenguaje que la gramática
Gramáticas Regulares y regular original. Además, un autómata finito puede ser utilizado para generar
Autómatas Finitos una gramática regular equivalente.
Conversión: Gramáticas Regulares, Expresiones
Regulares, y Autómatas Finitos
Relación entre Gramáticas Técnicas de Conversión Applications of
Regulares, Expresiones Regulares y
Autómatas Finitos Conversion

Estos conceptos se encuentran Las gramáticas regulares se Poder convertir entre estos
muy relacionados en la teoría de pueden convertir en expresiones elementos es muy útil para el
lenguajes formales. Se pueden regulares utilizando técnicas diseño de compiladores,
transformar una en otras, debido como la eliminación de reconocimiento de patrones en
a que sus propiedades son producciones “inútiles”. Las texto, así como resolución de
equivalentes. expresiones regulares se pueden problemas en lenguajes formales.
convertir en autómatas finitos Esto también es herramienta para
como los métodos de Thompson los algoritmos de análisis y
o el algoritmo de construcción de procesamiento de texto.
subconjuntos.
Conclusiones - Recapitulación
Expresiones Regulares y Autómatas
Gramáticas Regulares
Finitos

● Definición y explicación de gramáticas regulares ● Definición y explicación de las expresiones


regulares
● Tipos de gramáticas regulares: gramática regular
derecha y gramática regular izquierda ● Sintaxis y semántica de expresiones regulares

● Ejemplos de gramáticas regulares ● Ejemplos de expresiones regulares

● Aplicaciones de las gramáticas regulares ● Aplicaciones de expresiones regulares

También podría gustarte