Material Sobre Squeak para El Laboratorio 5 de FP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

INF220-Fundamentos de Programacin

PONTIFICIA UNIVERSIDAD CATLICA DEL PER FACULTAD DE CIENCIAS E INGENIERA PROGRAMACIN ORIENTADA A OBJETOS CON

SQUEAK
El objetivo prin ip!l "e e#t! $%&!' ( "el l!bor!torio en $ener!l' e# )o#tr!r l! *ilo#o*&! "e l! pro$r!)! i+n orient!"! ! objeto#, Al i$%!l -%e %!n"o #e e#t%"i! in$l.#' #e ! on#ej! ! no tr!"% ir' #ino ! pen#!r en in$l.#/ "el )i#)o )o"o pl!nte!)o# l! )i#)! re$l! p!r! !pren"er e#te p!r!"i$)!' no b%#-%e #% e-%iv!lente en el len$%!je i)per!tivo' pien#e orient!"o ! objeto#, Por e#te )otivo e)ple!re)o# )% 0o# eje)plo# "el p!r!"i$)! i)per!tivo p!r! )o#tr!r n%evo# on epto# "e l! pro$r!)! i+n orient!"! ! objeto#, A0or! bien 1por -%. Squeak2 Por-%e e#te len$%!je )!ntiene "e l! )!ner! )3# p%r! po#ible' lo# on epto# en lo# -%e e#t3 b!#!"o e#te p!r!"i$)!, T!)bi.n 0! interveni"o %n o)ponente 0i#t+ri o' pero e# #e %n"!rio, En %n len$%!je i)per!tivo e#t!)o# ! o#t%)br!"o# ! "!r or"ene# %n! tr!# otr! por )e"io "e #enten i!#' on l! !(%"! "e *%n ione# ( pro e"i)iento# p!r! -%e no# *! ilite el tr!b!jo' pero !l *in!l e# o)o #e$%ir %n! re et!, E#te e# %n )%n"o "i*erente' "on"e to"o lo -%e e4i#te #on !t!lo$!"o# o)o objeto# ( #i %#te" -%iere -%e e#to# re! ionen tiene -%e envi!rle# %n )en#!je, Si 0!( %n ).to"o on el )i#)o no)bre -%e el )en#!je' e#to# re#pon"er3n "e ! %er"o ! lo "e# rito en el ).to"o, C%!n"o %no "e*ine %n! e#tr% t%r! en %n len$%!je i)per!tivo' e#t! "e*ini i+n no i)pli ! -%e (! e4i#t! en l! )e)ori! !l$5n e#p! io "e*ini"o, Al )o)ento -%e #e "e l!r! %n! v!ri!ble "e %n tipo re$i#tro !nterior)ente e#pe i*i !"o' re i.n en e#e )o)ento #e re#erv! el e#p! io "e ! %er"o ! lo "e*ini"o, Di$!)o# -%e l! "e*ini i+n re i.n 6!"-%iere vi"!7 ! tr!v.# "e %n! v!ri!ble, Al$o #e)ej!nte #% e"e on lo# objeto#, Ne e#it!)o# "e*inirlo#' e#to i)pli ! "e# ribir l! "!t! 8v!ri!ble#9 ( #% o)port!)iento 8).to"o#9' ! e#t! "e*ini i+n le ll!)!)o# clase, Lo intere#!nte e# -%e el o)port!)iento e# heredado por to"o# #%# l!#e# 0ij!#, L! l!#e p!"re e# ll!)!"! superclase ( l!# l!#e# 0ij!# #on ll!)!"!# subclases, Co)o to"o objeto n! e "e %n! l!#e #e "i e -%e %n objeto e# %n! instancia "e %n! l!#e, E#to# on epto# b3#i o# #on #%*i iente# p!r! e)pe:!r ( ! )e"i"! -%e v!(!)o# !v!n:!n"o #e ir3n "e#!rroll!n"o otro# on epto#, En e#t! pri)er! p!rte )o#tr!re)o# el re#%lt!"o "e envi!r %n! v!rie"!" )en#!je# ! "i*erente# objeto#' #in lle$!r ! pro$r!)!r !l$orit)o !l$%no, L! i"e! b3#i ! e# *!)ili!ri:!rno# on el len$%!je, E)pel!re)o# el Workspace ( el Transcipt, El Workspace e# %n! e#pe ie "e shell "on"e po"e)o# ver el re#%lt!"o "e envi!r )en#!je# ! "i*erente# objeto#, El re#%lt!"o "el )en#!je #e )%e#tr! en el )i#)o ;or<#p! e !#i ! ontin%! i+n "el )en#je, P!r! )o#tr!r el re#%lt!"o le tene)o# -%e "e ir ! S-%e!< 6i)pri)elo7 8print it9, A "i*eren i! "e #i t%vier!)o# %n! ! i+n ten"r&!)o# -%e "e irle ! S-%e!< 60!:lo7 8"o it9, L! "i*eren i! re#i"e en lo -%e "e#ee!)o# -%e 0!$! S-%e!<, En e#to# pri)ero# eje)plo# -%ere)o# i)pri)ir lo# re#%lt!"o# -%e retorn!n lo# )en#!je# envi!"o# ! ierto# objeto# 8n5)ero#' v!l+re# l+$i o#, Et 9, El Transcript m% 0!# ve e# l!# #!li"!# no l!# -%ere)o# )e: l!r on l!# ev!l%! ione#' "e )o"o -%e po"e)o# tener %n! vent!n! "e"i !"! #olo p!r! n%e#tr!# #!li"!#, E#te e# el p!pel -%e %)ple el objeto Transcript' !l )o)ento "e ev!l%!r "ebe)o# in"i !rle -%e -%ere)o# el re#%lt!"o en el Transcript, P!r! !brir %n! vent!n! "el Transcript p%e"e 0! erlo e)ple!n"o el !t!jo= Ctrl+t' %i"e#e "e -%e el %r#or no e#t. ! tivo en el >or<#p! e,
Laboratorio 5

INF220-Fundamentos de Programacin

De l! op i+n Tools "el )en5 prin ip!l elij!)o# Workspace' !0or! envie)o# el )en#!je factorial !l n5)ero 7, p!r! -%e S-%e!< )%e#tre el re#%lt!"o "e e#te )en#!je 0!$! click "ere 0o ( elij! l! op i+n print it "el )en5 onte4t%!l' t!l o)o #e )%e#tr! ! ontin%! i+n ?=

El re#%lt!"o #e )o#tr!r3 en el ;or<#p! e "e *or)! #o)bre!"! 8!l *in!l "e l! l&ne!9 on olor lil!, A ontin%! i+n %n! #e %en i! "e )en#!je# envi!"o# ! objeto# on #%# re#pe tiv!# #!li"!#,

? T!)bi.n p%e"e pre#ion!r Ctrl+p 8en Lin%49


Laboratorio 5

INF220-Fundamentos de Programacin

El )en#!je 6@ A7 #e env&! !l objeto 6?7 ( e#te re#pon"e 6tr%e7, En el 5lti)o !#o el )en#!je envi!"o e# 6B C7 ( el objeto -%e lo re ibe e# 6D7, De e#to #e p%e"e "e"% ir -%e 0!( "i#tinto# tipo# "e )en#!je#, Mensajes Lo# )en#!je# %n!rio#= #on !-%ello# )en#!je# -%e no tienen !r$%)ento#, A ontin%! i+n !l$%no# eje)plo# -%e %#te" po"r3 prob!r en el ;or<#p! e,

El re#%lt!"o e# )o#tr!"o !l *in!l "e !"! l&ne!, Al )o)ento "e envi!r el )en#!je' l! re#p%e#t! )o#tr!"! e# #o)bre!"! on el olor lil!, C!#i to"o# lo# )en#!je# #e e4pli !n por #& #olo#' e4 epto lo# "o# 5lti)o#, El pen5lti)o pre$%nt! por l! l!#e ! l! -%e pertene e el objeto E8A F( D?,C"9 ( e#te re#pon"e "i ien"o -%e e# "e l! l!#e Array, El 5lti)o e# %n )en#!je -%e re#pon"e on %n! opi! "el objeto, Gen#!je# bin!rio# #on !-%ello# -%e tienen #+lo %n !r$%)ento ( e)ple! %n !r3 ter "e #ele tor bin!rio 8lo# !r! tere# "e #ele tor bin!rio #on= H I J K L M N B O P Q @ R ' 2 S9, A ontin%! i+n !l$%no# eje)plo# -%e %#te" po"r3 prob!r en el ;or<#p! e,

E#to# eje)plo# t!)bi.n #on *3 ile# "e enten"er, Lo# 5lti)o# #on intere#!nte#' -%i:3# no er!n lo# v!lore# -%e e#per!b!, L! e4pli ! i+n e# )%( #en ill!' lo# )en#!je# #on !#o i!tivo# por l! i:-%ier"!, E# "e ir en el pen5lti)o eje)plo pri)ero #e env&! T B DT !l objeto U' el -%e re#pon"e on el objeto ?V' el )i#)o -%e le e# envi!"o el )en#!je M A' lo -%e re#%lt! en el objeto AV, No on*%n"!' lo# )en#!je# bin!rio# no #on oper!"ore#, E# "e ir no e#t3n "e*ini"o# en l! #int!4i# "e S-%e!<, S+lo e4i#ten "o# oper!"ore# en S-%e!<, Por 5lti)o e#t3n lo# )en#!je# on p!l!br!# re#erv!"!# 8<e(>or"# )e##!$e#9, E#to# )en#!je# tienen )3# "e %n !r$%)ento ( !"! !r$%)ento v! pre e"i"o por "o# p%nto# 8=9, A ontin%! i+n !l$%no# eje)plo# -%e %#te" po"r3 prob!r en el ;or<#p! e,

P!r! ter)in!r )en ion!re)o# -%e S-%e!< e# #en#ible ! l!# )!(5# %l!# ( )in5# %l!#, A"e)3#' p!r! #ep!r!r %n )en#!je "e otro "ebe)o# olo !r %n p%nto 8,9,
Laboratorio 5

INF220-Fundamentos de Programacin

Estructuras e c!ntr!l En %n len$%!je i)per!tivo e4i#ten #enten i!# t!le# o)o if/then/else' while/repeat/for -%e per)iten e#tr% t%r!r pro$r!)!# "e *or)! or"en!"!, En otro# p!r!"i$)!# o)o el *%n ion!l no 0!( #enten i!# "e repeti i+n p!r! no )o"i*i !r el e#t!"o ori$in!l, En S-%e!< no 0!( #enten i!# "e *or)! o)o lo ve)o# en %n len$%!je i)per!tivo, A-%& 0!( , , ,' !"ivin+' !-%& 0!( )en#!je#, Por t!nto %n if/then/else ( l!# e#tr% t%r!# "e repeti i+n #on t!)bi.n )en#!je#, Ve!)o# !l$%no# eje)plo#= Ante# "ebe)o# "e !brir l! vent! "el Trnascript, En el Workspace #i -%ere)o# -%e #e eje %te )3# "e %n! l&ne! "e )en#!je#' "ebe)o# )!r !rlo#' "e lo ontr!rio #olo tr!t!r3 "e envi!r el )en#!je "e l! l&ne! "on"e #e en %entr! el %r#or, En l%$!r "e ele$ir print it' !0or! "ebe)o# ele$ir do it' o %n! ve: )!r !"o' pre#ion!r Ctrl+ d, IfTrue:

ifTrue:ifFalse:

Laboratorio 5

INF220-Fundamentos de Programacin

Re"et#c#!nes whileTrue:

timeRepeat:

to:do:

Arre$l!s % Ca enas& A)bo# tienen o)port!)iento# o)%ne# por-%e tienen l! )i#)! #%per l!#e= SequenceableCollection, Por t!nto lo# ).to"o# -%e #e !pli !n en %no' #e p%e"en !pli !r !l otro, W!( -%e )en ion!r -%e lo# !rre$lo# en S-%e!< p%e"en ontener ele)ento# "e "i#tinto# tipo#, Por eje)plo #i #e "e#e! re!r %n !rre$lo p!r! l%e$o !l)! en!r %n entero 8?A9' %n! !"en! 8T0ol!T9 ( %n !r3 ter 8F!9' po"e)o# re!li:!rlo "e l! #i$%iente *or)!=

Laboratorio 5

INF220-Fundamentos de Programacin

A ontin%! i+n !l$%no# )en#!je# -%e #e le p%e"en envi!r ! lo# !rre$lo# o !"en!#=

Se p%e"e "e"% ir -%e el )en#!je at per)ite obtener %n ele)ento "el !rre$lo, El )en#!je do per)ite $ener!r %n b% le "on"e !"! v%elt! #e to)! %n ele)ento "el !rre$lo, X el 5lti)o )en#!je select $ener! %n !rre$lo on lo# ele)ento# *iltr!"o# #e$5n otro )en#!je, E#te 5lti)o eje)plo p%e"e 0! erle re or"!r ! l!# li#t!# on pre"i !"o# en W!#<ell, Crean ! Clases' #nstanc#as % ()t! !s&

El System Browser
Ll!)!re)o# ! lo# tre# botone# "el mouse o)o rojo' !)!rillo ( !:%l re#pe tiv!)ente, En Squeak no #e ! o#t%)br! ! "e ir click i:-%ier"o' #ino -%e #e "e# riben lo# botone# "el mouse por olore#, A"e)3# l! on*i$%r! i+n p%e"e v!ri!r entre #i#te)!# oper!tivo#, El clickNrojo e# el )3# %#!"o ( #irve p!r! #ele ion!r !l$5n &te) "e %n! li#t!' #ele ion!r te4to' ( #ele ion!r op ione# "e %n )en5, El clickN!)!rillo e# el #i$%iente )3# e)ple!"o ( #irve p!r! obtener el )en5 onte4t%!l "epen"ien"o "e "+n"e e#t3 !p%nt!n"o el mouse, El clickN!:%l e# %#!"o p!r! obtener el 6 morphic halo7' %n !rre$lo "e )!nej!"ore# -%e per)iten llev!r ! !bo oper! ione# #obre lo# )i#)o# objeto#' en l! p!nt!ll!, En Lin%4 "e# %br! ! -%i.n orre#pon"e !"! olor, De 0e 0o !l$%no# (! 0!n #i"o %#!"o#, Y#te objeto 8System !rowser9 e# %#!"o p!r! e"it!r l! v!rie"!" "e pro$r!)!# -%e #on re!"o# en Smalltalk, El System !rowser )%e#tr! pie:!# "e +"i$o "e ! %er"o ! %n e#-%e)! "e l!#i*i ! i+n' ( e#te e# el prin ip!l l%$!r "on"e el +"i$o #e re! ( #e e"it!, P!r! obtener el browser pre#ione Alt+b' o p%e"e obtenerlo ! tr!v.# "el )en5 en l! p!rte #%perior "e Squeak' o 0! ien"o clickNrojo ( eli$ien"o !rowser ,
C B
Clases Categora de m todos !o protocolos"

D
# todos

A
Categora de clases

E
C$digo de Smalltal% para los m todos

Laboratorio 5

INF220-Fundamentos de Programacin

Ob#erve el !rowser' %#te" p%e"e %bi !r en l! p!rte #%perior %!tro 3re!#, E#t!# 3re!# l!# po"e)o# eti-%et!r o)o A' B' C ( D' p!r! l! p!rte #%perior ( E en l! p!rte in*erior, El 3re! E e# l! #e i+n "e 6te4to7 "on"e %#te" e"it!r3 #%# pro$r!)!#, L! li#t! "e !te$or&!# e#t3n en el )en5 "e l! i:-%ier"!/ "e#p%.# -%e %#te" 0! ele$i"o %n! "e e#t!# !te$or&!#' %n )en5 )3# e#pe &*i o !p!re e ! #% "ere 0!, U#te" tr!b!j!r3 "e i:-%ier"! ! "ere 0! ! tr!v.# "e lo# %!tro )en5#' ( l%e$o ver3 o re!r3 %n! pie:! "e pro$r!)! en el p!nel "e !b!jo, Por !0or! no #e preo %pe #obre l! i)port!n i! o #i$ni*i !"o "e lo# %!tro )en5# en el !rowser, Con #i#te)!# tr!"i ion!le# "e pro$r!)! i+n %no re! %n n%evo pro$r!)! -%e e#t3 "e !l$%n! *or)! enl!:!"o ! otro# pro$r!)!# v&! el #i#te)! oper!tivo, En Squeak' #e tiene -%e re!r %n! l!#e' in"i !n"o "e -%. l!#e "eriv! 8superclase9 ( l%e$o #e on#tr%(en lo# ).to"o# p!r! #% in#t!n i! ( lo# ).to"o# p!r! l! l!#e #i e# -%e l!# ne e#it!, Otr! *or)! "e el!bor!r %n +"i$o po"r&! #er !Z!"ir n%evo# ).to"o# ! l!#e# (! e4i#tente#, De"e e#te p%nto "e vi#t! p!re ier! -%e #olo ne e#it!r!)o# "o# ol%)n!#' %n! p!r! "e*inir l!# l!#e# ( otr! p!r! lo# ).to"o#, Sin e)b!r$o #i #e 0i ier! e#to 0!br&! %n "e#or"en ( !%n-%e #e en %entren or"en!"!# "e *or)! !l*!b.ti ! 0!br&! )% 0! "i*i %lt!" p!r! 0!ll!rl!#, Por e#te )otivo #e 0!n in l%i"o "o# ol%)n!# !"i ion!le# -%e no# per)iten l!#i*i !r l!# l!e# ( lo# ).to"o# por !"! l!#e, L! pri)er! ol%)n! 8A en el "ib%jo "e !rrib!9 #e en %entr!n l!# !te$ori!# "e l!# l!#e#, De e#t! *or)! #i "e#e!)o# en ontr!r %n! l!#e o re!r %n! l!#e n%ev!' #er3 #en ill! %bi !r #% l%$!r "e ! %er"o ! #%# !r! ter&#ti !#, Por eje)plo #i "e#e!)o# re!r %n! l!#e p!r! $r3*i o# b%# !re)o# -%e #e! "e# en"iente "e l! l!#e "orphs 8$r3*i o#9 ( no tene)o# -%e b%# !r en otro l%$!r, En l! #e$%n"! ol%)n! 8B en el "ib%jo "e !rrib!9 #e en %entr! l!# l!#e# -%e orre#pon"en ! !"! !te$ori!, Si el %r#or #e en %entr! en l! !te$or&! [ernel N%)ber#' l! #e$%n"! ol%)n! )%e#tr! to"!# l!# l!#e# -%e pertene en ! e#t! !te$or&!, C!"! l!#e tiene %n! #erie "e ).to"o#' lo# )i#)o# -%e #e l!#i*i !n en proto olo#, De *or)! -%e l! ter er! ol%)n! 8C en el "ib%jo "e !rrib!9 #e )%e#tr!n lo# proto olo# en -%e #e l!#i*i !n lo# ).to"o#, Por eje)plo %n! l!#e p%e"e tener ).to"o# p!r! )o#tr!r "!to#' otro# p!r! )o"i*i !rlo#, Enton e# po"r&!)o# re!r "o# proto olo#= )%e#tr! ( )o"i*i !, L! %!rt! ol%)n! 8D en el "ib%jo "e !rrib!9 #e )%e#tr!n lo# ).to"o# #e$5n !"! proto olo, Depen"ien"o "e "on"e #e en %entr! el %r#or' el 3re! "e !b!jo 8E en el "ib%jo "e !rrib!9 )o#tr!r3 #% onteni"o, Por eje)plo #i el %r#o# "e e %entr! en l! ol%)n! A' pen#!r3 -%e -%ere)o# re!r %n! !te$or&! n%ev! ( en el 3re! E #e )o#tr!r3 %n pl!ntill! "e %n! l!#e p!r! -%e l! llene)o# in"i !n"o ! -%e !te$or&! pertene e, Si por el ontr!rio el %r#or #e en %entr! en l! ol%)n! B e#t!r3 !p%nt!n"o ! %n! l!#e ( e4i#tente ( en el 3re! E #e )o#tr!r3 lo orre#pon"iente ! e#t! l!#e, Si el %r#or #e en %entr! en el !\e! C enton e# en el 3re! E #e )%e#tr! %n! pl!ntill! "e %n ).to"o p!r! el proto olo !l -%e e#t3 !p%nt!nto el %r#or, A0or! #i %#te" 0! #i"o %i"!"o#o #e 0! per !t!"!o -%e le 0e)o# "!"o l! *or)! "e re!r %n! l!#e n%ev! ( "e re!r %n ).to"o n%evo, Pero #i "e!#e re!r %n! !te$or&! n%ev! ( %n proto olo n%evo 1-%. ten"r&!)o# -%e 0! er2 En el pri)er !#o b!#t! on olo !r el %r#or en l! ol%)n! A ( 0! er click "ere 0o' ( "el )en5 onte4t%!l ele$ir add item, En el !#o "e %n! !te$or&! n%ev!' #e repite lo )i#)o' pero !0or! on el p%ntero "el )o%#e #obre l! ol%)n! C ( #e elije "el )en5 onte4t%!l new cate#ory,

Laboratorio 5

INF220-Fundamentos de Programacin

&as Torres de 'a(oi 6Also called the Tower of Brahma or Towers of Brahma, is a mathematical #ame or pu$$le% &t consists of three rods, and a number of disks of different si$es which can slide onto any rod% The pu$$le starts with the disks in a neat stack in ascendin# order of si$e on one rod, the smallest at the top, thus makin# a conical shape%

The ob'ecti(e of the pu$$le is to mo(e the entire stack to another rod, obeyin# the followin# rules )nly one disk may be mo(ed at a time% *ach mo(e consists of takin# the upper disk from one of the rods and slidin# it onto another rod, on top of the other disks that may already be present on that rod% +o disk may be placed on top of a smaller disk%7 8Wikipedia9
Pro$r!)!r en S-%e!< #i$ni*i ! -%e no#otro# "ebe)o# en ontr!r %n l%$!r p!r! l!# Torres de ,anoi !nte# -%e po"!)o# e# ribir el pro$r!)!, No re!re)o# %n! !te$ori! "e l!#e n%ev!' #ino -%e !$re$re)o# %n proto olo 8! ve e# t!)bi.n ll!)!"o !te$or&! "e ).to"o9 p!r! !ll& e# ribir n%e#tro# ).to"o#, E#to #i$ni*i ! -%e tene)o# -%e eli$ir %n l!#e "e %n! !l$%n! !te$or&!, Si$! lo# #i$%iente# p!#o#= ?, In$re#e ! l! vent!n! "el !rowser, A, G%ev! el %r#or !l 3re! A, ]%#-%e l! !te$or&! )er(el *b+ects' ( #ele ione e#te &te), D, G%.v!#e !l 3re! B ( #ele ione *b+ect, C, En l! p!rte in*erior "el 3re! B !#e$5re#e -%e l! p!l!br! i(sta(ce e#t. #ele ion!"!, Si no lo e#t3 0!$! click en ell!, Por !0or! no %#!re)o# l! op i+n class' p!r! ello !#e$5re#e -%e i(sta(ce per)!ne: ! #ele ion!"!, ^, A0or! !$re$!re)o# %n proto olo 8o !te$or&! "e ).to"o9 en l! -%e olo !re)o# n%e#tro ).to"o#, G%.v!#e !l 3re! C on el p%ntero "el mouse ( pre#ione l! te l! ESC, Ap!re er3 %n )en5 pop-up en l! p!nt!ll!, Por o# %r!# r!:one# t. ni !#' e#te tipo "e )en5 e# ono i"o o)o )en5 6 pop-up7, De e#te )en5 elij! l! op i+n (ew category, _, L%e$o' #e )o#tr!r3 otro )en5 pop-up on t&t%lo Add Category elij! l! op i+n ,ew, U, A ontin%! i+n !p!re er3 %n! pe-%eZ! vent!n!' pi"ien"o -%e in$re#e %n no)bre p!r! e#t! !te$or&!, E# rib! el no)bre games ( pre#ione l! te l! return, `, El no)bre "e n%e#tr! n%evo proto olo' games' !p!re er3 ( e#t!r3 #ele ion!"! en el 3re! C, G%ev! el %r#or en el 3re! E en l! p!rte b!j! "el !rowser, G!r-%e el te4to ( borre e#te ,

Laboratorio 5

INF220-Fundamentos de Programacin

A ontin%! i+n e# rib! el #i$%iente ).to"o=

a, Co)p!re el +"i$o on el -%e 0! e# rito' veri*i !n"o -%e no 0!(! o)iti"o nin$5n !r3 ter, ?V, Ubi-%e el %r#or en l! p!rte in*erior "el !owser 8"on"e e# ribi+ el +"i$o9 ( pre#ione ESC' !p!re er3 %n )en5 pop-up' elij! l! op i+n accept, ??, Smalltalk re#pon"er3 l! pri)er! ve: on %n! !j! "e "i!lo$o "on"e #oli it! -%e in$re#e #%# ini i!le#, In$re#e #%# ini i!le# ( 0!$! click en accept, ?A, L%e$o #e )o#tr!r3 otro )en5 pop-up -%e no# !"vierte -%e #e e#t3 invo !n"o ! %n ).to"o -%e no e#t3 i)ple)ent!"o, El en%n i!"o "el )en5 8tr!"% i"o9 e# 6Sele tor "e# ono i"o' por *!vor on*ir)e' orrij! o !n ele7, No#otro# on*ir)!re)o# 0! ien"o click en el no)bre "el ).to"o mo-e.is%:to:, E#te pro e"er lo po"e)o# o)p!r!r' por eje)plo' %!n"o el o)pil!"or "e P!# !l en ontr!b! l! invo ! i+n "e !l$5n pro e"i)iento -%e e#t3 "e*ini"o "e#p%.# ( no#otro# p!r! !"vertirle "e e#te 0e 0o !l o)pil!"or' "e l!r3b!)o# el pro e"i)iento !nte poni.n"ole l! p!l!br! re#erv!"! FOR;ARD, En n%e#tro !#o Smalltalk #e 0! per !t!"o -%e #e e#t3 invo !n"o ! %n ).to"o -%e !5n no 0! #i"o e# rito, No#otro# le 0e)o# on*ir)!"o por -%e l! ! i+n #i$%iente #er3 e# ribir e#te ).to"o, ?D, Ob#erve' -%e on #e$%ri"!" en el 3re! D el no)bre "el ).to"o -%e ! !b!)o# "e e# ribir #e en %entr! #ele ion!"o, Lo pri)ero -%e tene)o# -%e 0! er e# "eN#ele ion!rlo 0! ien"o click en el no)bre, A ontin%! i+n en el 3re! E 8p!rte in*erior "el !rowser9 e# ribire)o# el #i$%iente +"i$o=

?C, Repit! el pro e"i)iento "el p!#o 8`9' on l! "i*eren i! -%e en e#te !#o Smalltalk (! no le pe"ir3 #%# ini i!le# ( no 0!( ).to"o# !%#ente# en el %erpo "e n%e#tro pro$r!)! -%e ori$inen %n )en#!je "e error,

Laboratorio 5

INF220-Fundamentos de Programacin

10

A0or! e#t!)o# li#to# p!r! eje %t!r n%e#tro pro$r!)!, Abr! el Workspace ( e# rib! en ell! l! #i$%iente l&ne!,
(Object new) moveTower: 3 from: 1 to: 3 using:2

G3r-%el! ( pre#ione ESC' "el )en5 -%e !p!re e elij! l! op i+n do it ( por *in obten"re)o# l! #!li"! ! n%e#tro pro$r!)!, Ojo el Transcript tiene -%e e#t!r !bierto,

C*(! sal+ar nuestr! "r!$ra(a& Co)o on %!l-%ier pro$r!)!' e# i)port!nte #!lv!r #% tr!b!jo, A no#otro# no# $%#t!r&! e# ribir %n !r 0ivo ontenien"o lo# "o# ).to"o# -%e 0e)o# "e*ini"o 0!#t! !0or!, V!(! !l 3re! C en el !rowser ( 0!$! click !)!rillo #obre games 8el proto olo -%e re!)o#9, Del )en5 onte4t%!l elij! fileOut, El #i#te)! no)br!r3 el !r 0ivo o)o Object-games.st ( lo e# ribir3 en el "i# o' en el "ire torio "on"e 0! #i"o

invo !"o Squeak' p!r! el !#o p!rti %l!r "e lo# l!bor!torio# #e $%!r"!r3 en /home/alulab/%squeak
Si %#te" e#t3 !n#!"o' e#te e# %n b%en )o)ento p!r! 0! er %n break, C%!n"o %#te" "eje el #i#te)! Smalltalk' tiene "o# op ione# p!r! #!lv!r #% e#t!"o ! t%!l, Si %#te" "e#e! ini i!r l! #i$%iente #e#i+n e4! t!)ente o)o #e en %entr! en e#te )o)ento' p%e"e 0! er %n snapshot ( #!lv!r el #i#te)! o)pleto en el "i# o, Si no tiene en )ente re$re#!r !l )o)ento en -%e #e en %entr!' enton e# p%e"e# #!lir #in $r!b!r o#! !l$%n!, Debi"o ! -%e 0e)o# $r!b!"o n%e#tro pro$r!)! en %n !r 0ivo #ep!r!"o= Object-games.st' ( "e#e!)o# obtener e4perien i! en tr!er "e re$re#o el !r 0ivo !l #i#te)!' e# -%e #!l"re)o# #in #!lv!r, P!r! #!lir "e Smalltalk' )%ev! el %r#o ! %n 3re! libre' 0!$! clickNrojo ( elij! quit "el )en5, Otro pe-%eZo )en5 !p!re er3 on l! pre$%nt!= Save changes before quitting?, Ele$i)o# No, S!l"r3 "e Smalltalk e in$re#!re)o# !l #i#te)! oper!tivo "e l! )3-%in!, De#p%.# en el )o)ento en -%e %#te" "e i"e retorn!r ! Smalltalk' le $%#t!r&! re %per!r el pro$r!)! -%e e# ribi+, Del )en5 prin ip!l elij! ope(, En el #i$%iente )en5 elij! Workspace' ( "entro "e ell! e# rib! lo #i$%iente=
Laboratorio 5

INF220-Fundamentos de Programacin

11

(FileStream oldFileNamed: 'Object-game.st'

file!n.

L%e$o #ele ion! l! l&ne! o)plet!)ente ( elij! do it "el )en5 pop-up 8!nte# re %er"e pre#ion!r ESC9, Si to"o v! bien Smalltalk "eber&! !r$!r lo# ).to"o# -%e e# ribi+ !nte#, P%e"e veri*i !rlo !brien"o l! vent!n! !rowser ( on*ir)!r -%e #%# ).to"o# #e en %entr!n !ll& % T!)bi.n p%e"e ele$ir "el )en5 pri ip!l l! op i+n Tools ( "e e#te )en5 l! op i+n File &ist, ]%#-%e el "ire torio ( !r 0ivo orre#pon"iente' Squeak re!i:!r3 lo orre#pon"iente,

Laboratorio 5

También podría gustarte