Sunteți pe pagina 1din 14

!"#$%&'(#"%& (% *%+,-'.

%&/ $-"&# 012340125 6'78%" 9':"'


- 1 -
!"#$%&%&'( ('*$# +$,-./&%,(

!"#$%&%&' 01 Consiuiese la siguiente giamtica:


S !> [ S
| S1
S1 !> [a]

Taieas:
a) Establecei el lenguaje que geneia. Es necesaiio que se justifique, lo ms
foimalmente posible, la iespuesta uaua
b) Se tiata ue una giamtica LR(1).
c) Se tiata ue una giamtica LL(1).
u) Si no es LR(1), uai una giamtica equivalente que si lo sea. Anlogamente,
si no es LL(1) uai una giamtica equivalente que si lo sea.

!"#$%&%&' 21 Consiueiai una analizauoi LR. Paia uefinii una lista no vacia ue
iuentificauoies pouemos pensai en las siguientes alteinativas:

a) listaID: listaID ID
| ID

b) listaID: ID listaID
| ID

3,$#,(4
a) Son igualmente coiiectas las uos uefiniciones.
b) En qu se uifeiencia el funcionamiento ue una y otia.
c) Si ambas son coiiectas, Cul ue ellas es ms aconsejable.
u) Ejemplificailo con los sucesivos cambios ue estauo ue la pila uel analizauoi
sintctico paia la siguiente secuencia ue tokens:

ID ID ID ID


!"#$%&%&' 51 Los iuentificauoies paia un ueteiminauo lenguaje ue
piogiamacion se uefinen ue acueiuo con la siguiente uesciipcion:

;+ 8(%+<8=8$'(#" >-%(% %?>%@'" $#+ -+' A%<"' # -+ B-+(%"&$#"%B C$'"D$<%" BEBF/ (%:%
%&<'" &%,-8(# >#" 1 G ?D& A%<"'&/ (H,8<#& # -+(%"&$#"%&/ >%"# $#+ A'& "%&<"8$$8#+%&
&8,-8%+<%&I
2F J# >-%(%+ '>'"%$%" (#& -+(%"&$#"%& &%,-8(#&
0F ;+ 8(%+<8=8$'(#" +# >-%(% <%"?8+'" $#+ -+ -+(%"&$#"%K
L(%?D&/ +# M'N +8+,-+' A8?8<'$8G+ %+ $-'+<# ' A' A#+,8<-( (% A#& 8(%+<8=8$'(#"%&K

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 2 -
3,$#,(4
a) Bibujai el Automata Finito Beteiminista que coiiesponue a los
iuentificauoies uesciitos anteiioimente.
b) Bai una expiesion iegulai coiiesponuiente a los
iuentificauoies uesciitos anteiioimente.

N0TA: Paia etiquetai los aicos, en lugai ue utilizai caiacteies simples utilizai las
siguientes clases ue caiacteies:

letra [a-zA-Z] digito [0-9] and "_"




!"#$%&%&' 61 Consiuiese el lenguaje libios que se uefine como sigue:
a) 0n libio es o bien una novela o bien un coleccion ue histoiias coitas
b) 0na novela consiste en un titulo seguiuo poi uno o ms capitulos
c) 0n capitulo es un enteio seguiuo poi un cueipo ue capitulo
u) 0n cueipo ue capitulo es una lista ue piiafos yo ilustiaciones. La
lista uebe incluii al menos un piiafo.
e) 0na colleccion ue histoiias coitas se compone ue uos o ms histoiias
coitas. Bos histoiias coitas se sepaian poi una pgina en blanco.
f) 0na histoiia coita consiste en un titulo seguiuo ue un cueipo ue
histoiia coita
g) 0n cueipo ue histoiia coita es lo mismo que un cueipo ue capitulo

Esciibii una giamtica lo ms claia y compacta posible paia uicho lenguaje.
0tilizai letias minsculas paia los no teiminales ue la giamtica, asi como los
siguientes teiminales:

/#$-&7,8 8' 9:# ;#7'/,
T un titulo
E un enteio
P un piiafo
I una ilustiacion
B una pg. en blanco


!"#$%&%&' <1 Consiuiese la siguiente giamtica, uonue =>?!@A y ?BC son los
simbolos teiminales:


exp ::= listaElementos
listaElementos ::= NUMERO
listaElementos ::= exp MAS NUMERO

Razonai sobie si es una giamtica LL(1) o no. En caso ue no seilo, uai una
giamtica equivalente que sea LL(1).
!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- S -
!"#$%&%&' D1 Consiuiese la siguiente giamtica (en negiita los teiminales):

S ( L )
S a
L L , S
L S

3,$#,(4
a) Qu lenguaje geneia uicha giamtica.
b) Constiuii el automata SLR paia uicha giamtica y las tablas 'accion|j' e
'ii_a|j' uel anlisis SLR, y concluii si se tiata ue una giamtica SLR o no.
c) Eviuentemente, se tiata ue una giamtica no LL(1).
Tiansfoimaila en una equivalente que si lo sea, y constiuii la tabla uel
anlisis sintctico LL(1).

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 4 -
!"#$%&%&' E1 Con el objetivo ue uepuiai piogiamas se ha ueciuiuo implementai un
foimateauoi paia ficheios que contienen listas tipo Lisp ue enteios sin signo. Se
piue esciibii un analizauoi sintctico, en }avaCC, que iecoiia el ficheio ue entiaua
(contiene una secuencia ue listas ue las que estamos consiueianuo) y las esciiba en
foima tabulaua poi niveles, ue acueiuo con el ejemplo. Asi, si el ficheio ue entiaua
contiene

(1 2 3 4 (5 6 ) 7 8)
(88 (77 66) 55 (44 33 (22 11)))

la saliua poi (/;':/ uel analizauoi uebe sei la siguiente

(
1
2
3
4
(
5
6
)

7
8
)

(
88
(
77
66
)

55
(
44
33
(
22
11
)

)

)


!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- S -
Nota: uefinii nicamente el token F=>?!@AF y asumii ya constiuiuo un
analizauoi lxico que:
uevuelve uicho token cuanuo ieconoce un enteio sin signo
los blancos, tabulauoies y saltos ue linea los salta
paia cualquiei otio caictei, uevuelve su ASCII


!"#$%&%&' G1 Consiueiai el siguiente Automata Finito Beteiminista. Bai una
expiesion iegulai que coiiesponua a uicho automata.





!"#$%&%&' H1 Consiuiese la siguiente giamtica:


G:
S uBDz
B Bv B w D EF
E y

E
F x

F

3,$#,(4
a) Compiobai que se tiata ue una giamtica no LL(1)
b) Tiansfoimaila en una giamtica LL(1), y calculai su tabla ue anlisis LL(1)

!"#$%&%&' 0I1 Esciibii una giamtica libie ue contexto, LL(1), que ieconozca la
siguiente expiesion iegulai:

((a|b)+.(a|b)*)|(yx*y)

3,$#,(4
a) Piobai que, efectivamente, se tiata ue una giamtica LL(1)
b) Implementai, completamente en }avaCC, un analizauoi sintctico paia la
expiesion anteiioi.



!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 6 -
!"#$%&%&'( ('*$# J$'%#(,;'$#( ;# 8#7+:,"#(

!"#$%&%&' 01 Supon que en ?&7&K#7+ uispone ue la sentencia para, en la que los
valoies (al menos uno) poi los que iteiai se uetallan poi enumeiacion. Poi
ejemplo:

para i := j, 18, 2*k, j, l-1 hacer
...
...
fpara

En caua iteiacion uel bucle la vaiiable i uebe tomai un valoi ue la secuencia ue
expiesiones. Como pueues vei, estos valoies pueuen iepetiise, y el oiuen ue la
secuencia uebe iespetaise.

a) Esciibe las piouucciones que especifican esta veision ue la sentencia para,
y compltalas con las acciones necesaiias paia efectuai las compiobaciones
semnticas que consiueies peitinentes.
b) vuelve a esciibii las piouucciones, y suponienuo que la sentencia es
semnticamente coiiecta, compltalas con las acciones necesaiias paia
geneiai el couigo P coiiesponuiente.

!"#$%&%&' 21 Consiueia la posibiliuau ue ueclaiai vaiiables estticas en ?&7&K#7+,
como en el siguiente ejemplo:

programa P;
accion A;
estatico entero i = 10, j;
entero k;
principio
escribir (i);
i := i + 1
fin
principio
A; A; A; A; A; A;
fin.

Las vaiiables estticas solamente pueuen inicializaise con valoies constantes. La
ejecucion ue este piogiama esciibiiia: 10 11 12 13 14 15

3,$#,4 Explica qu mouificaciones es necesaiio hacei en el compilauoi paia incluii
este tipo ue vaiiables, y esciibe las piouucciones necesaiias, completnuolas con
las acciones que geneien el couigo coiiesponuiente.

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 7 -
!"#$%&%&' 51 Supon que en ?&7&K#7+ es posible ueclaiai vectoies multiuimensionales ue
componentes simples e inuices enteios:

entero i, j, v[100, 200];

y el opeiauoi existe, que en el siguiente ejemplo peimite ueteiminai si alguna
componente uel vectoi contiene un valoi igual a la suma ue sus inuices:

si existe i, j en v : v[i, j] = i + j fexiste ent ...

,L B7.8&(&( (#-.7/&%'1 Befine las piouucciones que especifican sintcticamente
este opeiauoi, y compltalas con las acciones necesaiias paia efectuai las
valiuaciones semnticas que consiueies peitinentes.
b) M#7#$,%&N7 ;# %N;&+'1 Betalla paia este opeiauoi el esquema ue geneiacion ue
couigo que consiueies ms eficiente en espacio y completa las piouucciones con
las acciones necesaiias paia geneiai el couigo coiiesponuiente.

!"#$%&%&' 61 Consiueia la posibiliuau ue utilizai en ?&7&K#7+ el opeiauoi en, como en los
siguientes ejemplos:

si c en a..z, _ ent ...
...
b := (i mod n) en 2*j..3*k, l+m;
...
mq i+j en 1, 3, 5, 7, 9 hacer ...

a) B7.8&(&( (#-.7/&%'4 Befine las piouucciones que especifican sintcticamente
este opeiauoi, y compltalas con las acciones necesaiias paia efectuai las
valiuaciones semnticas peitinentes.
b) M#7#$,%&N7 ;# %N;&+'4 Bisea un esquema ue geneiacion ue couigo paia este
opeiauoi, y ejemplificalo esciibienuo el couigo geneiauo paia el ejemplo ue la
instiuccion ue seleccion. Bejanuo a un lauo las valiuaciones semnticas,
completa las piouucciones con las acciones necesaiias paia geneiai el couigo
que implementa este opeiauoi.

!"#$%&%&' <1 Consiueia la posibiliuau ue utilizai en ?&7&K#7+ la asignacion en paialelo,
como en el siguiente ejemplo:

Booleano v;
Caracter c[10]
Entero i;
...
{v, c[i + 1], i} := {c[i] = 10, entacar(i+1), 2*i};

Se uebe gaiantizai que uuiante la ejecucion ue esta instiuccion el iesultauo sei
equivalente a llevai a cabo la touas las asignaciones en paialelo (los valoies asignauos
no uebe veise afectauos poi el oiuen ue evaluacion, ni ue asignacion).

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 8 -
a) B7.8&(&( (#-.7/&%': Befine las piouucciones que especifican sintcticamente
este opeiauoi, y compltalas con las acciones necesaiias paia compiobai que el
nmeio ue asignables es igual al numeio ue expiesiones a asignai.
b) M#7#$,%&N7 ;# %N;&+': Bisea uos esquemas ue geneiacion ue couigo paia esta
instiuccion: uno suponienuo el couigo se geneiai secuencialmente, y el
segunuo suponienuo que caua simbolo tenui asociauo un atiibuto que
contiene la lista ue instiucciones que lo implementan. Explica cul ue los uos te
paiece mejoi y poiqu.

Elige uno ue los uos esquemas y completa las piouucciones con las acciones necesaiias
paia geneiai el couigo que implementa esta instiuccion. Si eliges el segunuo mtouo,
geneia tambin couigo paia compiobai uuiante la ejecucion que el nmeio ue
asignables es igual al nmeio ue expiesiones.

!"#$%&%&' D1 Consiueia la posibiliuau ue uetectai en ?&7&K#7+ el acceso a vaiiables no
inicializauas, como en el siguiente ejemplo:

entero i;
principio
escribir(2*i);... -- error: i no tiene valor!

Sabis que en algunos casos es imposible uetectai esta situacion uuiante la
compilacion. Asi pues, uebes implementai su ueteccion en el momento ue la ejecucion
uel piogiama. En aiquitectuias en las que el uiieccionauo ue vaiiables es costoso, una
alteinativa ue implementacion consiste en utilizai un valoi centinela, Si en algn
momento uescubiimos que una vaiiable tiene un valoi uifeiente uel valoi centinela,
sabiemos con seguiiuau que la vaiiable ha siuo inicializaua. Si su valoi es el uel
centinela, sei necesaiio veiificai que la vaiiable ha siuo inicializaua.

3,$#,(
a) !7/'$7'( ;# #"#%:%&N74 Besciibe como iepiesentai en la mquina P las
vaiiables ue un piogiama o accion paia implementai esta caiacteiistica.
b) M#7#$,%&N7 ;# %N;&+'4 Paia caua una ue las sentencias afectauas en ?&7&K#7+,
uisea un esquema ue geneiacion ue couigo que consiueie la inicializacion ue la
vaiiable.
c) AJ/&-&O,%&N7: Sugieie un valoi posible paia sei utilizauo como centinela y
explica tus iazones paia sugeiiilo.

Paia apiobai: consiueia solamente la utilizacion ue vaiiables globales y locales.
Paia obtenei la nota mxima: consiueia tambin paimetios poi valoi y iefeiencia.

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 9 -
!"#$%&%&' E1 En este ejeicicio uebes implementai la veiificacion uimensional en ?&7&K#7+.
Esto consiste en peimitii asociai uniuaues a las vaiiables y constantes, y efectuai
contioles ue consistencia en su manejo. En ?&7&K#7+ se consiueiain palabias
ieseivauas las siguientes paia longituu: -/P ;-P %-P -- y las siguientes paia ngulos:
$,;P +$,;. El piimeio ue la lista es el valoi base, y el compilauoi uebe sabei la ielacion
con los uemas Q0 -/ R 0I ;-P 0 -/ R 0II %-P 0 $,; R 0GIST& +$,;P etc.) Se pouin
uefinii vaiiables como en el siguiente ejemplo:

real i; entero k;
entero d, m unidades mt; entero r unidades cm;
real a, b, c unidades rad;

El compilauoi uebe compiobai la coiiecta utilizacion ue las uniuaues, en caso ue
estai uefiniuas, en las expiesiones:

d = m - a; /** ERROR: m y a tienen
unidades incompatibles **/
i = a div b; /** correcto: rad / rad equivale
a sin unidades **/


Tambin uebe efectuai las conveisiones necesaiias paia evaluai
coiiectamente las expiesiones y efectuai asignaciones:

si mt(k+1) > cm(1) ent r = cm(d);

3,$#,(
a) Esciibe la giamtica ue expiesiones en }avaCC paia NiniLeng que peimita
utilizai vaiiables y constantes.
b) Compltala con las acciones necesaiias paia efectuai las compiobaciones
coiiesponuientes al uso coiiecto ue las uniuaues, y
c) geneiai el couigo que implemente las conveisiones.

N0TA: Consiueia solamente uimensiones simples y concntiate solamente en
constantes, vaiiables, cambios ue tipo, suma, uivision, >, =.


!"#$%&%&' G1 Supon que en ?&7&K#7+ es posible ueclaiai vectoies ue componentes simples
e inuices enteios:

entero i, j, v[100], w[100]; caracter c[80];

funciones que uevuelven valoies simples:

funcion abs (entero i) : entero; principio
si i < 0 ent dev (-i) sino dev (i) fsi; fin

y el opeiauoi J,$,/';', que en el siguiente ejemplo nos peimite ueteiminai si el valoi
absoluto caua elemento ue un vectoi es mayoi que su posicion en el vectoi:

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 1u -

si paratodo i en v : abs(v[i]) > i fparatodo ent ...

0tio ejemplo: ueteiminai si touos los elementos ue un vectoi ue enteios son menoies
que touos los elementos ue un segunuo vectoi ue enteios y su piouucto es mayoi que
el piouucto ue sus inuices:

mayor := paratodo i en v :
paratodo j en w : (v[i] < v[j])
and (v[i]*v[j] > i*j)
fparatodo
fparatodo;

3,$#,(
a) Befine las piouucciones que especifican sintcticamente este opeiauoi, y
compltalas con las acciones necesaiias paia efectuai las valiuaciones
semnticas que consiueies peitinentes.
b) Pueue este opeiauoi utilizaise paia ueteiminai si las componentes ue un vectoi
estn oiuenauas. Explica tu iespuesta.
c) Betalla paia este opeiauoi el esquema ue geneiacion ue couigo que consiueies
ms eficiente en espacio.
u) Bisea paia este opeiauoi el esquema ue geneiacion ue couigo que consiueies
ms eficiente en tiempo, y completa las piouucciones con las acciones
necesaiias paia implementailo.
e) Completa las piouucciones con las acciones necesaiias paia geneiai el couigo
ms eficiente cuanuo el inuice no apaiece en la expiesion.

!"#$%&%&' H1 Consiueia la sentencia (#+:7 en NiniLeng, que selecciona paia ejecucion un
ueteiminauo bloque ue instiucciones, segn el valoi ue una expiesion enteia. Poi
ejemplo:

segun i*j hacer
% si vale 1
principio
escribir(i);
fin

% si vale 2
principio
leer(k);
si k > 0 ent j := i / k si_no l := 0 fsi
fin

% si vale 3
principio
j := i + 1;
fin
fsegun

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 11 -
Esta instiuccion utiliza el valoi ue una expiesion enteia paia ueciuii qu bloque ue
instiucciones ejecutai. Si la expiesion es negativa o ceio, no se ejecuta ninguno. Si la
expiesion tiene un valoi mayoi que el nmeio ue bloques, tampoco.

3,$#,(
a) Befine las piouucciones que especifican sintcticamente esta sentencia, y com-
pltalas con las acciones necesaiias paia efectuai las valiuaciones semnticas
que consiueies peitinentes.
b) Bisea paia esta sentencia el esquema ue geneiacion ue couigo en el que, sin
saciificai otios aspectos ue la optimaliuau, se tome un minimo nmeio ue saltos
antes ue ueciuii qu bloque ejecutai.
c) Completa las piouucciones con las acciones necesaiias paia implementailo.


!"#$%&%&' 0I1 En este ejeicicio uebeis implementai una instiuccion paia en ?&7&K#7+,
con las mismas caiacteiisticas que el U'$ ue Pascal :

para: tPARA tIDENT := expr tHASTA
expr tPASO expr tHACER
bloque_instrucciones ;

3,$#,(
a) Betalla lo que habiia que hacei paia veiificai que la vaiiable que contiola las
iteiaciones ue la instiuccion no se alteie ue ninguna foima en el bloque ue
instiucciones.
b) Completa la piouuccion con las acciones necesaiias paia geneiai el couigo P
equivalente. Recueiua que el valoi ue los limites solamente uebe evaluaise una
vez.

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 12 -
!"#$%&%&' 001 Nuchos lenguajes ue piogiamacion incluyen instiucciones paia alteiai el
flujo ue contiol en iteiaciones. En C, la instiuccion %'7/&7:# peimite ejecutai la
siguiente iteiacion ue un bucle, ignoianuo el couigo uel bucle que apaiece uespus ue
ella. Esta instiuccion solo es vliua uentio ue bucles, y su efecto se aplica al bucle ms
inteino en el que apaiece. El siguiente piogiama ejemplo esciibe los nmeios uel 1 al
1u, excluyenuo el S:

main() {
int i = 0;
while (i++ < 10) {
if (i == 5)
continue;
printf ("%d ", i);
}
printf ("\n");
}

3,$#,(
a) Esciibe la piouuccion que especifica sintcticamente la instiuccion continue en
NiniLeng
b) Esciibe las acciones semnticas que consiueies que esta instiuccion iequieie
paia efectuai las valiuaciones
c) Esciibe las acciones paia la geneiacion uel couigo inteimeuio coiiesponuiente a
la instiuccion.

!"#$%&%&' 021 Consiueia la posibiliuau ue uefinii vaiiables ue tipo cauenas ue caiacteies
en NiniLeng, ilustiaua en el siguiente ejemplo:

var nombre, apellidos, nombre_completo : cadena[50];
.....
nombre = "Pedro";
apellidos = "Prez Pardo";
apellidos = "Prez";
nombre_completo = apellidos + ", " + nombre;
escribir ("NOMBRE COMPLETO:", nombre_completo);

En la sintaxis piopuesta est explicito el tamao ue la cauena, e implicito el tipo ue
componentes (%,$,%/#$#(.) Este tipo ue vaiiables tenuiia asociauos, entie otios, los
siguientes opeiauoies:

resultado entero:
longitud(c) ; indica el nmero de caracteres
que forman la cadena


resultado booleano:
c1 = c2 ; indica si c1 es igual a c2
c1 > c2 ; indica si c1 es lexicogrficamente
posterior a c2

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 1S -

resultado cadena:
c1 + c2 ; calcula la concatenacin entre c1 y c2


3,$#,(
a) Besciibe un B0EN mouelo ue iepiesentacion inteina o ue almacenamiento paia
uatos ue tipo cauena en la mquina P, tanto vaiiables en los bloques ue
activacion (FRANES), como en la pila ue ejecucion (STACK).
b) Suponienuo que uispones ue los tokens TC0NILLAS y TCARACTER, que
uetectan el comienzo y final ue una cauena y un caictei uentio ue una cauena,
iespectivamente, esciibe la piouuccion que especifica sintcticamente y geneia
el couigo coiiesponuiente a uetectai un factoi ue tipo cauena en una expiesion
y almacenai la cauena en el STACK.
c) Esciibe la piouuccion que especifica sintcticamente y geneia el couigo
coiiesponuiente a calculai la longituu ue una expiesion ue tipo cauena
almacenaua en el STACK, y almacenai el valoi calculauo en el STACK.
u) Suponienuo que en el STACK estn almacenauas uos cauenas, esciibe el couigo
P que calcula la suma (concatenacion) ue las uos cauenas y almacena la cauena
iesultante en el STACK.

!"#$%&%&' 051 Supon que la seleccion en ?&7&K#7+ tiene la siguiente sintaxis (las
paites (&7'(& y (&7' son opcionales):


si <expresin_1> ent
<bloque_instrucciones_1>
sinosi <expresion_2> ent
<bloque_instrucciones_2>
...
sinosi <expresion_n> ent
<bloque_instrucciones_n>
sino
<bloque_instrucciones>
fsi

3,$#,(

Suponienuo que paia los simbolos #VJ$#(&'7 y *8'9:#W&7(/$:%%&'7#( uispones ue
piouucciones que geneian el couigo P coiiesponuiente:
a) Esciibe las piouucciones que especifican la sintaxis ue esta instiuccion ue
seleccion
b) Aaue las veiificaciones semnticas que sean necesaiias
c) compltalas con las acciones necesaiias paia geneiai el couigo P que la
implemente.

!"#$%&'(#"%& (% *%+,-'.%&/ $-"&# 012340125 6'78%" 9':"'
- 14 -
!"#$%&%&' 061 Baua una cauena ue al menos ocho caiacteies
almacenaua en el Token / en }avaCC,

3,$#,(
a) Esciibe una accion que geneie el couigo P ms eficiente en tiempo posible paia
esciibii en pantalla la cauena ue caiacteies.
b) Esciibe una accion que geneie el couigo P ms eficiente en espacio posible paia
esciibii en pantalla la cauena ue caiacteies.

!"#$%&%&' 0D1 Supon que en ?&7&K#7+ existe una instiuccion ue inteicambio ue valoies
entie vaiiables simples, con la siguiente sintaxis:

swap ::= tIDENTIFICADOR < - > tIDENTIFICADOR ;

Esta instiuccion inteicambia los valoies ue las uos vaiiables:

{PRE: x = X, y = Y}
x <-> y;
{POST: x = Y, y = X}

3,$#,(
a) Completa la piouuccion asociaua a (X,J con las acciones necesaiias paia
geneiai el couigo P ms eficiente que inteicambie los valoies ue las vaiiables.,
sin utilizai la instiuccion SWP ue la mquina P.

S-ar putea să vă placă și