![]() |
| Automatas |
INTRODUCCION
Un compilador es un programa que toma como entrada un
texto con una gramática, sintaxis y semántica definida, además revisa que este
dentro de las pautas de definición del lenguaje y lo traduce en un programa de
salida en un lenguaje objeto o binario el cual es entendido por el ordenador
para efectuar su ejecución.
La compilación se puede dividir en fases como son:
análisis léxico, análisis sintáctico, análisis semántico, generación de código
intermedio, optimización de código y generación de código. De modo formal en
este caso daremos más prioridad al análisis léxico que en esta instancia es el
que más nos interesa.
Podríamos entender al análisis léxico, donde la cadena de
caracteres que constituye al programa fuente se lee de izquierda a derecha y se
agrupan en componentes léxicos, que son secuencia de caracteres que tienen un
significado colectivo.
En este proyecto se realizara el análisis léxico de una
dirección de correo electrónico, en el cual su expresión regular podrá permitir
la construcción y la escritura de la misma, con los principios y técnicas
planteadas en clase.
OBJETIVOS
OBJETIVO
GENERAL:
- Realizar el análisis léxico de una dirección de correo electrónico en un sistema Windows.
OBJETIVO
ESPECIFICOS:
- Crear una expresión regular para validar la dirección de un correo electrónico.
- Comprobar la expresión regular mediante un software.
ALFABETOS
∑1 = {a, b, c, . . . z}
∑2 = {0,1,2,3, . . .9}
∑3 = { ● }
∑4 = {-}
∑5 = { _ }
∑1 = { @ }
PATRON
Realizar una definición regular que permite reconocer la
escritura de una dirección de correo electrónico donde el usuario esta
compuesto por letras minúsculas dígitos, guin bajo, guin medio y punto; empieza
en letra o digito, no existe puntos seguidos, el guión medio y bajo aparecen segundos
solo una vez con longitud mínima de 3 caracteres, segundo del carácter @
(arroba) y acompañado de un subdominio.
OBJETIVO: Realizar el análisis léxico a
una 'dirección de correo electrónico ' en un sistema
Windows.
- ACTIVIDAD: La dirección de correo electrónico se escribe así: usuario@dominio y en forma general usuario@subdominio(n).subdominio(n-1). ... .subdominio(2).subdominio(1).dominio-de-mas-alto-nivel.
Usted debe realizar una definición regular que permita
reconocer la escritura de una dirección de correo
Electrónico.
El usuario tiene
las siguientes características:
a) Está compuesto por letras
minúsculas, dígitos, guión bajo ( _ ) y
punto ( . ).
b) Empieza en letra o digito
c) Los puntos no pueden ir
seguidos
d) El guión bajo y medio puede
aparecer seguido solo una vez así:
maria_t_
_ _ _ _ _m_u_1_ (correcto)
maria_
_t_ _ _perez (incorrecto)
e) Su longitud mínima es de 3
caracteres
Los subdominios pueden ser varios de más bajo
nivel a más alto nivel.
a) Los subdominios van separados
por punto
b) Los subdominios están formados
solo por letras minúsculas
c) El último subdominio el de más
alto nivel contiene máximo 3 caracteres y mínimo 2; el resto contiene mínimo 2
y máximo 10
d) Debe contener por lo menos un
subdominio de bajo nivel y uno de alto
nivel
INFORME:
- Introducción y objetivos
- Alfabetos
- Patrón
- Definiciones regulares
- Arboles de Análisis sintáctico
- Autómatas finitos determinísticos óptimo (estados significativos)
- Tablas de transición
- Conclusiones.
DEFINICIONES
REGULARES
DEFINICION BASICA:
L → a|b|c|. . . |z|
[a –z]
D →
0|1|2|. . .|9|
[0 – 9]
P → ●
Gm → −
Gb → _
DEFINICIONES COMPUESTAS:
Ld = L|d
A1 =[Ld|_ Ld |- Ld| Ld. |( - |_ )(Ld) ? .]*
A2 =[Ld| Ld_ | Ld-|. Ld |.(Ld) ?
(-
|_)]*
Comp1 =[ (- |_)+(L|d)
]
DEFINICIONES RESULTANTES:
(Ld) [ (A1| A2) ( Comp1)
(A1 (- |_ |Ld) | A2 (. |Ld) ) | [A1 (- |_ |Ld)
| A2 (.| Ld) ]
( _ _ + |- - +) ] @ (. L L L? L? L?
L? L? L? L? L? ))+ . (L2 | L3 )
AUTAMATA
DE LA EXPRSION REGULAR
Ld ((Ld
|_ Ld|- Ld | Ld . | (-|_) (Ld |λ).) *
| (Ld | Ld_ | Ld− | . Ld |. (Ld | λ) (-|_))* ) ((-|_
)( -|_)* |L | d)( Ld |_ Ld| - Ld | Ld . | ( - l )( Ld | λ
). )* (-| _ | Ld) |( Ld | Ld_ | Ld - | . Ld |
. (Ld |
λ) (- |- )* ( . | Ld)) | (Ld |_ Ld |- Ld | Ld . | (- | _ ) (Ld | λ
).) * (- | _ | Ld) | (Ld | Ld _
| Ld - |.
Ld | . (Ld | λ ) ( -| _ ))* (_ _ _* |- - -*) @ (. (L L L? L?
L? L? L? L? L? L?)
) ( .( L L
L? L?
L? L? L? L? L? L?) )
●(L L |L L L ) #
Continua....

No hay comentarios:
Publicar un comentario