Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Lenguajes Formales en Ingeniería Informática - UCM, Resúmenes de Informática

Una introducción a los lenguajes formales en el contexto de Ingeniería Informática en la Universidad Complutense de Madrid. El profesor Federico Peinado elaboró el material para el curso 2009-2010. Se explica qué son los lenguajes formales, su clasificación y características de gramáticas regulares y expresiones regulares. El documento también incluye ejemplos de expresiones regulares y gramáticas formales.

Tipo: Resúmenes

2021/2022

Subido el 10/10/2022

cachorritadulce
cachorritadulce 🇪🇸

4.4

(33)

72 documentos

1 / 35

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Procesadores de Lenguaje
Repaso. Lenguajes formales
Ingeniería en Informática
Facultad de Informática – Universidad Complutense de Madrid
Curso 2009-2010
Profesor
Federico Peinado
Elaboración del material
José Luis Sierra
Federico Peinado
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23

Vista previa parcial del texto

¡Descarga Lenguajes Formales en Ingeniería Informática - UCM y más Resúmenes en PDF de Informática solo en Docsity!

Procesadores de Lenguaje

Repaso. Lenguajes formales

Ingeniería en Informática

Facultad de Informática – Universidad Complutense de Madrid

Curso 2009-

Profesor Federico Peinado Elaboración del material José Luis SierraFederico Peinado

Lenguajes formales

Un

lenguaje formal

es un conjunto (finito o infinito) de

cadenas finitas de símbolos primitivos

Ej: El lenguaje “Número” es simplemente el conjunto infinitode cadenas finitas formadas con los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9

Dichas cadenas están formadas gracias a un

alfabeto

y a

una

gramática

que están formalmente especificados

El alfabeto es un

conjunto finito no vacío

de símbolos

La gramática es un

conjunto finito

de reglas para formar

cadenas finitas juntando símbolos del alfabeto

A cada cadena de símbolos de un lenguaje formal se lellama

fórmula bien formada

(o palabra) del lenguaje

Lenguajes regulares

Un

lenguaje regular

es un lenguaje formal que tiene

estas características:

Puede ser descrito

mediante una

expresión regular

(expresar de forma compacta cómo son todas las cadenasde símbolos que le pertenecen)

Puede ser generado

mediante una

gramática regular

(obtener todas las cadenas de símbolos que le pertenecen)

Puede ser reconocido

mediante un

autómata finito

(saber si una cadena de símbolos pertenece a él o no)

¡Todas estas características facilitan mucho sutratamiento computacional, por eso nos interesan loslenguajes regulares!

Expresiones regulares (ERs)

El conjunto de

expresiones regulares

sobre un alfabeto

A se denomina

ER(A)

y sólo contiene expresiones

formadas mediante estas reglas:

ER(A) y denota el lenguaje {}, siendo

el vacío

λ ∈

ER(A) y denota el lenguaje {

λ

}, siendo

λ

la cadena vacía

Si x

A, x

ER(A) y denota el lenguaje {x}

Si H

ER(A) y K

ER(A), con lenguajes denotados L

H

y L

K

(H | K)

ER(A) y denota el lenguaje L

H

L

K

(Conjunto de todas las cadenas de H o de K)

(HK)

ER(A) y denota el lenguaje L

HK

siendo

L

HK

= {hk tal que h

L

H

y k

L

K

(Conjunto de todas las concatenaciones posibles de una cadena de H y otra de K)

H*

ER(A) y denota el lenguaje L

H*

siendo

L

H*

λ

{a

α

tal que a

L

H

y

α ∈

L

H*

(Conjunto de todas las concatenaciones sucesivas posibles de cadenas de H)

Los paréntesis

asocian operadores a cadenas de

símbolos. Si no aparecen, repetir

es más prioritario que

concatenar y concatenar más prioritario que alternar |

Ejemplos de expresiones regulares

Descripción del lenguaje de las cadenas que empiezanpor una “a” y continúan con “a’s” y “b’s”

a(a|b)*

Descripción del lenguaje de las cadenas que empiezanpor “a”, continúan con “b’s” y “c’s” y terminan en “d”

a(b|c)*d

Descripción del lenguaje de las cadenas formadas por trozos de cadena

que pueden empezar (o no) por una “a”

y continúan con un número que tenga al menos un dígito;además terminan siempre en asterisco *

(a?[0-9]+)**

Gramáticas formales

Las

gramáticas formales

se definen con una

tupla

<T, N, n

0

, P> siendo:

T el alfabeto de símbolos

terminales

(Símbolos que forman parte directamente de las cadenas del lenguaje)

N el alfabeto de símbolos

no terminales

(Símbolos más abstractos que representan posibles partes de las cadenas del lenguaje)

n

0

N, el no terminal inicial o

axioma

P el conjunto de reglas de producción o

producciones

de la

gramática

Puede representarse como

αααα

x

n

αααα

y

→→→→ β

βββ

ó

α α

α α

x

n

α α

α α

y

ββββ

donde n

N y

α

x

α

y

β ∈

(T

N)*

Autómatas finitos (AFs)

Los

autómatas finitos

se definen con una

tupla

<E, e

o

, A, t, F> siendo:

E el conjunto

finito

y

no vacío

de

estados posibles

e

o

E, el

estado inicial

del autómata

A el

alfabeto

de entrada que acepta el autómata

t, la

función de transición de estados

F

E, el conjunto de

estados finales

Hay dos tipos de autómatas finitos

Autómatas finitos deterministas

(AFDs)

t

E

×

A

E

(Con cada símbolo de entrada se pasa de un estado del autómata a otro)

Autómatas finitos no deterministas

(AFNDs)

t

E

×

(A

λ

(E)

(Con algún símbolo de entrada, o con la cadena vacía, se pasa de uno de los

estados del autómata a otro conjunto no vacío de estados -

significa partición -)

Comportamiento de un autómata finito

Sirve para

reconocer cadenas de símbolos

de un

lenguaje regular, para lo que:

Parte del estado inicial

Recibe

uno a uno

los símbolos de la cadena de entrada

En un AFND este paso a veces se ignora, pudiendoocurrir una

transición espontánea

λ

-transición)

Aplica la función de transición para cambiar su estado

Un AFND puede estar

en varios estados a la vez

Si quedan símbolos por procesar, vuelve al paso 2

Si no quedan símbolos por procesar…

Si se ha alcanzado algún estado final la cadena esreconocida como

perteneciente

al lenguaje [Fin]

Si

no

se ha alcanzado ningún estado final la cadena es

rechazada por ser

no perteneciente

al lenguaje [Fin]

Notaciones para autómatas finitos

Diagrama de transición de estados

Si varias transiciones van de un mismo estado inicial a unmismo estado final, con distintos símbolos, se pueden

juntar

e

o

e

1

a

a

e

2

b

a

b

e

o

e

1

a

a,b

e

2

a,b

Ejemplos de autómatas finitos

e

o

[1-9]

e

2

[0-9]

e

1

e

o

e

1

[1-9]

e

3

e

2

[0-9]

e

o

[a-z],[A-Z]

e

1

[a-z],[A-Z],[0-9]

Números naturales

Números naturales con signo

Identificadores (básicos)

Lenguajes incontextuales

Un

lenguaje incontextual

es un lenguaje formal que tiene

estas características:

Puede ser generado

mediante una

gramática incontextual

(obtener todas las cadenas de símbolos que le pertenecen)

Puede ser reconocido

mediante un

autómata con pila

(saber si una cadena de símbolos pertenece a él o no)

Aunque son más complejos que los regulares, estascaracterísticas facilitan su tratamiento computacional, poreso también nos interesan los lenguajes incontextuales

Gramáticas incontextuales

Las

gramáticas incontextuales

tienen producciones

n

donde n

N y

(T

N)*

Ejemplo: El lenguaje de los números binarios

G

bin

Terminales: 0, 1No terminales: bits, bitAxioma: bitsProducciones:

bits

bits bit

bits

bit

bit

bit

Ejemplo de derivación

G

bin

bits

bits bit

bits bit bit

bit bit bit

1 bit bit

1 0 bit

Más sobre gramáticas formales (incontextuales)



El

lenguaje generado

por una gramática G es L(G)

L(G) = {

α

tal que

α∈

T* y n

0

G

α

}

(Todas las posibles sentencias derivables del axioma de la gramática n

0

)



Si

α α

α α

⇒ ⇒

⇒ ⇒

G


β β

β β

puede haber sólo una secuencia de

derivación inmediata (

derivación de

β β

β β

desde

α α

α α

) o

varias posibles

Cada una se representa así:

α

G

α

o

α

o

G

α

1

α

n

G

β

O en forma compacta:

α

G

α

o

G

α

1

G

G

β

Derivación

por la izquierda

aquella en la que cada

derivación inmediata

α

x

G

α

y

usa la producción n

→ β

0

P

para el n situado lo más a la izquierda posible en

α

x

Derivación

por la derecha

aquella en la que cada

derivación inmediata

α

x

G

α

y

usa la producción n

→ β

0

P

para el n situado lo más a la derecha posible en

α

x