• No se han encontrado resultados

lp151be01

N/A
N/A
Protected

Academic year: 2020

Share "lp151be01"

Copied!
7
0
0

Texto completo

(1)

Lenguajes de programaci´

on 2015-1

Bolet´ın de ejercicios 1

Favio E. Miranda Perea C. Mois´es V´azquez Reyes

25 de agosto de 2014

1.

Definiciones recursivas e inductivas y gram´

aticas formales

1. Dado el alfabeto Σ ={a, b, c}, da un gram´atica que genere el lenguaje de cadenas pal´ındromo. Deriva una cadena de longitud 5 y una de longitud 4 usado ´arboles de derivaci´on.

2. Sea Σ un alfabeto cualquiera con |Σ| = n. Define recursivamente una funci´on F(m) que devuelva el n´umero de cadenas pal´ındromo de longitudm contenidas en el lenguaje generado por Σ. Sugerencia: defina primero la gram´atica de pal´ındromos y busque la definici´on deF en base a ´esta.

3. Da la definici´on recursiva de la sucesi´on de Fibonacci 0,1,1,2,3,5,8, . . . , Fn, Fn+1, . . . y

de-muestra que F4n es divisible entre 3 para n≥1.

4. Da la definici´on inductiva para los n´umeros naturales: 0,s(n).

5. Da la definici´on inductiva para expresiones l´ogicas: p,true,false,¬A,A∧B,A∨B,A→B .

6. Da la definici´on inductiva para listas: [ ], (a:`).

Define recursivamente las siguientes funciones para listas.

a) concat(xs, ys): Concatenaci´on de listas. b) long(xs): N´umero de elementos de una lista. c) rev(xs): Reversa de una lista.

Demuestra con inducci´on estructural las siguientes propiedades:

a) xst(ystzs) = (xstys)tzs b) long(xstxy) =long(xs) +long(ys) c) long(rev(xs)) =long(xs)

d) rev(xstys) =rev(ys)trev(xs) e) rev(rev(xs)) =xs

7. Da la definici´on inductiva para ´arboles binarios: void, tree(T1, c, T2). Define recursivamente

(2)

a) nn: N´umero de nodos.

b) ht: Altura de un ´arbol binario.

Demuestra con inducci´on estructural las siguientes propiedades:

a) Cualquier ´arbol binarioT connnodos contiene exactamenten+ 1 sub´arboles vac´ıos. b) Si T es un ´arbol binario con altura n, entonces tiene a lo m´as 2n−1 nodos. Es decir,

nn(T)≤2n−1

c) Demuestra que el m´ınimo n´umero de nodos en ´arbol

8. La siguiente definici´on representa ´arboles binarios completos cuyos ´unicos nodos etiquetados son las hojas.

SeaA un conjunto de etiquetas, si a∈A, entonceshoja(a) es un ´arbol.

Si t1, t2 son ´arboles, entonces ltree(t1, t2) es un ´arbol.

Son todos.

a) Formula la definicion inductiva para los ´arboles binarios completos.

b) Define las funciones recursivas nh que calcula el n´umero de hojas y nni que calcula el n´umero de nodos internos.

c) tomando los enunciados que definiste ena utiliza inducci´on estructural para demostrar que:

nh(t) =nni(t) + 1

9. De acuerdo a las definiciones de la nota de clase 3, demostrar:

a) Lema 2 Sis M entoncess L. b) Lema 3 Sis L entoncess M. c) Lema 7 Sihk, si pilaentonces ((. . .(

| {z }

k

s M.

10. A continuaci´on se definen las gram´aticasG1yG2. Ambas gram´aticas son equivalentes aunque

G1 es ambigua mientras queG2 no lo es.

G1::=G1G1 |a|b G2::=A|B

A::=a|a G2

B ::=b|b G2

a) Dar una definici´on inductiva para ambas gram´aticas, mediante juiciosw G1 yw G2.

(3)

11. Considere la siguiente gram´aticaG:

ctipo ::= int|listctipo|(tipo)

tipo ::= ctipo|tipo→tipo

Esta gram´atica genera la familia de tipos

int,list(int),list(list(int)), . . . ,int→int,int→int→int,list(int)→list(int). . .

Es claro que G es ambigua, pues no modela la asociatividad del operador →. Esto puede arreglarse mediante la siguiente gra´aticaG0:

ctipo0 ::= int|listctipo0|(tipo0)

tipo0 ::= ctipo0 |ctipo0→tipo0

a) Reescriba ambas gram´aticas G, G0 como definiciones inductivas mediante juicios de la forma tctipo, etc.

b) Muestre la equivalencia de ambas gram´aticas mostrando que ttipo syss ttipo0

12. Considere las siguientes definiciones recursivas deL? para un lenguaje dado L.

Definici´on a)

a) ε∈L?.

b) Six∈L? yz∈L, entoncesxz∈L?. Definici´on b)

a) ε∈L?

b) Six∈L, entoncesx∈L?. c) Six, z ∈L?, entoncesxz ∈L?.

a) Dar la definici´on inductiva con juicios para ambas opciones.

b) Mostrar que ambas opciones son equivalentes a partir de las definiciones inductivas. c) Dar dos reglas admisibles y dos derivables (distintas de las admisibles) para cada

defini-ci´on (en total se piden 8 reglas). Justifique sus respuestas.

13. Una cadena s∈ {0,1}? es de tipo cadsi y s´olo si empieza con 1 y no tiene dos ceros

consecu-tivos.

a) Definir un juicio paracad.

(4)

14. Considere la siguiente gram´atica:

e::= 0|2|e+e|e∗e

donde + es la suma y ∗ la multiplicaci´on convencional.

a) Dar una definici´on inductiva de la gram´aticaemediante juiciosw e.

b) Demuestre que todos los valores derivados de e son n´umeros pares, usando inducci´on estructural.

15. Considere las siguientes definiciones de la cerradura transitiva de una relaci´on binaria R ⊆ A×Asobre un conjunto base A.

Definici´on directa. La cerradura transitiva de R, denotada R+, es la relaci´on transitiva mas peque˜na, respecto a la inclusi´on ⊆, que contiene a R.

Definici´on recursiva. La cerradura transitiva de R, se define comoR+=S

i∈NRi, donde

R0 =R, Ri+1=Ri∪ {(s, u)|para algunat,(s, t)∈Ri y (t, u)∈Ri}

Es decir, construimos Ri+1 agregando a Ri todos los pares que pueden obtenerse

reali-zando “un paso de transitividad” de todos los pares que ya est´an enRi.

a) Transformar la definici´on recursiva de R+ a una definici´on inductiva con juicios. b) Usar la definici´on para mostrar que R+ cumple con la definici´on directa.

16. Considere las siguientes definiciones recursivas deL? para un lenguaje dado L.

Definici´on a)

a) ε∈L?.

b) Six∈L? yz∈L, entoncesxz∈L?. Definici´on b)

a) ε∈L?

b) Six∈L, entoncesx∈L?. c) Six, z ∈L?, entoncesxz ∈L?.

a) Dar la definici´on inductiva con juicios para ambas opciones.

b) Mostrar que ambas opciones son equivalentes a partir de las definiciones inductivas. c) Dar dos reglas admisibles y dos derivables (distintas de las admisibles) para cada

defini-ci´on (en total se piden 8 reglas). Justifique sus respuestas.

17. Una cadena s∈ {0,1}? es de tipo cadsi y s´olo si empieza con 1 y no tiene dos ceros

consecu-tivos.

a) Definir un juicio paracad.

(5)

a) Dar una definici´on inductiva de la gram´aticaemediante juiciosw e.

b) Demuestre que todos los valores derivados de e son n´umeros pares, usando inducci´on estructural.

18. Comprueba si las siguientes expresiones son correctas por medio de an´alisis sint´actico (Hallar una expresi´on ttal que se cumple sE←→t asa).

a) (10 + 2)E b) 12 +v∗6E c) (x)∗15 E d) (7 + 5∗2)∗13E

19. Demuestra las siguientes propiedades de correctud para el analizador sint´actico:

a) Si sD←→k nat entoncessDyk nat. b) Si sN←→k natentoncessN yknat. c) Si sE←→t asaentoncessE ytasa. d) Si sT←→ tasa entoncessTyt asa. e) Si sF←→ tasa entoncessF ytasa.

20. Realiza las siguientes sustituciones y utilizando α-equivalencia determina su resultado.

a) (letm= 15inm∗n∗3end)[n:= 4∗z] b) (lety=z+ 2inx+ 2∗y+zend)[x:=y+z]

c) (letw=u∗8in(letv= 5inw+y+xend)end)[x:=u+v] d) (lety=x+vin(letz=xinx∗y∗zend)end)[x:=y∗z] e) (lety=z∗3inx+y+ 11end)[x:=y∗z∗23]

21. De acuerdo a las definiciones 3, 4 y 5 de la nota de clase 4. Demuestre por medio de inducci´on las siguientes propiedades:

a) Si x /∈F V(e) entonces e[x:=e0] =e b) (x.e)[x:=t] =x.e

c) x.e≡α z.e[x:=z].

22. En el lenguaje de programaci´onZoo, los nombres para variables deben empezar con el caracter

’V’ seguido por una cadena cualquiera de caracteres ’o’ o ’z’. Defina un juicioozvtal quesozv se cumpla si y s´olo sises un nombre v´alido de variable en Zoo. DeriveV ozoozvusando sus

reglas.

23. Chon Hacker desea agregar al lenguaje EAB el operador where de declaraci´on de variables locales para lo cual propone la siguiente sintaxis concreta:

e1 where x=e2

Por ejemplo la expresi´one=def (suc(x+2)∗x)where x=pred(4) se evaluar´ıa a 18. Realizar

(6)

a) Definir el juiciosE para las expresioneswhere

b) Definir el alcance de la variable de una expresi´on where

c) Definir la representaci´on de las expresiones where en la sint´axis abstracta de orden su-perior y el juicio talacorrespondiente.

d) Definir el juicio de an´alisis sint´actico (sE↔tala) para las expresiones where 24. Realiza lo que se pide para la expresi´on

e=def lety=x+ 3in(letz=y+ 3inx+yend) ∗ 2 +xend

a) Encuentra la representaci´on en sintaxis abstracta de orden superior dee. b) Realiza un an´alisis sint´actico deea partir de las reglassE↔tala.

c) ¿Cu´al es la expresi´on resultante al efectuar la sustituci´on e[x:= 6∗z+y]? Mostrar paso a paso su respuesta.

25. A continuaci´on se definen las gram´aticasG1yG2para expresiones aritm´eticas. Ambas gram´

ati-cas son equivalentes aunque G1 es ambigua, mientras queG2 no lo es.

G1 ::= G1+G1 | G1∗G1 | (G1) | n

G2 ::= G2+T | T

T ::= T ∗F | F F ::= (G2) | n

a) Dar una definici´on inductiva para ambas gram´aticas, mediante juiciosw G1 yw G2.

b) Mostrar por inducci´on estructural la siguiente propiedad: Sie T o e F o e G2 entoncese G1

26. En el lenguaje de programaci´onLISPuna expresi´on simb´olica o S-expresi´on es alguna de las

siguientes

Un s´ımbolo.

Una S-lista, donde una S-lista es una sucesi´on, tal vez vac´ıa, de S-expresiones, encerrada entre par´entesis.

Por ejemplo, las siguientes son cinco S-expresiones:

e, (), (e z), (b (a m)), (f (a () ) v (i o))

a) Defina a las S-expresiones mediante un juicioxSE.

b) Muestre usando su definici´on y mediante una derivaci´on formal que la siguiente es una S-expresi´on:

(7)

2.

PostFix

1. Determina el valor de los siguientes programas enPostFix:

(postfix 0 10 (swap 2 mul sub) 1 swap exec)

(postfix 0 (5 (2 mul) exec) 3 swap)

(postfix 0 (() exec) exec)

(postfix 0 2 3 1 add mul sel)

(postfix 0 2 3 1 (add) (mul) sel)

(postfix 0 2 3 1 (add) (mul) sel exec)

(postfix 0 0 (2 3 add) 4 sel exec)

(postfix 0 1 (2 3 add) 4 sel exec)

(postfix 0 (5 6 lt) (2 3 add) 4 sel exec)

2. ¿Qu´e funci´on hace el siguiente programa enPostFix?

(postfix 1 ((3 nget swap exec) (2 mul swap exec) swap) (5 sub) swap exec exec)

Escribe un programa enPostFixm´as simple que el anterior que realize el mismo c´alculo.

3. Recordemos que las secuencias ejecutables son efectivamente subrutinas que cuando son in-vocadas (por el comando exec), agregan en orden sus comandos al inicio de la secuencia de comandos en ejecuci´on. Escribe secuencias ejecutables que calculen las siguientes operaciones l´ogicas. Recordamos que 0 indica falso y todos los dem´as n´umeros indican verdadero.

not: devuelve la negaci´on de un argumento.

and: dados dos argumentos num´ericos, regresa 1 si su conjunci´on es verdadero, 0 en otro caso.

and-cortocircuito: regresa 0 si el primer argumento es falso, en otro caso regresa el segundo argumento.

Muestra la diferencia entreandyand-cortocircuitoescribiendo un programa enPostFix

con cero argumentos que tenga un resultado diferente si en lugar de usarandse usa and-cortocircuito.

4. Algunos retos, de no ser posible resolverlos argumenta por qu´e no es posible:

Sin nget, ¿ Es posible escribir un programa en PostFix que calcule el cuadrado de su

´

unico argumento de entrada?

¿ Es posible escribir un programa en PostFix que tome tres enteros y nos devuelva el

m´ınimo de los tres?

¿ Es posible escribir un programa en PostFix que calcule el factorial de su ´unico

Referencias

Documento similar

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

En un congrés, convé disposar d’un pla o full de ruta per tal de garantir la igualtat d’accés de totes les persones, tant ponents com participants.. Comunicació : Tant si el

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Desde esa concepción, el Derecho es considerado como algo que puede ser completamente objetivado y observado sin ningún tipo de parti- cipación (puede ser casi «fotografiado»).

El concepto de soberanía, teóricamente independizado de los problemas de fundamen- tación política, sirvió en la teoría jurídica como instrumento adecuado para explicar el derecho

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de