Вы находитесь на странице: 1из 5

Recopilaci on de ejercicios sobre expresiones regulares en ex amenes de Compiladores e int erpretes

IG29: Compiladores e int erpretes Segunda sesi on de teor a

Bloque 1: Modelado
Ejercicio 1 Valor: 1,00 puntos

Modela mediante una expresi on regular, sin utilizar nombres ni la expresi on regular punto, cada uno de los siguientes lenguajes: A. El de las secuencias de uno o m as d gitos que no contienen dos d gitos pares consecutivos. B. El de los comentarios que empiezan por un asterisco y un uno y terminan con el n de esa l nea o bien empiezan por un asterisco y un dos y terminan con el n de la l nea siguiente.

Ejercicio 2

Valor: 1,00 puntos

Modela mediante una u nica expresi on regular, sin utilizar nombres, el lenguaje formado por todas las cadenas de caracteres que cumplen simult aneamente las tres condiciones siguientes: Sus tres primeros caracteres son, por este orden, una letra i, una ene y otra i. Sus tres u ltimos caracteres son, por este orden, una letra efe, una i y una ene. Entre las tres letras iniciales y las tres letras nales de la cadena aparece una secuencia de uno o m as caracteres, ninguno de los cuales es ni una letra ni un salto de l nea. Observa que cada una de las seis letras de la cadena debe poder ser, indistintamente, may uscula o min uscula, ya que no se ha impuesto ninguna restricci on al respecto.

Ejercicio 3

Valor: 0,50 puntos

Sea L1 el lenguaje de todas las cadenas que pueden formarse utilizando u nicamente cero o m as d gitos binarios y asteriscos con la restricci on de que no se permiten m as de dos asteriscos consecutivos. As , por ejemplo, las siguientes cadenas pertenecer an a L1 : 101, **, *1*1*1, *00*1*, . Pero no estas otras: +001, 1****1, 000***, 911... Modela el lenguaje L1 mediante una expresi on regular, sin utilizar nombres.

Ejercicio 4

Valor: 0,50 puntos

Sea L2 el lenguaje de todas las cadenas que pueden formarse utilizando u nicamente d gitos decimales y asteriscos con la restricci on de que en cada cadena debe haber un u nico grupo de varios asteriscos consecutivos. As , por ejemplo, las siguientes cadenas pertenecer an a L2 : **, *10*1**, 19***99. Pero no estas otras: **1**, x****x, 012345, 1*1, ... Modela el lenguaje L2 mediante una expresi on regular, sin utilizar nombres.

Ejercicio 5

Valor: 0,50 puntos

Sea L3 el lenguaje de todas las cadenas formadas por cero o m as letras min usculas y que no tienen tres bes seguidas en su interior. As , por ejemplo, las siguientes cadenas pertenecer an a L 3 : xyz, bb, bebebe, baobab, . Pero no estas otras: Gato, abbbba, xxxbbb, salu2... Modela el lenguaje L3 mediante una expresi on regular, sin utilizar nombres. 1

Ejercicio 6

Valor: 1,50 puntos

Modela mediante una expresi on regular, sin utilizar nombres, cada uno de los dos lenguajes siguientes: A. El lenguaje de todas las secuencias no vac as que se pueden formar con signos m as y letras may usculas respetando las dos condiciones siguientes: no habr a dos signos m as consecutivos ni tampoco dos letras consecutivas. Por ejemplo: +U+J+I+. B. El de los identicadores de cierto lenguaje de programaci on donde estos: Est an formados por d gitos decimales y, opcionalmente, tambi en por letras min usculas. Su primer car acter es un cero o un uno. Terminan con el primer car acter que, no siendo el primero del identicador, es igual a este. Por ejemplo: 1estce007uji1.

Ejercicio 7

Valor: 2,50 puntos

Modela mediante una expresi on regular, sin utilizar nombres, cada uno de los dos lenguajes siguientes: A. El conjunto de los cheros no vac os compuestos por l neas con la siguiente estructura: cada l nea debe acabar en un car acter salto de l nea y constar de un cierto n umero (posiblemente nulo) de posiciones, donde cada posici on consistir a en un car acter tabulador que podr a ir, o no, seguido de un identicador. Cada identicador estar a formado, a su vez, por letras may usculas o min usculas, pero en un mismo identicador no podr an combinarse ambas cajas. B. El lenguaje de todas las cadenas que se pueden formar con los d gitos 0, 1 y 2 respetando las dos condiciones siguientes: la cadena no ser a vac a ni habr a ninguna subsecuencia 01 en ella. Por ejemplo, 02210 pertenecer a a este lenguaje, pero no 2012.

Ejercicio 8

Valor: 2,00 puntos

Modela mediante una expresi on regular, sin utilizar nombres, cada uno de los dos lenguajes siguientes: A. El conjunto de los cheros compuestos por cero o m as l neas con la siguiente estructura: cada l nea debe consistir en una suma de uno o m as operandos y acabar en una secuencia de dos caracteres: punto y coma y salto de l nea. El primer sumando de cada l nea ser a un identicador formado por letras may usculas; cada uno de los restantes sumandos ser a un d gito octal. Por ejemplo: A +2+3+0+7; UNO; Z +7; B. El lenguaje de todas las cadenas no vac as que se pueden formar con las letras min usculas a, b y c sin que haya dos consonantes seguidas. Por ejemplo, baaaca pertenecer a a este lenguaje, pero no , abc o bb.

Ejercicio 9

Valor: 0,50 puntos

Sea L4 el lenguaje formado u nicamente por la cadena vac a y tres cadenas de longitud 1: la letra be min uscula, el guion y la letra jota min uscula. Escribe, sin utilizar el car acter \ ni el car acter |, una expresi on regular que modele el lenguaje L 4 .

Ejercicio 10

Valor: 1,00 puntos

Modela mediante una expresi on regular, sin utilizar nombres, cada uno de los dos lenguajes siguientes: A. El conjunto L5 de todas las cadenas que cumplen las siguientes condiciones: Cada cadena contiene en su interior las dos subcadenas siguientes: blanco y negro. Las cadenas est an formadas ntegramente por letras min usculas. As , la cadena monegroshablancosa pertenece a L 5 , pero no muyblanco o BlancoYNegro. B. El conjunto L6 de todas las cadenas que cumplen las siguientes condiciones: Cada cadena consiste en una u nica l nea, correctamente terminada en el correspondiente car acter salto de l nea. Aparte del car acter de salto, la l nea consta de, al menos, otros dos caracteres. Ning un car acter de la l nea es un d gito decimal.

Ejercicio 11

Valor: 1,50 puntos

Modela mediante una expresi on regular, sin utilizar nombres, cada uno de los dos lenguajes siguientes: A. El conjunto de literales num ericos de tres d gitos formado por todos los posibles excepto 007. As , por ejemplo, 033, 921 y 777 pertenecen a este lenguaje, pero no efe, 33 ni, obviamente, 007. B. El conjunto de todos los posibles comentarios de un hipot etico lenguaje de programaci on en el que estos comienzan con una secuencia de dos barras verticales || y acaban con una nueva barra | o con una secuencia >>, lo que suceda primero. As , por ejemplo, ||hola>|, ||x>y>>, ||barras| y ||>> ser an cuatro posibles comentarios correctos, pero no hola, ||x/3> o ||2+2|4>>. Al responder, no utilices expresiones regulares de m as de cuarenta caracteres de longitud ni caracteres de escape innecesarios.

Ejercicio 12

Valor: 0,75 puntos

Se desea poder representar cadenas no vac as en las que no aparezcan saltos de l nea ni tabuladores. Para ello se utilizar an literales con las siguientes caracter sticas: En el literal, el valor de la cadena vendr a delimitado mediante par entesis. Si el valor de la cadena incluye alg un par entesis, este, sea abierto o cerrado, deber a aparecer duplicado en el literal. As , por ejemplo, la cadena de dieciocho caracteres Algor tmica (II24) quedar a representada mediante el literal siguiente: (Algor tmica ((II24))); por su parte, :)+< se representar a como (:))+<). Modela este lenguaje de literales de cadena mediante una expresi on regular, sin utilizar nombres ni caracteres de escape innecesarios.

Ejercicio 13

Valor: 2,00 puntos

Se desea poder representar horas del d a con una precisi on de, a lo sumo, un minuto; visto de otro modo, se trata de disponer de una notaci on c omoda para representar cualquiera de los 1.440 minutos del d a, considerando que el primer minuto es el n umero cero y, por lo tanto, el u ltimo minuto del d a ser a el 1.439. El usuario de la notaci on debe poder expresar una misma hora de diversas formas, seg un sus preferencias, pero respetando algunas restricciones: En principio, la notaci on b asica ser a de cinco caracteres: dos d gitos (la hora), un punto y dos d gitos (el minuto dentro de la hora). L ogicamente, s olo ser an literales de hora v alidos de 00.00 a 23.59 y no, por ejemplo, 00.75, 24.00 ni 25.10. Si el primer d gito en un literal de hora es un cero, podr a ser omitido, como en 9.30; sin embargo, tras esa omisi on no ser a posible otra: por ejemplo, 00.15 podr a expresarse como 0.15, pero no como .15. Para separar horas de minutos, ser a posible utilizar el car acter dos puntos en lugar del punto, como en 16:20. A partir del mediod a, se permite reiniciar la cuenta de las horas si al nal del literal se a nade una te may uscula o min uscula. As , por ejemplo, 12.00 podr a expresarse como 00.00T y 16:20, como 4:20t. An alogamente, a la expresi on de una hora previa al mediod a se le podr a a nadir al nal una eme, tambi en may uscula o min uscula, y as , 11.15M ser a equivalente a 11.15; pero, por ejemplo, 12.00m o 16:20M no ser an literales v alidos. Si los dos d gitos correspondientes a minutos son 00, podr an omitirse, siempre y cuando tambi en se omita el correspondiente separador. As , la seis de la tarde podr an expresarse, por ejemplo, como 18 o 6t. Cuando se omitan los minutos en una hora exacta, en su lugar podr a hacerse constar una hache min uscula, salvo que otra letra (eme o te) forme tambi en parte del literal. As , aunque las seis de la tarde puedan expresarse como 18h, ninguna de las siguientes cadenas ser a un literal correcto: 18H, 18.00h, 6th o 6Ht. A. Modela este lenguaje de literales de hora mediante una expresi on regular que no tenga m as de ochenta caracteres de longitud, sin utilizar nombres ni caracteres de escape innecesarios. Considera la posibilidad de expresar el lenguaje como una disyunci on entre dos alternativas: por una parte, literales sin eme ni te y, como segundo t ermino de la disyunci on, literales con eme o te. B. Escribe una funci on lex2min que reciba como par ametro un componente l exico comlex con un atributo lexema y calcule en un nuevo atributo, comlex.mindia, el minuto del d a representado mediante el correspondiente literal de hora. As , por ejemplo, si el valor de comlex.lexema fuera 10.25, comlex.mindia deber a crearse con el valor 625; o, si el literal fuera 8T, deber a calcularse que el correspondiente minuto es el 1.200. Puedes utilizar, seg un te resulte m as c omodo, Python o pseudoc odigo. En este segundo caso, puedes suponer dada una u nica funci on auxiliar capaz de transformar cadenas en valores num ericos: una llamada dig2int que, dado un u nico d gito, devuelva su valor entero asociado.

Ejercicio 14

Valor: 2,25 puntos

Modela mediante una expresi on regular que no tenga m as de treinta caracteres de longitud, sin utilizar nombres ni caracteres de escape innecesarios, cada uno de los siguientes lenguajes: A. El lenguaje de los literales enteros sin signo que sirven para representar en base diez valores entre quince y cien, ambos incluidos; adem as, cabe se nalar que este lenguaje no proh be ceros innecesarios a la izquierda. As , pertenecer an al lenguaje, por ejemplo, 15, 0082 y 100, pero no XVI, 0101 o cuarenta. B. El lenguaje de las cadenas no vac as que est an formadas ntegramente por d gitos, o bien integramente por letras, o bien no contienen ning un car acter alfanum erico. As , pertenecer an a este lenguaje, por ejemplo, 2009, XEmacs y :)+<, pero no F54, e-mail o . C. El lenguaje de las siglas delimitadas por secuencias no vac as de asteriscos, donde se entiende que son siglas las secuencias formadas por dos o m as letras may usculas con un punto inmediatamente detr as de cada una de tales letras. As , pertenecer an a este lenguaje, por ejemplo, *S.A.*, ***M.A.S.H.*** y **X.Y.*, pero no *A.*, P.I.B. o *ETC...*.

Bloque 2: An alisis
En las tablas que siguen, cada la de la tabla corresponde a una expresi on regular; cada columna, a una cadena de caracteres. Debes completar esas tablas escribiendo S I o NO en cada una de sus celdas, seg un si la cadena que encabeza la columna pertenece o no al lenguaje representado por la expresi on regular que encabeza la la.

Ejercicio 15
[^abc]? ([^a][^b][^c])* [^(abc)]+ \([^abc]\)* bca xxx x (xxx)

Valor: 1,00 puntos


(z

Ejercicio 16
Pa (Pp)(Aa)(Nn)* [P|p][A|a][N|n] \.\\.* [^Aa](an)\* Pan PanN PpAa Pan* Xan\* |A| \.\\

Valor: 1,00 puntos


.\.* .\an

Ejercicio 17
() \((^ab)*\) (01)* [^.]. [(ab)*]\) (01) (^ab) 01 \(01\) .) (01)* (.

Valor: 1,00 puntos


abab) *) 01010

Ejercicio 18
x| (^[x.]+) x\||[y|z]+ \(xy*\)+ \|*[^|]+\|* (x) |z|y (xyy)) |x| ^xxx x ^a

Valor: 1,25 puntos


x\| (^.) (xy

Ejercicio 19
(ab) \([^ab)] (([^a][^b])*)+ b[3-72]s b[^0-59]s? b7 b52s [^ab] (x b2s (pe bas?

Valor: 1,00 puntos


(( xxx

Вам также может понравиться