ユーザインタフェースの代数的仕様記述と仕様からのプログラム生成
8
0
0
全文
(2)
(3) !#"%$ &('%)%* +!(,%- .0/%1 2%3%4%576%8%9%:%;%8%<%;%8=7>%678%?%@%6 DC§FC¨kAC©GEBEICDCJEFHy{GCIEz}|YJL~KNMCOQNfKNPSf¯CRU°TW VQ oXZLlY\E[E C]ETEDEy^C_EcUC`EVEaCXZbEFEY\YN[HG]CDLQ³Q´ FCLG K ³HcW¶WdfTfeH·Zg\s¸¹hQiktijmHlEnppoHEqQrsii WTu C¡Et ¢LYk£Zv ¤sKN¼ ¥EwE¦x FCÊG cUÓ £WÃE£W½NªCÄE¾s«H ¿ Y R gH¤Ì K KN¬WÍE® Î FCcUGEFCEICG E®UJ c ±Õ IHY\J {Ó ~CYkKNÀHWÍEy ²ZÎ £N £WË ÁfÏe¥H¦ ¦ JÂQYkFC Gg JHnQc Âsµ YN cUfÃH UÄmÐmÅERNiS¸ Æ £W·QÑEvCPÈÒHÇÊW ²ZÉÊYSQzNÓ cUË nUºEg Ôm»H l R cWK « Q£ Ë g nWÔml cWdfe¦ c nUÔmlN gNÖE×m£NÁek¦QØ (ASM. ). UI. UI. AWS. AWS. UI. ASM. Java Java. ASM. UI. ASM. Algebraic Specification of User Interface and Its Automatic Implementation Mizuho Ikeda Takeshi Nakamura Yoshiaki Takata Hiroyuki Seki Graduate School of Information Science Nara Institute of Science and Technology In this paper, we propose a formal description method of user interface (UI) based on a subclass of algebraic specifications called abstract sequential machine (ASM) specifications and also discuss a prototype generation method from an ASM specification. We first introduce an abstract window system (AWS), which is a simple multiprocess model where each UI module behaves asynchronously by sending or receiving messages. Based on AWS model, ASM specifications of some UI are presented. We also describe experiments with a compiler which translates an ASM specification into a Java program.. ÙÛÚÝÜßÞ àfá âãäWåçæèLéêWëì íîïðmñòEóõôö÷Lãçæçò ê úøýLùüúmûüçýþÿ ð î âQã äåæ{úè ú í îm
(4) ï ,-. /ð 0 ý1243
(5) 5s ð ! " $ú 6#%&7(8'9) :;p*ý +<>=? @ ðABçí Cú$DE9GF&4HI<EýIJ& L9 KM=(ð í RNSOúúQTâQU ã#WäHVåXZæY\$è [Z]WE^ Qí P&] H ð\ _23I í `&a bcd6ú eôpèå#>ä f ge hQömëõòj é iö rteks l !3" ú ,'-)
(6) uç9$ý vW=m&w$=34@5xð s nyÊoíI ú _2{4Ií pLqe klz g{e hQömëõòj é iZö eIs k l?(|{í }~ $!"E9G') z4ð <LEý ÿ ?6zE(G6d (Líî IL & ¡ z&¢ £?\ ¤ 1. , (UI). , UI. [7].. ,. ,. , UI. ,. ,. .. (1). , UI. ,. (. ). ,. .. ,. ,. .. (2) UI. ,. ¥(¦L§t¨©&ªW¦ 6«6¬u>®¯ , ° ± >²³´4. µ¯. ¥¶·¸¹º ¢» , ¼½¾ , ¿À4ÁZ ¦&§{¨>© ªW¦ÄÃÆÅÇ ºIÈÉ Ê ¢ IL ºIËÌ ¯ ¶ . ÍÎ Ê , ÏÐZÑ ÒÓÔZÑÕÖ×&Ø&Ù Ê ¢ ÏÚZÑ¿ÀÕ Ö × [6] GÛ ¶ à6½ á6UIâ °±× QÜÝZº(åæ (. ÏçÚZèZÑéG¿êtÀ Õ¹Ö×ë çè{, ìÔíÞî ß Á ¦L§ ïZ¿ð4À ñ $Iãòä ó4ôõ4öìíî Ì, Ê(÷ ã&øù ì í>î Ê ÕÖ ðº( ú ÒI¯ û¥ Òüýþ ÿ Ù . ÏÚZÑ ¿ÀÕÖ×&
(7) º , øùZê Ñ ¥4¶
(8) ÏÚZÑ¿ À ( , ASM ØÙ , ¿
(9) À Õ Ú ), Â Ú& 2[11]. ASM ¿À Z Ú « ! Ê , "ß$ Û6« » #, %&&
(10) Á{Â Ò '. Ú&"* ) ß º ü , ¢ «,+Æ -
(11)
(12) .
(13) ' \ & Ú ( éQê , / *
(14) Ú )&* 0%1 « ¤ , ÏÚÑ¿ÀÕÖר 2Z ýþ ¥ çèL Á . ASM ¿ À 3 ¥ « + $Ò 56 ÿ Ù . û , Z 4 ¶Ì¶ $Ò <=
(15) >&$û ?&! 9 @ð $ A Ò 1 798
(16) : Ó Z ; ¢ ÁÂB;CDE
(17) º FG éWêu . H$À , IJE 1. 1. −9− 1. KMLONMP , SQ R NUTWVMXZYM[M\M]O^U_a`. ..
(18) bc ÿ*de Ê ¢ [11]. 7 fgÚ ihjLâ , gÚ Bk Ú Iòó á l 6« » , mL ¶$¦§ ïZð4ñ p k > ºÈ n $ o É Ê ¢ [10]. *56 , q Õ ¹
(19) r 2. (òZ¯ ¥!s m Ê ¢ . b t 7 ¿4ÀZ ÓÔÑ G ú Ò +Z& uv Ñ wx × GÛ ¶ Òü , b , G ! yz Ð º&{ < ¥ e ¶$| ÍÎ Ê , UI $ÏÚÑ¿ÀÕÖ }~ ¤ ¥ , øùÑ êE
(20) 6î?GÜÝ (2 ).
(21) ñ (AWS)9 î ºg !
(22) 4 « ¤ AWS , UI 4 « + 6 î ¥$ H Å å Ò! ¦L§
(23) @ Ê ¢ . Ò ³6 , AWS à6á ¶ ½ UI ASM ¿À&ÕÖ× Ö (3 ). ¼ Ê , UI g îL ØZÙ ASM ¯ ¥ çIè éQê{ $ î ÃZ ÿ «* , .ß AWS Û 9 ,
(24) ¡
(25) UI$¯ ¥ ÿ Ù ØZÙ, ¯ ¥ çèLéGêE . ÜÝL ÕÖ× (à6á ¶ ½ ASM ASM ¿ÀZ$ÕÊ Ö ¢ ÌO¤ £ . ¥f¦9§ 4 QÜÝZ¨© ¯ , UI , Java O ¥ Z ¦ ½ ¾ª· 0 ASM ¿À . Ø
(26) 2 , UI ¥
(27) ¦ $¯ 4 º & ð O ª ¬ Z ð m
(28) ¥ nLÜ
(29) & Ñ(Òé>ê ¥¶ ½(¾L ºIËZ, Ì ¯ ¶ UI. 99«® , ¯° °± ò ù Òt¤ ¥6¶ «* UI ,ò ± °6± ò ù UI² ÿ ³ . ´f{ µ l Ñ 6 , UI UI 9« $g î Ê ¢°» ± ù UI ü ¶&  ¶I¥ , AWSê· ê 6« ¤ ¥ , ϼÚL$Ѹ¿¹ À ¶Iº çèéWêE, ¼ . Øy ,Ø&UIÙ ASM ¿À ò ¥
(30) 4¦ ¶I¥ ³ «ºÆ+ !» ¶$º$¼ Ò . « °I± ù UI , 7 °± ò ù UI ASM ¿4À ÕÖ ¯ , ¼ ê ½¾ ª ð ¿ û I4« » , ¦L§¨\© ª>¦ Ç ¡ . 7 UI « Ù ¶I¥ , ¼ ASM ¿À À¥¦ *Áy ¢ ÂÁ¾ ð&ªBZ¬ ð ¯ ¥ ¿ û ¥ · . , ¼$g« ý Ûà (UI – UI g« ASM ¿À à (Ì °± ) ò p ª ©ÄgÅ ¯ ¥ ý ÛL¥ éWê , ½ , °± ù UI ASM ¿À %Æ1 , Ç Â ½ ASM ¿À Ó¡ . ¥4 ¦ , °± ò ù UI ASM ¿ – Ø
(31) y , UI '«I ÀL ½¾ ª î4È(EÀ é>êE . ¶¥ ¸¤ ¯ÿ ¦ ìÉ UIº«Ê &ASM ì(í\î ¿6*À Ë
(32) Ì ¥(º Õ, Ö éGê ¥¶ ¸¹ ¶ ¿À&Ê *â65
(33) 6 ¯ ¥ ¥ ,
(34)
(35) ¡
(36) ¦ ì\ ÉÚÍ \ Î {Ò . ASM " ì ß íWî ÕÖ . £Ä¤ !, Ï Ð 3 ¯ ¶Ñ Ê & ÿ ,Ê ¸¹ Ò¡ãLgä Ú ASM ¼ ¿ãÀ ä >ç4èL½ 4" ß% Ð 3 ~ l Ê « · , Ò ÕÖ ¯ ½! ik - ¸ ¹ Ò ¶ . é  , º« ðLªB¬ ð >$Ó ç ÿ Ê Ð 3 Gê o ¶ q Ò¹r · , ¸¹ I$òLó  ¥ÕÔ ÖÈE . ,q Õ × 1. .. . Ò. Ø. 1: SetValue. $Ð £ ¢. Ê qZ$yz Ià á6â , ASM ¿À Á Java ¦§(ï ð4ñp
(37) ½ ¾ ª(ð Ù ¶¥ Ö . £Ù ½
(38) ¾ ª î × ¼ Ò{» , Í ½$¾ ª î × Ê , & ASM Java $Ø [10] Ù ð Iòóº é à@1 áâ « â » , Ú4ÚL ASM ¥ÜÛº¶ Ý ¿Ñ ß À $ÿ Þ Ûº¢ ÝäASM å H Ƚ¾ ª ASM ît
(39)
(40) ¡
(41) ºfÈãÉ&ÒÊ ¤ ¢ . æ % ¯ ½ ½$¾ ª$ð åQÛ ¶¥ , 3 Ê £L¯ ½¿ÀÕ
(42) Ö ¢ å½ ¾ ª î ¯ ½!çèã6Ù ¶¥ *ÿ éêëì . íî Ì ï ¾ ïð î â!ñò å 5 Ê Ö ì . ã ,' ÏÚÑ¿ÀÕ4Ö× å>Û ó ½ UI ôõ ïö9÷4øÜù'úiöûÀü 4. ýþ â!ÿ ã ![3]#"% $'ì &). (
(43)
(44)
(45) , , *,+.-/0!12. ,,3/4!5768%1:9);
(46) < >=>?
(47) @ $,A 3 . BDCFEHGJILKLMNGPORQPSFT. 2. 71 U
(48) V%þe-XdgW
(49) f0#hiYdgj A ô
(50) kõZ &
(51) A>$/[%\n]!^%_a`,b
(52) c [ lmA Z \Y` 3
(53) opYZ q
(54) ,r 1/- s. t u%v/s wxy!z| AWS }%~ { p
(55) _a`%Y
(56) ø [
(57) X , ) ] ) ø % > 2 - ö_ f37þ AWS b <X@ 3 GUI\ ])^)_` w
(58) >u#¡_:]¢£
(59) ¤ " 1 ([ : $ ¥ ¦7§ ü 1 3>UIop :¨ö÷¡ .x \©,` ~ ."'$A Z3o AWS ª 1« UI \
(60) ]^_X` ']##º ø ®¯ [
(61) ° 1 1
(62) o!p 9 b UI \:]^~_Y` ¬X,{ SetValue[3] } a±'Z ²!;3/³ 1 UI , ®´ 1op µ¶ /· . ¸¹/º Z'»s>u ù 1 ·¼ , 4 ·1>½ ù u up, down, [
(63) Â>Ã 1» s:u ùÄ YÅ>Æ3 . reset, ok ~Y
(64) ¾
(65) ¿
(66) À>Á ¸ stu%v:s:Ç ü%È7[ »>su ù7Ä 1/É § Ä YÅÆ% [ ½ ù Ä ! 3%~ ù [ »s
(67) u ù:Ä %Z 1 Ê>Ë u {ÍupÌ Ë (down) u Ð reset 1 Z,o ( »
(68) } s u ù/Ä Î Å>É Æ'§
(69) Ä 3ÏZ >Ͻ ¡# <Ï@3/ ¸ ok ½ ù u1 ) Z,o ( , 1 UI ý
(70) þ >/Ñ ]#Ð 1Ò _X`,ÓÔ, :Õ v>¬/Ö.×
(71) ³ 1)~:Ø , 1,Ù7+³$~[ $ »
(72) s>u ù/Ä >Ñ ,']#.Ð Z>Ú!<@3 . , « UI º)Û ~~/
(73) Z,s³tu)vs
(74) ÜÝ!/Þß>à)á37 ']##Ð [ 2 1 Label '']##Ð SetValue þâã ~ $:ä'å A .Ð ~ 4 1 Button ,ª ]# þâã :èé)
(75) [ 3/æ. . X. @ : ç 1 AWS ]#..Ð ~: $:ê ?>@3/ ?#¼ [ « Label d Button X toolkit[5], Swing[8] ëìîí UI. 2. 2 −10−.
(76) ùîúüûòýþ. press. up. button. ïgðòñîó. NPO.QSRPT.U. setText ( "1" ). / ID. Example. / n_setv. òô õ÷öòø ° 2: ,']##.Ðÿ¤ SetValue. n_setv. label. n_reset. SetValue. n_tag. button. label. n_ok. n_val n_up. n_down. label. °. button. button. button. ,]!!!Ð AWS 1
(77) ß ´ Z (X[ SetValue ]%Ðû [ ùXÄ µ>¶ [,û â þ âã ,3 ,,]#»#s/.u Ð ~ ¤ >ß3 >µ3 ¶
(78) ~ !·:1 _ & o/Ö [']#.ÐXÿ 1 ¤ Å% ú ¡,u _ ]Ð[ ¢ µ¶ ! $ ?
(79) @³3:³ X@ [ 1 AWS ) 1 [ SetValue ª 1 ´ up ½ [ ù u !<@# ³,±'Z ]#²);
(80) ! )ç Button 3/Ð " up ½ u1 ¡_ ] AWS 1 press ])!!1 Ð ¢¤
(81) ~ ¢ $ Å!<a@3: AWS ] ¡ _ a@ Button ,']#Z Ð [$3# %press 6!<a @Ò _ `Ó£¤ >Button ]).)Ð Z ¢¤ 3 ¡_¡] _ ] SetValue a _ ` Ó
(82)
(83) £ ¤ ]) Ò.Ð 1 Zo (X[ (XSetValue up ½ >u )[ <Ï@ Ä ~ & [ $¹/A º »s>u Ä Ê '].<))(.Ð 3/Z [ *
(84) Å Æ ¹ »
(85) l's1 u +,. - Å/%Æ! 3 3 ¡_Label ] ¢ ¤ 3 { ° 2 } « ,]#.Ð 1/' [ ])!%Ð 0 £
(86) 10
(87) 3 ¡_:] { 7Õ v (1) 1 ~:¬X .¡}) 2 [ 1 _] 1 £
(88) ¤ {÷ Õ v¬×
(89) ~7¬!}1 3 (2) «#
(90) ¢ ¤ 3' ¡_] { Z4
(91) +%} [.& o7Ö [ Zû5,. Z 1 6 7 8 1 ¹ l %ç þ 3 (1) , >AÏ¡_] ])!ý%þ Ð {
(92) >¡1/_>]' 1 9Ïäux ý
(93) þ Z
(94) ux>} ' 3 { } A* ýþ ¡_>] ¢¤ [ @³ ý
(95) þ 3:]..) Ð ý
(96) þ 37 ý
(97) þ <a @>¡:_ ] 1 AWS £¤ ;{ ,) < ' ] # ) Ð $ $ [ = (2) @ý þ ¡_ ] ¢¤ pa}';Z <! 'Ø 1? ,]..%Ð ý
(98) þ 3o#pî!<a].@ )$!A Ð 'ý
(99) ;>þ -
(100) Z ¡_] ¢¤ $7<]@#.37. Ð ýþ o [ o@
(101) %~/Ø o o@÷
(102) 1¡Ñ _[ ] o@g ¢o¤ 1 ÿ>ã ~,¬X]. )Ð % Z [ Ñ 1 % 6 > 3
(103) ]%%Ð ã 1 ýþ È Z AB 6' [ ®¯ [ ã Z ¡_:] ¢>¤
(104) 3)3, >1AB ¢
(105) ¤ ÿ ~7 $7 6'
(106) 3X, ¦ E Ñ'Z <%3 ã } ÿ 4a A 1 AGB C D { [,].)Ð Ñ [ û â û5 Z)
(107) ¡_] @ F%¢
(108) o ¤ [ “self” ¢
(109) ¤ÿ ~ 3)3$ [ @IH7@K,JL ]##A.B ÐX“parent” ÿ ¤ 6!3/ 1 Ñ ã ÿ 1 M 'n. WPZP[S\. VPWSXPY. / n_setv / n_tag. 3:. (1). ,]#.ÐXÿ 1:Ñ ã$]^ ~ ']##.Ð. _`badcbefhgbidj. pdbbqb l. ID. k pdldqormon s j adt udvdsbwyxbz. (2). Message Queue. s abd{ t |bu }yvd~sbpdwyqoxbr z. (3)AWS. °. 4:. qr -
(110) s³tu)vs
(111) wxay#z. [,]..%ÐXÿ 17Ñ ã$])^ ~ [ Ñ0 ã Z 1 [ )Ð . ;K M£ > ?¤ ( A B ~ I ¡¢ ¬ ¢ 3 3
(112) 0. AWS . ¨:©Kª« ¬ ®¼)¯ ½ ¢ ¥. £¤ ¦Iº¨0§©K ª»« ¶ ID « I¬ÀÁÂIÃÄÅ ªÆÇÈ:É0Ê Å 4 µd¶ AWS ¾Ò Ó ¹Ô Õ¸Ö×$ض Å Â Ã;Ä Å ªÖºÛ¸ÜÝÞ¿:ßàÙ;¨ ©0ª« É$ ÙÚ Âãä Ê ¬;á ¹Þ ÃIå ¼ ÝÞIÖæèç¶ â Âã¸Ã:å ¼ ÝÞ;¹éêßà Ï.Ðë Â$ÃÄÅ ª$Ö)ÉIÊ Å î ¿ ßàÙ ï ð ÏÐë ñ Ö ¨ ;ìí ° ¶. · ¹ ò ó ° ¶ © ª« ˬ Ì ID »;à Ä:Å ªÖÉÊ Å;ì í ° ¶ AWS ô ¹. £° ²±´³ 3 µ¶¸· ¹ ¨© ËAWS ÌÍ Î ¾Ï¿Ð §Ñ ±´³ ª (1) (2). (3). 3 UI õ. öø÷úùüûøýøþøÿ.
(113) ¸ ¾ , 3 S F AX . ·:· , S ¾ ã:Ŭ ¹ . O!#PR"%QT$'S+&)U (+&W*-VF,/1FQD./M4ik0)$+jF1/,+l24X)m436YAn 58E=7:Z#94[]\_;=<?^%`F>Aa)@+b)B:1FCDcD5F26E=36G/5:H:7'"D9F(F;]IKJ/<?LA>6*@)MB'C N 54E4d]ef"hgf! ^]o 3.1. 3. 3 −11−.
(114) °¡yz , S {}| ° ã:Å»¬ ¹~ S- prqtsvuxw ,. ¹ ¹ ¹ . AX ¾:ǹR á . ·0·r 0Ç ¾ , ã Å»¬ s S ¹$ ¹v l r ¶ :À;Á Þ ë R ¹R:¾ , Ò0 $ Ó R ¹ LOTOS[12] r È Ì Ð â ¿ Åv ¤ ACT-ONE[4] ¹ Ír { ¡r
(115) 8¢ Þ â ° Ö } ˰ Ì_ ¥ ( ³Î Ï8 У Ö °8§ ë . F°v© ª ¹ ). ¹¦SPx~ S ¹ F AX. â ¹ : ¸ Ç ? Ö ¨ AX ¹ « Ö , SP ¹ ï ð ° « , ¬ R ° . 3.2 ®¯°±²³´
(116) v SP µ S F AX -¶$· ¹¦¸¹ Ö °§ âR¨ ë ° ¸¼)½ ¶ î ¿ SP Ö ASM
(117) ¼ ½ Ö_ ° ã:Ŭ state Ö_¾À¿ ¶ (1) S ¾¿ º ». ¾;¿ I· ¹ À ç?{RÁ  ÏÐ ¶ (2) F ¹ ¼}½rÃrÄ ÆÅ r;ÔrÇK¹ ¼R½ Ö ÃrÄ Ï'È ¶ (2.a) Ö?ÊµË 1 Ì × Ø¶Í Î ¹ ã:Ŭ state ¹É ¾ state ¶ ¼½ Î Á ÏÅ § ¼½ {ÑÐ}Ò ¼ ½ Î Á Ö' ° (2.b) ¹ É Ö zÔÓ çAÕ 1 Ì ×Iض . Î ¶ ã:state ¹ Ŭ ¾ state Ò:ôÑ ¶. ØÅ É ¹ ã0Å»¬ ¿x ¹ ã0Å»¬ ¹ Õ Ð (2.c) Ö× Ù state Ò:ô ¹ ¶ Ð Ç ¾¿ · ¹¸ ¸¹ Ö °8§ ⦨ ë ° ¶ (3) AX {rÚ ÇK¹Û}0Ü ¾Ý}Ð Þ ¿ Ë Øß ¡ Ü;Öº× ë Ù ¡ Ð [9]. (3.a) ò ¾¿}á;¹8ÛrÜ { Ú ¶ (3.b) Ç0¹8àRÜ{. ¹;¯ $â Ö ðã ° 0 ÇI¾Ò0Ó$¹RÞä (3.c) § ¶$··}¿ T T åoÖ ¼½}ÃÄ ¿ O Ö ¼½ Î Á ò ¿ A ÖAÖr× ° ¶ ÏKÌ { ¿ s Ö state ¹ Þ¿ ò x x ° çæè æçæç x ¿ u u çæçæèæç u Ö state Ò ô ¹ ¶ Þä 1 O é T é s ê u êìëíëîëîê u ï ê x ê x êîëîëîëíê x ïñðòîòîò Þä 2 T óôé s ê x ê x êíëîëîëîê x ïWðòíòîò Þä 3 A é x ê x êîëîëîëîê x ïñðòîòîò ¼ ½ ÃÄ. ÀÁ Þ ä 3 ¹à ÜÑ{ Ú¼ Ð Þ ä â¾ 1 ¡ Ð Ì ¡ ë ¶ ¦$â;¿ ¼ ½ ÃÄ õ ¶r ¶ Þ ¹ ½ Î Át ¹ Î ¾¿ Ã}Ä ñ ¹ ¼}½ {ÐÒ ¼r½ Î Á rö ã:Ö Å× ¬ . ¹ Î ¿ ¼ ½ ÃÄ ð ú ¹ state Ò ô$¹ ¹É ¹ ÷r{rø ù Þâ ¶ 3.3 ®¯ûýüþ ÿû º}»
(118)
(119) Ëå Ì Í pÎ$ÏÐ ± AWSµ¹ } t
(120) f ¾¿r· ¹ 4 Ø ¹ Á ¶. . F. < =?>@ 9;A: BC D6E)F6E G6HA)BC !"#%$&')(*,+. -0/1 2346567!8 I 5: AWS JKMLONQP JRTS. ¾. ASM. UI. UI Label, Button, etc. Basic System. ). (. Bool, Integer, Real, String, StringArray, etc.. SP. 1. m. 1. 1. 1. 2. 2. n. 2. n. n. 1. 2. 1. n. 2. m. UMk LWV IntegerXZY\[^]T_`V StringX\aTbTJdcTegfihTj JPMlMm (2) 2 noJ^prqsTtuwv AWS J^xryrz|{~}w V BasicSystem kj ^ wM\h QMMXgJ~ P olmrhTJPMglhQO{idfom h (3) Label, Button Mb\Jd UI O¡^J ASM P\lMm (4) ¢M£^¤^¥¦M§\ ¨O©ªJ ASM PTlTm«TJQ^ i{¬¢T£ ®^¯ t\dm 2 nrst uvd°WV SetValue ¦\§\ ¨O©ªX\J\± ²³rjQ´ {¾¬µ¿ ¶^~yz^b ·Y± ²³\j~´w{¸~¹^ºS »¼Lo{¸½ Y x¹º^ÀÁrJQÂrJÃ^JgS^ r® JgÄÅw{¸Æ^\sdÇÈM« sY ASM P^lsdÉÊËd « sMÌT~¯ m^Í\ËY ^h ÎMÏMÐË»T\dM i{ÒÑÈ¿ dmOeMPMl tMÓsM·Yi Mh ÏTÐÔVÕQÖר MÙ Xw{Y ÃTJg¦\§ ¨ ©OªJd¹ ºMÀMÁi ¿Ú TMdmiÃ^«Ms YiÛ\~¦\§rw¿ ¨o©Oª ® w hÏTÐJÂËÜv^ËOwT\ho{ÎTÐ ÚvMåÝd¿ ÞMßMYàà JQ¦M§r ¨O© ª¬·áJg¦M§r¿ Ú ¨ ©Oª® Ëâäã Ýd¹Tº^À Áæ{çTèMQmwà ˤ AWS YéVÕo^Mh TM ë\ì ¦hT§êwJ¨w© TªÒhJM¹MJQºi^{oÀM{¬Áíg~îo¹^dºm À^Áo{¬âiãvgÌ^X ïð ñ\òóôõö\÷ øoù YOáOúd¦r§w¨i©oªÒË^â×ã Ú åO¿ ݹMºMÀTÁæ{çMè ¿ vMMú{TiT\h ~m w Tÿhd^·Y ÎÐû¦T§M¨©ª¬úgüý^Y¹º^ÀÁ»¼Lü^Yþ ú Q L
(121) RMSíidm°È MY ^¦\§ro¨o© ª n val Ý üMýú Label ¦r§i¨w© ªÒË setText Ý ¹TºMÀMÁæ{ MQÞMß\Yæ«\úiM\h M· (1). msg(n val, Label setText, ”hello”). Ýs^ íQä mà«rú iMhTr·MY¦§i¨w©wª úM¥NQÿ ¹^ºæ{Y¿M¹^Ú º s
(122) ¹Tº setText(s, ”hello”) ÁOíQîw Ýrmæ««\sY n ®val ·rÖrhiª ®Ë^Àname sMÛTgè^LTY Label setText ·\ ÖThOª meth sMÛ èLsrÛr m¦r§i¨w©oª~ú ü\ý »dLüà{Ò èL ·Y ÆMs ÝTv !"$#NË ½ ¾ íÒæÑÈrdm×. n val. 4. %'&(*)+$,.-/103254687'&'9':5;<(>='?5@A2CB5DECF10HGJI2LK<MON QN PRS4TVU5W$X>M<%Y&'Z(C[Y@'\5&(C]5^5_5`5a5%Y&'b$+5X*cYdY@A21NY+ X*@e2Cfhg 3.3.2 i'jSkl. 4. 4 −12−.
(123) v Yä»m msg ú mú® m n 3 Om ø ù ú\ÖhwªÒ· i v h oà® gËqpr\ ¾ YૼwY
(124) st umÖ\hwª{¶ íÒæÑÈrdm msg "$#
(125) w Ë ½ ® AWS «MúwT\h {TM V%ÎMÐMû¦§rw¨o© y ªÒú¹Tºi{ÀTÁígî ^X\ÂrËM· YÎMÐTû¦§o¨w© ª<{ x M^v zYOÎMÐMûæ{üMýsM·\| {¦§ri¨w© ª ID s } ® Ûdm~ ¯¿ wM\hrúÎTÐ s\Ûu^¦\§w¨ © ªÒú ID { j vOdÌYÎMÐMû^¦§ri¨w©Oª¼ú ID · child( j, n val). dÝ 'rsíiQm BasicSystem · YäoMh ^T Oh Ë M¿ThÚ {TQÿ ÌdY n 1 umwÚ {¸¦M§rOn ¨ © ª ID® HË p O\ ¢\£í¼ Ým ¦\§w¨w© ª ID sÛiM\h\·Y 1 um xmsg(child( j, n val), Label setText, ”hello”) ÿú ¬Ë»um xmsg {|ã Ú m Y o» m apply A{ |ã Ú Yæ«úOi BasicSystem ·T
(126) h o{¹MºMÀ\Áu» mË ¤ !rd
(127) m ~ú°úÞMß\Yà«Mú ¤ !M· ø ú ÿ ÆMË ÿ ã Ú qâ ^æ m. type basicsystem is messagequeue sorts state opns next : state state call : state, message state state enq : state, message shift : state state init state : state comp : state, oid obj mq : state mqueue eqns forall s:state, m:message, j:oid ofsort state next(s) = if isempty(mq(s)) then s else next(call(shift(s),head(mq(s)))); ofsort obj comp(call(s, m), j) = if receiver(m) eq j then apply(m, comp(s, j)) else comp(s, j); comp(enq(s, m), j) = comp(s, j); comp(shift(s), j) = comp(s, j); ofsort mqueue mq(call(s, m)) = enqueue(mq(s), out(apply(m, comp(s,receiver(m))), receiver(m)); mq(enq(s, m)) = enqueue(mq(s), m); mq(shift(s)) = dequeue(mq(s)); mq(init state) = empty queue; endtype.    Â. Â. . 5. forall o: oid, s: str, lbl: Label ofsort Label apply xmsg o Label setText s lbl setText lbl s ;. . . ¤. C.  Â. 6: Basicsystem. (*B1). (*B2) (*B3) (*B4). (*B5) (*B6) (*B7) (*B8). úm
(128) wuÃ. Ä êúÓ ^Ä
(129) ÅÆÇÈ
(130) ÄOÉqÊrËËÌÍ Î ÏÐOÑ
(131) ÌT q Æ×Ø 2 ÙÚ ÐÜÛ 3.2 ÝÞÒ Îß
(132) àuú ácall âãËä Ô
(133) Ì Å Û Ú ÕÐ Öq(*B1) Ò ÏÐ
(134) Ñ ÌÒ Ñ ËëìOÞ'Æí call: 1 æÙçèé Äê|Å áã<äïðñòóôeõ Å mÆ|ö õ|÷Oø ÖOçù è éú Äû ä ê ÎOïeî üýþ
(135) ÿ a ÷HÑ Ì ÷ Æ ê
(136) ð ñ ÿ òóã Û Ð oÙ Ò qÆ out mm oo aa ÿ çèqé ý Ì ê ÏÐÚ Ç(*B2) ý Þ' È Ñ Ì Û Ú Ð (*B5) Þ*Ò out qÆ! ê"
(137) $É$# æ Æ ðñòó % Ñ Ì çèé ý % (ÿ 'Ñuðñ )*ô ê & õ Î+ ÌÒ ô3õ enqueue õ õ Î 3ö + Ìç|èé ý ê&Ù$.
(138) Ù Ù, ID /ÿ 'qÑ -Æ Ò1, 020 ö Î Æ ø 4 çèé ý ! çÎè+ é ý ê m % Ù 2. É 3 ê & % Ù ÿ ý . Ìu5Ò . Ù ID HÆ çèHé ê 6Ù ê7
(139) ID û$89 Ñ Ì ýï : ?ÿ >-;@4 ý û ä ÌÒ enq: AWS < = BÙ AC% DE Û Ú F (*B6)Ù HÞ Gç
(140) èé ê >"@|ý ÙIJK Mÿ L"N DE Û ÚF (*B7) ÞHG shift: ðñQÿ ' D áõ Û Ú F (*B8) RÞ G init state: OP next:. M« údÆMr· Y¹Tº lbl s\Û\ Label ¦§o¨ ©OªËo å hg xmsg o Label setText s;{s \YQ« ú Label ¦\§w¿^¨wÚ © ª~ú¹Mº ® setText lbl s ËÀMÁ\ݾ« \{Ò Ýdmà«\úÆ\·¹Mº\À\ÁO» m setText ú ½ V v 3emwde» m^¾ ´úÖTh ªXMú^q <« ® sMÌM~m «~ úÆMúd½ "#
(141) w Ë âHæÑÈrdm ôO 3.3.1 BasicSystem AWS ·MY x¦§i¨w©æªTriMhMMO wh V0h ¯ X{¬¹^º^ o ¿ Ú ¶ v ASM sMÛMgmÿ | AWS O ú M¥ wQ¹Tº· Y ¦\§ro¨o© ªÒú¹Tºþ T\hdú¼¹ºúÒMsÛm AWS Aú l ¼Y^M~ hQgy zTbMúd^ i{ BasicSystem O M¿ sMÝ\Qm BasicSystem å úqm|wO\l×{H 6 Ë ^màv Y iMrh^i{¼o f×h¿j k\ ohHú ¾ l· ¿MÚ Ýr mä\v\«ú áËTY åå ýMt v Y¡"$#
(142) w Ë ½ íÒæ® ÑÈrM»um V»umMüæ{ è m msg bX Æ\ idm BasicSystem ú ¹ ºM O»umþ Oÿ ¹\ºMÀTÁO»umæ{ ø Ëq¢
(143) £MMdm 3.3.2 SUT%V5T UI W"XYZ[ U\ ]^U] UI _"`HÙ%abc ÷ø Ö , Button ê7
(144) " ¤ comp: ¦§w¨w©oª ID ® j srÛQ¦§w¨i©oª¼ú \]%^] ¤ ¥úd¹Mºæ{d¹Mº M O3» m\m Ù ASM ab ÿ$d 7 e D . ASM abfUg ,4 d mq: whTú ¥ú¹Mºæ{d¹Mº M O3» m\m UI ÿ _ `?hijkl! ê m
(145) " QnÔÙoB÷Qp s ú n Ùg 4 ,. ijkl ê 7
(146) " ÙaõUbw qrc Ötu ÿM.| X<«Q-eR$¬G®3¯QKM xmsg ¦$° 2Me° 3 7 AWS ± N*&<¦(*§S²¨TCR1³QM @3.246Li ¦$%5©S&<ª + 3if-then f ? Ù " ê ;. ;
(147) . B Ù v a. b x y Ù6z{ EU , %'&<(C´10µ5M©'ª 3 ¦©X¶Pe·'2¶f ï D E û + ä N'N8PR>¸5¹5ºS@»8¦¼¶½¾'¿AÀQ¦A46>X>Á¯5¼*f ASM ab5g .0 Ù}~ , 4 Ý-gr. 5. 5 −13−.
(148) D "ç|èé ý ê!& ÿQ' D out £§©ã ð ñ) * ôOõ out ô D E · FUg + E G (*S1)–(*S4) ·4F (*S1) !Õ7¥ 0 ¥ UI¥ $OP ðñ SetValue(s, g,Ã v)þ6Ñ| 5 ÿ ê" "
(149) ? u6ÅUÏ¥%Ð « E ï:Ö ¥ 2 4æ æ ¥ Label ' e ,DButton ¥ _;` ÿ ) DE ï:¥ çèé Öý ê ÿ ê
(150) mDE 0 ÷j ÿQ' 6 D æ . ó up £$× 0 E ÷ , òó ¥ Ï$Ð Ã ·þFÑ (*S2) g%Õ ðú ñï%ò Ñ ÿ ö õ ÷Oø , Label Ö ê. get(s) 1 ¬ ø ÿ DE 0 ÷ Õ;·
(151) " n val $k ðñòç ó è £!setText E × 0 ÷ , òó ¥6Ñ get(s) F ÿ (*S3) g $Õ ok õ O ÷ ! ø d 7: Button ê 7
(152) eÙ ASM ab ö ÕU¥ Ø! êmý m
(153) ÿ parent $k ÷ ø! ç ¬ è D E callback(s) çèé £%× ê E ÷ 0 Õ"·¥ F (*S4) H ð H ñ ò ó g%Õ øµ ä destroy û ÿQ¢ Ç ãB0 E ïÕ!:¥ UIçè_Ué ` ý ê ÿ ê;. "
(154) Q. $ k $Õ ð ñ)*¥ a: b ÷ U +"þ5 g% Dôõ E 0 ÷ÿ qô r Dø$E 4 E G-+ ·E F (*S5)–(*S8) þ- ô ) ÿM4 , ASM û D E ä ¥ ï ·F5g G0 4· F5 µu¥ÙÚgetÛ get Ù6k wuß
(155) nà ÿ E Ùt4 Ùg , ASM ab D Ñ ð ñ SetValue(s, g, v) 5 $ ; Õ O P ÷ òó ¥É Ùר 8 tÙgn . E ã ä ð ñ ò ó £ × þ up å ASM a bÙ$ ( > ý ýU type Ù!;U= ä ï Ñ ç v $ÿ OPú Ü ïÑ Õ ðñò0 ó resetÕ £× 0 E 1 ( (*S6)) · F Õ ÷ ðñòóôõ , Button) 6Ù ê7 m
(156) ÷ ÕOP Ñ getinit(s)(·F (*S7)) %8 ã<ä ÕÝÞÕ ðñ D ð ñ Q ÿ ' û n 4 0 ÷ (· òó ok £$× 0ß t ðñòó ÷(Ñ£ ÙOP . 8 ë D ð ñ ò ó å Ur|ÙUu , out - ý|çè F (*S8)) £ qr ãä 4 E G D E ý ÿ '. ð. ñ. ) * ô õ + é ÿ ê& g Gíçèé ê& ÷ . m m n å destroy 5¡ f|Ù ' e ÿ¢ D ð ñ ò óôõ g + E . 4 àâáäãæåèçêéìëîíðïòñôóîõ ðñ) *|ôOõ-£ D !¤ ASM a bUg , out x áâ;¥ðñ òó DE u < MÙ áâ DE . 4.1 öø÷úù ûýüUöÿ þ ¹ ð ñ ò
(157) ó u ô õ ¨ ÿ § © ø ï ª « Ù øï AWS ü Ì$Õ;Ý
(158) w n6 å ASM ab A ¦$g ¥ ôõ ÿ¨' D¬ ý meth q¥ ámõ A m t §
(159) © ãA,ä m "a
(160) ;b qîr 5 gý Ì > ( ¨t ¥ nß ÕÓ D E 4 E ÷ ] n D . (áõ A m ý Q ÿ ) Ì > /"¥ ! $ #$Õ U &%5 ')(* | ç è é ê Ô n û E ôuõ msg h xmsg ¥ , 2 ö õ U4 ä . ) D,E +- ¥ ./!1> 032$465798!" : <;/=> @?BACED >1F I G H #JKLM9NOPQR CTS Java[2] UV"W Swing / û û 6 ý ¯ % ¥ ° ± ² ³ ¨ ÷ ´ ¥ abUg ý , ® = ø$µ<ä5¶uä ðñòH ó ôAê õ| ÿ(
(161) m ¨ß = ø XZY Z [8] '@(* . Y 0[2)4\5\"8J]"^/_` FIa 9 # S + f/g[h"i/j &SZk/l O D >"mIn o%p m M çÿ èé Dê%E26k ,· ¥ 3 ô õ 3 bc;,de / q I r 1 s t ')u 8,]/v F£ qr . Button ôê". ;
(162) ab g , press . , Button, destroy õ£¸ .5 +ï E . G[H1w lZx >1mZn >1&F %Bp m kl cy,zJ{ p | # SZ}/~ type Button is Widget sorts button opns Button : str, meth button press : button button button destroy : button out : button mlist (* output message *) callback : button meth eqns forall b:button, g:meth, x:str ofsort mlist out(Button(x, g)) = [ ]; out(press(b)) = [msg(parent, callback(b))]; out(destroy(b)) = [ ]; ofsort meth callback(Button(x, g)) = g callback(press(b)) = callback(b) endtype. 1. ' D. E . ä 4 getinit,. 2. d 8 + }~ q/ UI M i/j7'$ 89S6 TD M (/* ]/v >V $P Java mIn | 'J1 x >M;>"F 3.4 UI ¹1º¼»¼½¼¾¼¿ \ P [ , h # SII M ASM i/j Java U,c> I M 2 ï SetValue ¥ ASM ab ÿ%d 8 $e D G10 2 Ý5g!r! ¥ UI ¥%À l wuðñÿM' D¬ ý Á5 setvalue g + E . | S s g M 2,|< M1B S ðñòóôeõ|÷Oø% , OP ðñ|ÿ(' D SetValue, 4 æ ¥Â /l s g M 2|B M$7 ¡&z ¢ S7 TDZ£"D¤¥ þ6Ã¥
(163) -Ä è!
(164) ÿ?µä5¶3ä ' D up, down, reset, ok, !uÅ O D >1F s g§¦ l s g M ¤¥¨©<ª [10] « Æ * ÿQ¢Ç
(165) ãB E destroy £§©ãAä 4 E . SetValue(x, ¬ j ;//>1F `<8"SI® J¯° x >B3±/ ²J³ ÷ø% x £ ¡f ' e ã<ä , Í ý ÌÎ¡è ´)µ x1l s g out ª,S ¡c&z9¢ ¤¥¶·S¸ g, v) , ÈÊÉ!Ë/Ì ¬
(166) + ç E!Ò è ÷øð ñç ÿ¨¬ ' è D g £îáãä , ÏÐ Ã þ6Ñ£ v dM/}V~ q)P ¹ºcP » v ´ Bx ª >"F »@F ¼ c ¿ M \ V UI ¼/½M9¾ g ðñ)*u ô3Qõn ÷ø! ý . À Á ¬ D 2|B P/QM Ì' Î D è
(167) ç è Ã þÿM¥ ' Ñcall-ÿ 6 /¦ ¡92Â|<ª S qJavar<Ä M int Â/Ã ÅZString ,Í ¥ Ã þ % ¥ Ñ ¨ ÿ & Æ I S } ~ q UI M back, ÓÔ get, ÏÐ ÏÐ OP 7 ¡"Â B>1F 6 −14−.
(168) type SetValue is frame sorts setvalue setvalue opns SetValue : str, meth, int up, down, reset, ok : setvalue setvalue setvalue destroy : setvalue meth callback : setvalue int get : setvalue int getinit : setvalue out : setvalue mlist eqns forall s: setvalue, x: str, g: meth, v: int ofsort mlist out(SetValue(x, g, v)) = msg(n val, Label Label, String(v)), msg(n up, Button Button, ”up”, SetValue up), msg(n ok, Button Button, ”ok”, SetValue ok), ; out(up(s)) = [msg(n val,Label setText, String(get(s)+1))]; out(ok(s)) = [msg(parent,callback(s),get(s))]; out(destroy(s)) = msg(n up, Button destroy), msg(n ok, Button destroy), ; ofsort int get(SetValue(x, g, v)) = v ; get(up(s)) = get(s) + 1 ; get(down(s)) = get(s) - 1 ; get(reset(s)) = getinit(s) ; get(ok(s)) = get(s) ; getinit(SetValue(x, g, v)) = v ; getinit(up(s)) = getinit(s) ; ; ofsort meth callback(SetValue(x, g, v)) = g ; callback(up(s)) = callback(s) ; ; endtype. ÇÇ ÇÇ ÇÇ Ç. È ÊÉ ÉÊÉÌË È ÊÉ ÉÊÉÌË. (*S1) (*S2) (*S3). (*S4) (*S5) (*S6) (*S7) (*S8). ÉÊÉÊÉ ÉÊÉÊÉ. a. 8: ASM. 6. i/j dÍ. : SetValue. ýáþÔÿ úüûÖò×ÒÙ B CDFEG ÎÐÏÒÑÔÓÔÕ ÐÖò×èÙ ýáéÒëÞþÔÿìÒíÞÖ îðØï Ö "#
(169) $% Ö
(170) ÐÝ Û Ø Ö Ò × Ù ÚÜÚêéÒÛÞëÞÝØßáìÒíÞàÐâäîðãÒï åÖòñèæèçó Ö éÒëáìÒí îðï &'( æÒç ! æÒç ôèõáö àá÷ùø ö àÐ÷äø Ó
(171) )+*$ ÚÚÚ ÎáÏ ï 9 ÷ò,ì - ÎÒ&ÎÐ. ÏÒ- Ö ÑÔÖæÒÓÔ/ç Õ0)+9 1* 2$3: 3;4<>5=ÿÎá?6ÏÒ@7Ñ A8ÓÔ3 Õ123 a 9: fgIh"ij « kl O D >1mIn HT¡ p m7«"M qr[sot. ASM. UI. (a) Java. UI Label, Button, etc. ijKJ ML DIN ÀÁ ¡"ÂcMPORQ qTS ] S Java M)7 ¡bd"Âc fS V¦ eRU g |aXhWXYRZ O\[ ]O^Q ¤ ¥ MP´\_Rm ` P3 ]/vaN « [ji9MPORQlkIM S s^t ²fu \U n HwvJMcZJ± l BasicSystem ] M olpBM3r q ² R¯L xRx ° N oRp ª cXS } Java~ W Mzyl{csMct 16/U X| S VZ ] _ ² u H U up ´ m znI SÍ l nSetValue V W N Ms^t val ²Tu H setText [v,]±ª S ² ~ ´@¯° ^x NMU |/« v ij ªJS Java J WJV S N _R` U Mc1/ up M \ ´ ¡ SetValue &z9 ¢ x n valv l xW sat L ² u N U H$MZZ"hJ Bª, SZsetText s| Wg « W N _ Ow[ W n S l q x Nzup^]M _l\´ ` m ¸/oS 6out/X W Y Orout[ ¼\½BM ±/ ,²J³M ¯ a °´@µ x 1<X | S ³ ´ _ m Rx N n ls^t ² u U H$M kl ^S s^t ²fu U H$Mco6/M W9S Java W Mzyl{BM st ² u U U H kl \´ m ´ S h sa« t W _ L ^x U N n w l rO [ ls t ²] Ru c^x HN kIM]R¨ S ²fu H ¯°\´ m ¡cTz"¢6 « S S ] n kZMc[,± ² s^t ²fu U H ª M s^t ²fu U H ´ ] )UKl l l N n h W _^`R WªJSkl 1< ª,S ij WP ¡ Or[ a¢ gBN Mh £ c ] S TSTS R sa t ²ku l U H¤kIMP^ ´ ´ ¢ g x« S ] x üX kI¥ MP^ « \´ ¦ x V\ axM N n "c |1W w Pp © z x/° S6x R i9MZ ± J²<M P z §Iqz¨ AWS ½cf x° ªSZa vX] ¯ ªT«X¬T« HoM L ^ x N n x ° §q S SwingUIl ¾f±RR² ®XRx _^N ` ¨ w U ]p © ³z Hºy _o w ´ m ^x N ´ ´ P] µ ij<M ¶¸· p w Pp © ³z Hº kI® |z» R[ ¼ ][ ¹ NR½ _ S ] ¾ 1 <n ¨ vM] µ ¾ N1Z ® U | ª¿«]¬¿« ^ S R ® W y z"{ UIp1| ¾K± ² X À _Java ] ¾ rn },~ qJ s ` t ²fu U U H «z®c¬ [j< ±/µ/ ² R¯ x° \´ s m g c ´ Nl½ µ<}~ S qP] µ sat ² u H « f 16//« [ S ± S ²X] ® µ ¯°\ ´@£¯R° Á s^tRx ²fN u U H ª µ q Rx N 1W ±^² | ¼ g ®9 ]/v« N UI ¾K[ U [|<_^ `\´ Â^à ndS µ yR{ 9cSwing [ P®¸¢ ´$i/j T® // s g ®¸¢ g ® H l Ä § ¶ N a a® y< <)à ´ µ d¿ ® x µ ¨ w Pp © zŰaHyÆ <´ £ Kqc SN ]h qrW ^x N c N |z» ^ ^®y/ B « _^` m. (b) Swing UI + UI +. §l[. (c). Basic System. (d) Swing. Bool, Integer, Real, String, StringArray, etc.. Java, Swing. (e) Java , boolean, int, double, String, String[], etc.. (a),(b) (c),(d),(e). Java. (a),(b). .. .. n. ÇÉÈdÊÌËÎÍÐÏÐÑÓÒ ¸Õ¿Ö z×RØRÙÉÚÛ 4.1 Ôf® Java ÜfÝlÞKÛß Saà S ¾½ ÖêRµ _¸` lnKá¸â¸ã¸äå »æ¸ç¸ã¸ä¸åK®lè¸é ¾a½ áâaãaäaëaìaéKíîï JLex »aæaçaãaäaëaìaéKíîï ÃdôlõPö ×MØPÙÐÚ]ÛzÜdÝPÞ¸Ûaß÷øIÚ]ù Cup[1] ðzñ\ò¿óò. 4.2. ¨. . ÀÄ. ´. Z«. Swing ! " úü#&û¤% ý¤ýþ ÿ')(+*+, -
(172) . ¤þASM $ 324+5+67+89.&3:+;9<=+> % @ )D#& [ ý &'&<&E
(173) F
(174) G
(175) /H 0+"1 #BIJK@LNM &&O P+QP UI R ST?BA UWC
(176) VYXZ 6. −15− 7.
(177) Object[] args = { new Integer(prev_get)}; prev_callback.invoke(parent,args);. public void ok() { int prev_get = this.get; int prev_getinit = this.getinit; Method prev_callback = this.callback;. ö³õõ ß t ÚNÞ ¬ ò } µ ÍlÎdÏ Ðö. this.get = prev_get; this.getinit = prev_getinit; this.callback = prev_callback; try { Object[] args = { new Integer(prev_get) }; prev_callback.invoke(parent,args); } catch (InvocationTargetException e) { throw new RuntimeException(e.getMessage());} catch (IllegalAccessException e) { throw new RuntimeException(e.getMessage());} } (a). \]@^N_. ok. public SetValue(Object parent, String arg0,Method arg1,int arg2) { this.parent = parent; this.get = arg2; this.getinit = arg2; this.callback = arg1; Container cp = this.getContentPane(); cp.setLayout(new FlowLayout()); n_tag = new Label(this,arg0 + ":"); cp.add(n_tag); n_val = new Label(this,String.valueOf(arg2)); cp.add(n_val); n_up = new Button(this,"up",up); cp.add(n_up); n_down = new Button(this,"down",down); cp.add(n_down); n_reset = new Button(this,"reset",reset); cp.add(n_reset); n_ok = new Button(this,"ok",ok); cp.add(n_ok); ... (b). a. 10:. üþ \]$^_. SetValue `. bdcfehgVïjilknm. R. SetValue.java oqpaåsr. êdt. JLex, Cup uf÷wvyx{zy|j}]æ^çy~lll Zaè¿÷ ly t 700 bfcegwyåz&Ðî ælof f t r ö ÷Wd ^ 1,400 b îyr a ìRélå¡d¢ 650 z |£}. 4.3 ¤¦¥¦§©¨©ª¬«{¯®h°¬±¦² õZ¶d· dd¸. a. 3.4 ³jzw´{µ o 8 rTð@bcwegï¹µ$º¹ö »üò Java ¼{½w¾jl¿Às»ÁÂáWÄdÅIðÆÇsµ$ÈdÉsÊd} b a öÌa êdtÍlÎlÏ cfeh 10 Ë´Ê 10(a) Ð ÑZÒ gVïilkT÷wplÄÐð ö ok ËfÓlÔÊl}ÕWÖØ×j X÷w¼s½¾y¿bîj Wz£|y} Z Ñ Ò ¶l·Ù ô ÍlÎ êftsÛlÜ Ù ASM za÷ callback Ú éÅ ê 7 z ÷NÅîlÕ$cfÝ callback zÞ Method l. õ. ß. ö òh à¬} áØâäãæå. ã èçËhÓéÊt}äàd Õhá£×âjêØãë å msg(parent, lï çMð ¹ µdð callback(s), get(s)) ÷ìlí î õò ÷ Object ÷æëdÕcWÝ parent ðó ôñ t ð M ô . 7 java.lang.reflect.Method. prev get, prev callback î Ò tû get, callback ÷W÷IðødùsÊl}$ú þ z ß ÷{Õ t ÖØ ×{öÿ Xa ÷£üWýzñròTó]ò get callback ÷wÐ ÷ v òæð ô t dÍÎ ÍdÎÏ Ñ@Ò ðÞ{Ê } 10(b) î SetValue. ÷. . ö. ËfÓlÔÊl}{ÕWÖÌ ò ×{ X÷w¼s½t ¾y¿dbyëj X÷wplÄzy|y} Õ SetValue ð{ ÖØ×{ da ÷ ÷ 4 sî Ë
(178) 1 ô tÍl Î ÷ (3.2 ³ ) Ë ð Å I ð9Þ
(179) Ê W ¶d ë· {Õ ô ö þ t cWÝsË ÷ ál wî ô outö$ ÷ #% Ë Ë t t I ð â£vãµfå ð ç } ÷
(180) 5 ôß'&. ð ( á£âjãÿå \ j" ¡ Ù !jð } *),+ c ) ÷*- Å Úwµð .0/ ç Êl
(181) } 1243w5 !0 ð 6y* } 7. 8 9<;>= : ?0@A zlî t AWS BDC¹ËDD6 ( UI E ASM ¶£· dF HG I µ t UI ÄJKE ÑMLON0PQ Ï Ð t ëE E t R E*Ss T¶y·VU *WVX Ë d zlY } û Ú ´sµ ( 7 Z 6( ¡dt¢ [ E UIASM acb \d'ec_` acb CDf 'gJava "h ¼( 7 ½f¾4\j¿Ëú0]Ê^_` ij E
(182) kl d h ðe UI E ASM mnDE
(183) op4qVrs0tOuv wx ^
(184) 7 Zy e i"zM{| h}~ y UI "J\O DR `h e _[ x `0 }a,4b y mn r e ^ _` \ 0^M ¡D¢£^
(185) ¤ ¥§¦©¨:ª 5. [1] Appel, A. W.: Modern Compiler Implementation in Java, Cambridge University Press, 1998. [2] Arnold, K. and Gosling, J.: The Java Programming Language, Addison-Wesley, second edition, 1998. [3] Cabrera, M., Torres, J. C. and Gea, M.: Towards user interfaces prototyping from algebraic specification, in Design, Specification and Verification of Interactive Systems’99, pp.67–83, Springer-Verlag, 1999. [4] Ehrig, H. and Mahr, B.: Fundamentals of algebraic specification 1, Springer Verlag, 1985. [5] Flanagan, D. ed.: X toolkit intrinsics reference manual, O’Reilly, third edition, 1992. [6] Gognen, J. A. and Malcolm, G. eds.: Software Engineering with OBJ, Kluwer Academic Press, 2000. [7] Newman, W. M. and Lamming, M. G.: Interactive System Design, Addison-Wesley, 1995. [8] Walrath, K. and Campione, M.: The JFC Swing tutorial, Addison-Wesley, 1999. [9] , : , , Vol.24, No.2, pp.133–146, 1983. [10] , , , , :. V«Ç ¬ÈMVÉ ® ¯°²±³ ´VµO¶·¸º¹»V¼'½¾
(186) ¿RÀÂÁÃÄVÅ Æ ¿ÊMË Ì
(187) ÍMÎVÏ ÐMÑMÒ Ó
(188) ÔMÕ «MÖM× ØMÙ
(189) ÚMÛVÜMÝMÞ ä0æHçèMÚéVê'ë4ìåíOîïðºñóòúôV·õHö÷ ø ÃHß', ùMà*úMáVû âãå(D-I), J73-D-I, No.2, pp.201–213, 1990. [11] ü°þý« , ÿVÊ , : çè
(190) À²çèVÚé ê , ùMúMû (D), J69-D, No.4, pp.324–331, 1986. [12] , Mý : éMêMáMâ LOTOS, !#"%$'&*ñ. −16− 8-E. 1995.. ,.
(191)
関連したドキュメント
警告 当リレーは高電圧大電流仕様のため、記載の接点電
Inspiron 15 5515 のセット アップ3. メモ: 本書の画像は、ご注文の構成によってお使いの
※ 1
図 3.1 に RX63N に搭載されている RSPI と簡易 SPI の仕様差から、推奨する SPI
TC10NM仕様書 NS-9582 Rev.5 Page
題が検出されると、トラブルシューティングを開始するために必要なシステム状態の情報が Dell に送 信されます。SupportAssist は、 Windows
の商標です。Intel は、米国、およびその他の国々における Intel Corporation の登録商標であり、Core は、Intel Corporation の商標です。Blu-ray Disc
エコグリーン 高難燃ノンハロゲン 単心より合わせ形 耐火ケーブル NH-FPD 記号:NH-FPT NH-FPQ... 構造試験