You are on page 1of 5

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA

ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS


CURSO: COMPILADORES Y TEORIA DE LENGUAJES
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA EN


DE INGENIERÍA EN

INFORMATICA Y SISTEMAS

INFORME DE PRÁCTICA N°4

“Practicando con flex”

CURSO: Compiladores y teoría de lenguaje


DOCENTE: Ing. Rolando Alvarez

ESTUDIANTE:

 Juan Pablo Apaza Atencio (2015-119015)

AÑO: TERCERO | TURNO: MAÑANA | GRUPO: A

TACNA – PERÚ

Docente: Ing. Rolando Alvarez Página 1 de 6


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORIA DE LENGUAJE
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

PRÁCTICA N° 04: “Practicando con flex”

I. CONTENIDO
En la presente práctica se revisara ejemplos de expresiones regulares para obtener tokens con Flex.
II. OBJETIVOS ESPECIFICOS
 Verificar el entendimiento de las expresiones regulares.
 Comprender el uso de flex para la obtención de tokens

III. MATERIAL Y EQUIPO


Práctica 03.

Lenguaje de programación C.

Flex

Ubuntu 16
IV. MARCO TEORICO

Presentaremos dos ejemplos básicos del uso de Flex como analizador léxico.
El primer ejemplo es el archivo primero.l
%{
Int count = 0;
%}
%%
[A-Z] {printf("%s letra mayuscula \n", yytext); count++;}
. {printf("%s no es mayuscula \n", yytext);}
\n { return 0;}
%%
void main(){
yylex();
printf("\n Numero de letras Mayusculas en el texto %d\n", count);
}

Para ejecutar el archivo debemos escribir:


 flex primero.l
 gcc lex.yy.c -lfl
 ./a.out

Entonces se ejecutará, ingresamos un texto y contará la cantidad de mayúsculas en el


texto ingresado, además de indicar por cada carácter si es mayúscula o no.

Docente: Ing. Rolando Alvarez Página 3 de 6


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORIA DE LENGUAJE
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

El segundo ejemplo es el archivo segundo.l

%{
int no_lineas = 0;
int no_chars = 0;
%}
%%
\n {++no_lineas;}
. {++no_chars;}
end { return 0;}
%%
void main()
{
yylex();
printf("\n Numero de lineas = %d, numero de chars = %d\n", no_lineas,
no_chars);
}
Este ejemplo nos contará la cantidad de saltos de líneas en el texto ingresado, la
cantidad de caracteres ingresados y terminará solo cuando ingresemos la palabra end.

Docente: Ing. Rolando Alvarez Página 3 de 6


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORIA DE LENGUAJE
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

V. ACTIVIDADES PROPUESTAS (DESARROLLO)

Utilizando Flex y al ingresar un archivo input de cualquier código en C o C++ (el que decida)

Ejemplo de pequeña calculadora en FLEX

Docente: Ing. Rolando Alvarez Página 3 de 6


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORIA DE LENGUAJE
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

VI. CONCLUCIÓN
 Se verifico el entendimiento de las expresiones regulares.
 Se comprendio el uso de flex para la obtención de tokens

VII. BIBLIOGRAFIA

-González, M. (2018). El modelo de asignación. Caso del modelo de transporte. [online]


GestioPolis - Conocimiento en Negocios. Available at:
https://www.gestiopolis.com/modelo-asignacion-caso-modelo-transporte/ [Accessed 6 Oct.
2018].
-completo, V. (2018). Compiladores I y II: Laboratorio de JFlex y CUP. [online]
Palmahn.blogspot.com. Available at: http://palmahn.blogspot.com/2006/01/laboratorio-de-
jflex-y-cup.html [Accessed 11 Oct. 2018].

Docente: Ing. Rolando Alvarez Página 3 de 6

You might also like