proyecto1compila.pdf

1
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACION COMPILADORES PROYECTO 1 Prof. M.C. Yolanda Moyao Martínez 18.septiembre .2014 Parte I Por equipo (de 3 integrantes) se entregarán los siguientes programas hechos en LEX, FLEX, o cualquier generador de análisis léxico automático. 1. Hacer un programa LEX que reconozca números múltiplos de dos. No utilizar la función módulo de C. 2. Hacer un programa en LEX, de manera que se cifre el texto de entrada. a) Si una palabra tiene 4 o menos letras, cambiarla por su inversa en bloques de dos caracteres. Ej.: niño --> ñoni. b) Si tiene 5 ó 6 letras, cambiarla por su inversa en bloques de tres caracteres. Ej.: comida --> idacom. c) Si tiene 7, 8 ó 9 letras, cambiarla por su inversa en bloques de cuatro caracteres. Ej.: botellín --> llínbote. d) Si tiene más de 9 letras, cambiarla por su inversa en bloques de 5 caracteres. Ej.: ferretería --> teríaferre. 3. Hacer un programa LEX que tras leer su entrada, nos indique el número de palabras leídas que poseen un diptongo cuya primera letra es u, y la segunda no es una a. No se considerará diptongo aquella subcadena que forme parte de un triptongo. De hecho, en español sólo existen estos triptongos: -uai-, uei-, -iai-, -iei-. Del total de palabras leídas con el diptongo indicado decir cuantas son de cada forma: -ue-, -ui-, -uo-, -uu-. Si una cadena posee más de uno de estos diptongos se contabilizará una vez para cada diptongo diferente que posea. 4. Hacer programa en Lex que contenga las expresiones regulares de la práctica 2. Parte II Implementar el análisis léxico para analizar expresiones regulares considerando la sintaxis aceptada por: RE2, PERL y VIM. Checa las páginas http://code.google.com/p/re2/wiki/Syntax https://support.google.com/a/answer/1371417?hl=es Cada equipo deberá entregar un documento que contenga: 1. Marco teórico 2. Planteamiento del problema 3. Expresiones Regulares 4. Diagrama de Transición 5. Tabla de Transición 6. Implementación del analizador léxico en el lenguaje de programación de tu elección. Recuerda no usar generador automático de analizadores léxicos. Notas: Aplica a las dos partes 1. Si algún integrante falta el día de la revisión, no se le tomará en cuenta el proyecto (solo al que falte). 2. La revisión se realizará en el cubículo en horario de clase. 3. Cada equipo deberá llevar una impresión del código fuente y los programas ejecutables. 4. Cada equipo debe llevar 2 0 3 ejemplos para las pruebas. Fecha de entrega Parte I: jueves 25 de septiembre Fecha de entrega Parte II: jueves 2 de octubre Fecha para examen: martes 30 de septiembre

Upload: alex-vazquez

Post on 21-Dec-2015

3 views

Category:

Documents


0 download

DESCRIPTION

proyecto1Compila

TRANSCRIPT

Page 1: proyecto1Compila.pdf

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACION

COMPILADORES PROYECTO 1

Prof. M.C. Yolanda Moyao Martínez 18.septiembre .2014 Parte I Por equipo (de 3 integrantes) se entregarán los siguientes programas hechos en LEX, FLEX, o cualquier generador de análisis léxico automático. 1. Hacer un programa LEX que reconozca números múltiplos de dos. No utilizar la función módulo de C. 2. Hacer un programa en LEX, de manera que se cifre el texto de entrada.

a) Si una palabra tiene 4 o menos letras, cambiarla por su inversa en bloques de dos caracteres. Ej.: niño --> ñoni. b) Si tiene 5 ó 6 letras, cambiarla por su inversa en bloques de tres caracteres. Ej.: comida --> idacom. c) Si tiene 7, 8 ó 9 letras, cambiarla por su inversa en bloques de cuatro caracteres. Ej.: botellín --> llínbote. d) Si tiene más de 9 letras, cambiarla por su inversa en bloques de 5 caracteres. Ej.: ferretería --> teríaferre.

3. Hacer un programa LEX que tras leer su entrada, nos indique el número de palabras leídas que poseen un diptongo cuya primera letra es u, y la segunda no es una a. No se considerará diptongo aquella subcadena que forme parte de un triptongo. De hecho, en español sólo existen estos triptongos: -uai-, uei-, -iai-, -iei-. Del total de palabras leídas con el diptongo indicado decir cuantas son de cada forma: -ue-, -ui-, -uo-, -uu-. Si una cadena posee más de uno de estos diptongos se contabilizará una vez para cada diptongo diferente que posea. 4. Hacer programa en Lex que contenga las expresiones regulares de la práctica 2. Parte II Implementar el análisis léxico para analizar expresiones regulares considerando la sintaxis aceptada por: RE2, PERL y VIM. Checa las páginas http://code.google.com/p/re2/wiki/Syntax

https://support.google.com/a/answer/1371417?hl=es

Cada equipo deberá entregar un documento que contenga: 1. Marco teórico 2. Planteamiento del problema 3. Expresiones Regulares 4. Diagrama de Transición 5. Tabla de Transición 6. Implementación del analizador léxico en el lenguaje de programación de tu elección. Recuerda no usar generador automático de analizadores léxicos. Notas: Aplica a las dos partes 1. Si algún integrante falta el día de la revisión, no se le tomará en cuenta el proyecto (solo al que falte). 2. La revisión se realizará en el cubículo en horario de clase. 3. Cada equipo deberá llevar una impresión del código fuente y los programas ejecutables. 4. Cada equipo debe llevar 2 0 3 ejemplos para las pruebas.

Fecha de entrega Parte I: jueves 25 de septiembre Fecha de entrega Parte II: jueves 2 de octubre Fecha para examen: martes 30 de septiembre