Sunteți pe pagina 1din 6

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

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

Informe N°: 02
Tema: “FLEX”
Curso: Compiladores y Teoria de Lenguajes

DOCENTE:
Ing. Arnold Christian Loaiza Fabian
PRESENTADO POR:
Martinez Condori, Andres Alberto
2016-119017
CICLO DE ESTUDIOS:
6° Ciclo

TACNA – PERÚ

2018
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

INFORME° 02: “FLEX”

I. OBJETIVOS

• La instalacion y aprendizaje de programacion del programa FLEX


.
II. FUNDAMENTO TEÓRICO

INSTALACION DE EL PROGRAMA FLEX


Guía paso a paso para instalar FLEX y ejecutar el programa FLEX mediante el símbolo del
sistema (cmd)

Paso 1

/ * Para descargar CODEBLOCKS * /

- Abra su navegador y escriba "codeblocks"

- Vaya a Bloques de código y vaya a la sección de descargas

- Haz clic en "Descargar la versión binaria"

- Descargue codeblocks-16.01mingw-setup.exe o simplemente haga clic debajo para descargar

- Haz clic aquí para descargar codeblocks-16.01mingw-setup

- Instala el software sigue haciendo clic en siguiente

/ * Para descargar FLEX GnuWin32 * /

- Abra su navegador y escriba "download flex gnuwin32"

- Ir a "Descargar GnuWin desde SourceForge.net" o simplemente hacer clic a continuación para


descargar

- Haz clic aquí para descargar flex-2.5.4a-1

- La descarga comenzará automáticamente

- Instala el software sigue haciendo clic en siguiente

/ * GUARDARLO DENTRO DE LA CARPETA C * /

Docente: Ing. Arnold Loaiza Fabian Página 2 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 LENGUAJES
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

Paso 2

/ * CONFIGURACIÓN DE RUTA PARA CODEBLOCKS * /

- Después de una instalación exitosa Goto archivos de programa

- Ir a CodeBlocks -> MinGW -> Bin

- Copie la dirección de bin debería parecer algo así

C: \ Archivos de programa (x86) \ CodeBlocks \ MinGW \ bin

- Abrir el Panel de control -> Ir al sistema -> Configuración avanzada del sistema -> Variables del
entorno

- Variables de entorno -> Haga clic en la ruta que se encuentra dentro de las variables del
sistema

- Haz clic en editar

- Haga clic en Nuevo y pegue la ruta copiada a él: -

- C: \ Archivos de programa (x86) \ CodeBlocks \ MinGW \ bin

- ¡Presiona OK!

Paso 3

/ * CONFIGURACIÓN DE RUTA PARA GnuWin32 * /

- Después de la instalación exitosa de la carpeta Goto C

- Goto GnuWin32 -> Bin

- Copie la dirección de bin debería parecer algo así

C: \ GnuWin32 \ bin

- Abrir el Panel de control -> Ir al sistema -> Configuración avanzada del sistema -> Variables del
entorno

- Variables de entorno -> Haga clic en la ruta que se encuentra dentro de las variables del
sistema

- Haz clic en editar

- Haga clic en Nuevo y pegue la ruta copiada a él: -

- C: \ GnuWin32 \ bin

- ¡Presiona OK!

Docente: Ing. Arnold Loaiza Fabian 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 LENGUAJES
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

Etapa 4

- Crea una carpeta en Desktop flex_programs o el nombre que quieras

- Abrir el tipo de bloc de notas en un programa flexible

- Guárdelo dentro de la carpeta como filename.l

/ * Asegúrese al guardar guardarlo como todos los archivos en lugar de como un documento de
texto * /

Paso 5

/ * Para ejecutar el programa FLEX * /

- Ir a símbolo del sistema (cmd)

- Vaya al directorio donde guardó el programa

- Escriba en comando: - flex filename.l

- Escriba en comando: - gcc lex.yy.c

- Ejecutar / Ejecutar para el comando de comando de Windows: - a.exe

Paso 6

- Terminado

III. DESARROLLO

EJERCICIO

FLEX

%{
#include<stdio.h>
#define NUMBER 256
#define IDENTIFIER 257
%}
%%
[0-9]+ { return NUMBER; }
[a-zA-z0-9]+ { return IDENTIFIER; }
. { return -1; }
%%
int main () {

Docente: Ing. Arnold Loaiza Fabian Página 4 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 LENGUAJES
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

int token;
while ((token = yylex())) {
switch (token) {
case NUMBER: printf("NUMBER: %s, LENGHT:%d\n", yytext, yyleng); break;
case IDENTIFIER: printf("IDENTIFIER: %s, LENGTH:/%d\n", yytext, yyleng); break;
default: printf("Error: %s not recognized\n" , yytext);
}
}
}

Docente: Ing. Arnold Loaiza Fabian Página 5 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 LENGUAJES
CICLO DE ESTUDIOS: SEXTO | SEMESTRE ACADÉMICO: 2018 - II

IV. CONCLUSIONES

 Estas herramienta o programa ayudan mucho a minimizar el tiempo de trabajo, porque al


menos ya no es tanto programar, y que con esta herramienta no utilice ningún tipo de
estructuras de datos solo con las expresiones regulares y la gramática. Solo había que
aprender la estructura el cómo se maneja las expresiones regulares y algunas reglas para
entender el lenguaje.

Docente: Ing. Arnold Loaiza Fabian Página 6 de 6