Está en la página 1de 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