Está en la página 1de 7

INSTITUTO TECNOLOGICO SUPERIOR

DE CIUDAD ACUA
CARRETERA A PRESA LA AMISTAD KM. 9 C.P. 26280 CD. ACUA, COAHUILA TEL: (877)773
1800 FA: ET 107
!!!."#$%&'&()$&*#+$,%+.#*,.-.
ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES.
Investigacin.
MATERIA:
Lenguajes y autmatas II.
CARRERA:
Ingeniera en Sistemas Computacionales.
CATEDRTICO:
Ing. J. Christian Martnez Contreras
ALUMNO:
Marlene Rojas Sandoval
MATRICULA:
!!"S#$#%
SEMESTRE:
&mo.
Turno Nocturno
CD. ACUA COA!UILA M"#ICO $% &e Se'tie()re &e* %$+,

E-'resiones regu*ares.
Los lenguajes aceptados por un '( son )*cilmente descritos por una simple
e+presin regular.
Sea un conjunto )inito de sm,olos y sean L1 y L2 conjuntos de cadenas de *.
La concatenacin de L1 y L2- denotada por L1L2, es el conjunto {xy | x est* en L1
e y
est* en L2}.
.na e+presin regular es una notacin normalizada para representar lenguajes
regulares- es decir- lenguajes generados por gram*ticas de tipo ". Como veremos-
las e+presiones regulares permiten descri,ir con e+actitud y sencillez cual/uier
lenguaje regular. 0ara de)inir una e+presin regular 1e.r.2 se pueden utilizar todos
los sm,olos del al)a,eto 3 y- adem*s- 4 y 5. Los operadores /ue tam,i6n se
pueden utilizar son7
. Representa la unin
. Representa la concatenacin 1este sm,olo no se suele escri,ir2
/ Representa el cierre de 8leene
0 1 Modi)ican las prioridades de los dem*s operadores
.na e+presin regular se puede de)inir de acuerdo a los siguientes criterios7
!. 5 es una e.r. /ue representa al lenguaje vaco 1no tiene pala,ras2 L595
. : es una e.r. /ue representa al lenguaje L 49;4<
". a / 3 es una e.r. /ue representa al lenguaje La 9 ;a<
#. Si = y > son e.r. entonces = ? > tam,i6n lo es y representa al lenguaje
L=?> 9 L= 0 L>
@. Si = y > son e.r. entonces = > tam,i6n lo es y representa al lenguaje L =
> 9 L = L >
%. Si = es una e.r. entonces =1 tam,i6n lo es y representa al lenguaje
L =A 9 .Bi9 C L i= /ue tam,i6n se puede representar = 1 9 3 Bi9C =i
Slo son e. r. a/uellas /ue puedan ser de)inidas utilizando los % puntos vistos
anteriormente. La prioridad de las operaciones- /ue puede modi)icarse utilizando
par6ntesis- es de mayor a menor7 . .
A*ge)ra &e *as e-'resiones regu*ares
2ro'ie&a&es &e *a unin 0.1
!. 'sociativa 1=?>2 ? D 9 = ? 1>?D2
. Conmutativa = ? > 9 > ? =
". Elemento neutro 152 = ? 5 9 =
#. Idempotencia = ? = 9 =
2ro'ie&a&es &e *a concatenacin 0.1
!. 'sociativa 1= >2 D 9 = 1>D2
. Fistri,utiva respecto de la unin = 1>?D2 9 = > ? = D
". Elemento neutro 142 = 4 9 4 = 9 =
#. = 5 9 5
@. Go es conmutativa
2ro'ie&a&es &e* cierre &e 3*eene 0/1
!. 41 9 4
. 51 9 4
". =1 =1 9 =1
#. =1 = 9 = =1
@. 1=121 9 =1
%. =1 9 4 ? = =1
&. =1 9 4 ? = ? = ?...? =n ? =n?! =1
Si tenemos una )uncin ) 7 En 3nH I E 3 1por ejemplo ) 1=A- >2 9 =1>2- donde E3
representa al conjunto de las e+presiones regulares de)inidas so,re 3- entonces7
$. ) 1=->-D-...2 ? 1=?>?D?...21 9 1=?>?D?...21
J. 1) 1=1- >1- D1-...221 9 1=?>?D?...21
De4inicin &e gra(5tica regu*ar
E+isten dos tipos de gram*ticas de tipo "7
Las gram*ticas lineales por la derecha y las lineales por la iz/uierda.
Las producciones de las gram*ticas lineales por la derecha pueden ser de la
)orma7
!. '779 a
!. . '779 a K donde '- K / 3 G- a / 3 L
. ". S77 9 4 y S es el sm,olo inicial de la gram*tica
Las producciones de las gram*ticas lineales por la iz/uierda pueden ser de la
)orma7
!. '77 9 a
!. . '77 9 K a donde '- K / 3 G- a /3 L
. ". S77 9 4 y S es el sm,olo inicial de la gram*tica.
Estos dos tipos de gram*ticas tienen el mismo poder generativo- es decir- dada
una gram*tica lineal por la iz/uierda siempre e+iste una gram*tica lineal por la
derecha /ue es e/uivalente a ella y viceversa. 'dem*s- dado un lenguaje regular
siempre e+iste- al menos- una gram*tica lineal por la iz/uierda y una gram*tica
lineal por la derecha /ue lo generan. Lodo lenguaje de tipo " puede representarse
mediante una e.r. y una e.r. siempre representa a un lenguaje de tipo ".
An5*isis *6-ico 0Scanner1.
La )ase de rastreo 1scanner2- tiene las )unciones de leer el programa )uente como
un archivo de caracteres y dividirlo en toMens. Los toMens son las pala,ras
reservadas de un lenguaje- secuencia de caracteres /ue representa una unidad de
in)ormacin en el programa )uente. En cada caso un toMen representa un cierto
patrn de caracteres /ue el analizador l6+ico reconoce- o ajusta desde el inicio de
los caracteres de entrada. Fe tal manera es necesario generar un mecanismo
computacional /ue nos permita identi)icar el patrn de transicin entre los
caracteres de entrada- generando toMens- /ue posteriormente ser*n clasi)icados.
Este mecanismo es posi,le crearlo a partir de un tipo espec)ico de m*/uina de
estados llamado autmata )inito.
7uncin &e* ana*i8a&or *6-ico.
Es la primera )ase de un compilador. Su principal )uncin consiste en leer la
secuencia de caracteres del programa )uente- car*cter a car*cter- y ela,orar como
salida la secuencia de componentes l6+icos /ue utiliza el analizador sint*ctico. El
analizador sint*ctico emite la orden al analizador l6+ico para /ue agrupe los
caracteres y )orme unidades con signi)icado propio llamados componentes l6+icos
1toMens2.
Los componentes l6+icos representan7
0ala,ras reservadas7 i)- Nhile- do- O
Identi)icadores7 varia,les- )unciones- tipos de)inidos por el usuario-
eti/uetas- O
Pperadores7 9- Q- R- Q9- R9- ?- A- O
Sm,olos especiales7 S- 1 2- ; <- O
Constantes num6ricas. literales /ue representan valores enteros y
)lotantes.
Constantes de car*cter7 literales /ue representan cadenas de
caracteres.
El analizador l6+ico opera ,ajo peticin del analizador sint*ctico devolviendo un
componente l6+ico con)orme el analizador sint*ctico lo va necesitando para
avanzar en la gram*tica. Los componentes l6+icos son los sm,olos terminales de
la gram*tica. Suele implementarse como una su,rutina del analizador sint*ctico.
Cuando reci,e la orden To,t6n el siguiente componente l6+icoU- el analizador
l6+ico lee los caracteres de entrada hasta identi)icar el siguiente componente
l6+ico.
'dem*s el analizador l6+ico es responsa,le de7
Manejo de apertura y cierre de archivo- lectura de caracteres y gestin
de posi,les errores de apertura.
Eliminar comentarios- espacios en ,lanco- ta,uladores y saltos de lnea.
Inclusin de archivos y macros.
Conta,ilizar nVmero de lneas y columnas para emitir mensajes de error.
.na de las ventajas de separar el an*lisis l6+ico y an*lisis sint*ctico es /ue )acilita
la transporta,ilidad del traductor si se decide realizar cam,ios posteriores- por
ejemplo cam,iar las eti/uetas ,eginWend por llaves de apertura y cierre ; <.
Co('onentes *6-icos 'atrones 9 *e-e(as.
En la )ase de an*lisis- los t6rminos componentes l6+icos 1toMen2- patrn y le+ema
se emplean con signi)icados espec)icos. .n analizador l6+ico- inicialmente lee los
le+emas y le asigna un signi)icado propio.
X co('onente *6-ico es la secuencia lgica y coherente de caracteres
relativo a una categora7 identi)icador- pala,ra reservada- literales
1cadenaYnum6rica2- operador o car*cter de puntuacin- adem*s de /ue un
componente l6+ico puede tener uno o varios le+emas.
X 'atrn es una regla /ue genera la secuencia de caracteres /ue puede
representar a un determinado componente l6+ico 1e+presin regular2.
X *e-e(a es una cadena de caracteres /ue concuerda con un patrn /ue
descri,e un componente l6+ico 1valor de cadena2.
El analizador l6+ico recoge in)ormacin so,re los componentes l6+icos en sus
atri,utos asociados. Los toMens in)luyen en las decisiones del an*lisis sint*ctico- y
los atri,utos- en la traduccin de los toMens. En la pr*ctica los componentes
l6+icos suelen tener solo un atri,uto.
0ara e)ectos de diagnstico- puede considerarse tanto el le+ema para un
identi)icador como el nVmero de lnea en el /ue se encontr por primera vez. Esta
in)ormacin puede ser almacenada en la ta,la de sm,olos para el identi)icador
1estructura de datos2.
An5*isis sint5ctico.
Es el proceso de determinar si una cadena dada puede ser generada por una
gram*tica.
X Los analizadores sint*cticos de lenguajes de programacin suele hacerse
de iz/uierda a derecha- viendo un componente l6+ico a la vez
X Los analizadores pueden clasi)icarse dependiendo de la )orma en cmo se
construyen los nodos del *r,ol de derivacin sint*ctico7 ascendentes y
descendentes
r)o* sint5ctico &e una sentencia &e un *engua:e.
Es una representacin /ue se utiliza para descri,ir el proceso de derivacin de
dicha sentencia.
Como nodos internos del *r,ol- se sitVan los elementos no terminales de las
reglas de produccin /ue vayamos aplicando- y tantos hijos como sm,olos
e+istan en la parte derecha de dichas reglas.
La tarea del 'S es determinar la estructura sint*ctica de un programa a partir de
los toMens producidos por el 'L.
X En resumen una )uncin /ue toma como entrada la secuencia de toMens y salida
el 'S.
Secuencia de toMens *r,ol sint*ctico
Compiladores de una pasada no generan *r,ol sint*ctico e+plcito.
Z Compiladores de mVltiples pasadas Z las pasadas utilizaran el *r,ol como su
entrada.
X El *r,ol se de)ine como estructura de datos din*mica- nodos- atri,utos- campos
del atri,uto.
X Manejo de errores- no solo mostrar mensaje sino recuperarse 1in)erir cdigo
corregido2 y continuar el an*lisis- para encontrar tantos errores como sea posi,le.
;i)*iogra4<a.
http7YYdsc.itmorelia.edu.m+Y[jcolivaresYcoursesYpsC&aYps\u#.pd)
http7YYocN.uma.esYingenieriasYtraductoresWcompiladoresWeWinterpretesYmaterialWdeW
claseW!YCapitulo\".pd)
http7YYNNN.lcc.uma.esY[galvezY)tpYtciYtictema".pd)

También podría gustarte