Está en la página 1de 2

ACTIVIDAD DE APRENDIZAJE SINCRONO S10

Lex
Prof. Franz Polanco
Dorian Ramon Moran Cifuentes 2590-20-21632
Objetivo
▪ Realizar un repaso de lo visto en clase hasta el momento

Actividad 1: Ejercicios.
Por favor responder las siguientes preguntas/ejercicios:

1. Cuál es la estructura de un programa en Lex


Definiciones
%%
Reglas
%%
Procedimientos

2. Enumere las fases del proceso de compilación y explique cada una de ellas

Fase de análisis: Encontrar errores

Análisis Léxico
Análisis Sintáctico
Análisis Semántico

Fase de síntesis: Traducir código

Optimización de código
Traducción de código

3. Cual es la función de yytext


Contiene el lexema actual generado por la expresión regular.

4. Que extensión debe tener un programa en lex.


.l

5. Cuales son los comandos utilizados para crear un ejecutable en lex


1. plex Nombre_del_archivo.l
2. Nombre_del_archive.pas
3. fpc Nombre_del_archivo
4. Nombre_del_archivo

6. Según la pregunta anterior, que archivos son generados en cada comando


1. En el primero lo que hacemos es comprobar si tenemos instalado lex en nuestro ordenador
y en segunda si nuestro archivo es compatible con el codigo de lex.
2. En segundo lugar generamos el codigo de .pas que es el de un compilador que ante el ojo
humano es muy difícil de generar por si solo, entonces lo genera el ordenador con el
comando .pas
3. Creamos el .exe
4. Ejecutamos nuestro programa.
ACTIVIDAD DE APRENDIZAJE SINCRONO S10
Lex
Prof. Franz Polanco
7. En que parte de un programa en lex se declaran las variables y cual es la sentencia para
hacerlo.
En la parte de definiciones y para poder definir variables es de esta manera>
Var
Varible1, varibles2, variable3 Tipo_de_varible (integer, etc)

8. Que diferencia existe entre yylen y yytext


Yytext guarda la cadena de la variable.
Yyleng la longitud de esa cadena queda guardada en la variable.

Actividad 2: expresiones regulares.


Completar la siguiente tabla

Expresión Que significa Ejemplo


C Cualquier carácter que no a
sea un operador c
\c Carácter c literalmente \*
“s” Cadena s literalmente “*”
. Cualquier carácter excepto a:*b
nueva línea
[s] Cualquier carácter en s [abc]
r* Cero o mas r’s a*
r+ Uno o mas r’s a+
r? Cero o uno r a?
r1r2 r1 entonces r2 ab
r1|r2 r1 o r1 a|b
(r) r (a|b)

Actividad 3: Implementar en lex:


1. Un programa que acepte el formato de cualquier dirección de correo
electrónico, dicho formato es: usuario@dominio.raiz
2. Hacer un programa que acepte el formato de una dirección IPv4.
3. Hacer un programa que acepte el formato de una dirección IPv6.

Actividad 4: Enviar sus respuestas.

También podría gustarte