• 検索結果がありません。

ユーザインタフェースの代数的仕様記述と仕様からのプログラム生成

N/A
N/A
Protected

Academic year: 2021

シェア "ユーザインタフェースの代数的仕様記述と仕様からのプログラム生成"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)ソ フ ト ウ ェ ア 工 学 135−2 (2001. 11. 21).       

(2)         

(3)      !#"%$ &('%)%* +!(,%- .0/%1 2%3%4%576%8%9%:%;%8%<%;%8=7>%678%?%@%6 DC§FC¨kAC©GEBEICDCJEFHy{GCIEz}|YJL~KN€ƒMCOQ‚N“fKNPS„f¯CRU°TW ‡VQ† oˆXZ„LlY\„E[E ‰C]ETŠEDEy^C_EcU‹C`EVŒEaCXZbEFEY\YN[HGސ]C’DL‘Q³‡“Q´ ”–FC•LG K ³HcW¶WdfTˆ—feH·Zg\˜s¸¹hQ™šiktijm›HlEœƒnppoHžEqQŸšrsiˆi ˜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® Î FCcUGEFC‹EICG ŒE®UJ c ±Õ IHY\J Ž{Ó  Ÿ ~CYkKNÀH—WÍEy ²ZÎ £N› £WË Áfσe’¥H¦ ¦ JˆÂQYkއFC Gg JHnQ“c Âsµ YNŽ cU„fÃH UÄmÐmÅERNiS¸ Æ £W·QÑEvCPÈÒHÇʗW ²ZÉÊYS›QzNÓ 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  bcd6ú e‡ôpè‡å#>ä f ge hQömëõòj é iö rteks l !3‡" ú ,'-)

(6) uç9$ý vW=m&w$=34@5‡xð s nyÊoíI ú _2{4Ií pLqe klz g{e hQömëõòj é iZö eIs k l?(|{í }~ $!"E9G') z4šð <LEý €ƒÿ  Ž?‘“6’z”E(•G6–d— ‚˜(ƒ™„‡šL퇛î œILž Ÿ&† ‡¡ ˆz‰&¢ Šœ ‹£?Œ\ ¤ 1. , (UI). , UI. [7].. ,. ,. , UI. ,. ,. .. (1). , UI. ,. (. ). ,. .. ,. ,. .. (2) UI. ,. ¥(¦L§t¨©&ªW¦ ˜6«6œ¬­u•>®¯ , ° ± •>²³´4. µ¯. ¥¶·‘¸¹º ¢» , ¼Š½¾ ˜Ÿ , ¿À4ÁZŠ ¦&§{¨>© ªW¦ÄÃÆÅÇ ‡ ºIÈÉ Ê ¢ œILž º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À • ÕÖ ¯ , ¼ ê •½¾ ª 𠘿 û œIž˜4« » , ¦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 Z3œo „ 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Ïäuƒx ý

(93) þ Z

(94)  uƒx>}   ‚ ' 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‡,JˆL ]#‰#AŠ.B ÐX“parent” ÿ ¤  6!‚3/„ 1  Ñ ã ÿ 1 M 'n. WPZP[S\. VPWSXPY. / n_setv / n_tag. 3:. (1). ‡,ˆ]#‰Š.ÐXÿ 1:Ñ ã$]^ ~ ‡ˆ']#‰#Š.Ð. _`badcbefhgbidj. pdbb‚qƒb€ 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) wƒxay#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 ¾„:NJ¹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© ª ¹ Ÿ  ™  ). ¹¦SPŠx†~ 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 ^’ Šw‹MŒ\h †Q‡‰“Mˆ€”MXg•—J~– P ˜olmrhTŠ€JPM‹gŒlŽhQ™ŽšO{›€œi‘‚dfom h (3) Label, Button Mb\JžŽŸd Ÿ UI ƒO¡^J ASM P\lMm (4) ¢M£^¤^¥¦M§\ ¨O©ªJ ASM PTlTm«TJQƒ^ i{¬¢T£ ­®^¯ tށ\‚dm 2 nrst uŽvd°WV SetValue ¦\§\ ¨O©ªX\J\± ²³rjQ´ {¾—¬µ¿ ¶—^‚~yz^b ·Y€± ²³\j~´w{¸—~¹^ºS Ž»¼Lo{¸½ Y x¹º^ÀÁrJQÂrJÃ^JgS^ r® JgÄÅw{¸Æ^”\sdÇÈM‚„«—† s„Y ASM P^lsdÉÊËd— «—† sMÌT‚~¯ m^Í\˄Y Š‹Œ^h ÎMÏMЀˀ»T\‚dƒM i{ÒрȀ¿ ‚dmOeMPMl tMӗsM·YŠi‹ ŒMh „ÏTÐÔVՊQÖ׋Ø ‡MÙ Xw{Y ÃTJg¦\§ ¨ ©OªJd¹ ºMÀMÁi† ¿Ú TM‚dmiÃ^«Ms YiÛ\‚~¦\§rw¿ ¨o©Oª ® Šw‹ Œh„ÏTЎJ€˄܎v^ËOŠw‹TŒ\h„o{ÎTÐ ÚvMåŽÝd¿ ÞMßMYàà JQ¦M§r ¨O© ª¬·„á—Jg¦M§r¿ ڍ ¨ ©Oª‰® Ëâäã Ýd¹Tº^À Áæ{‰çT莁M‚QmwÜ ˄¤ AWS YéVՊo‹^ŒMh„ “T”M• ë\–—ì ˜Ž¦hT§€ê„wJ€ŠŽ¨w‹„© ŒTªÒhJ„M¹MJQºi“^{”oÀM{¬Á—íg~îo¹^‚dºm À^Áo{¬âiãv—†gÌ^X ïð ñ\òóô„õö\÷ øoù YOáOúd¦r§—w¨i©oªÒË^â×ã Ú åO¿ ݹMºMÀTÁæ{çMè ¿ vM™MúŽ{TŠi‹TŒ\h  †„‡~ˆm Šw‹ ŒTÿhd^·Y„ ÎÐû„¦T§MŽ¨—©Žª¬úgüý^Y„¹º^ÀÁ—»¼Lü^Yþ ú Q L

(121) RMSŽíœi‚dmް€È MY ^¦\§ro¨o©  ª  n val †„ Ý üMýú Label ¦r§€i¨w© ªÒË setText †Ý ‘¹TºMÀMÁæ{ M‚QÞMß\Yæ«\úŽŠi‹MŒ\h M· (1). msg(n val, Label setText, ”hello”). † Ýs^ íQœä‚ mà«rú Ši‹MŒ€hTr·MY¦€§Ži¨w©wª úM¥ŽNQÿ ¹^ºæ{‰Y€¿M¹^Ú º s

(122) ‰¹Tº setText(s, ”hello”) ÁOíQîw‚  Ýr‚mæ««\sY n ®val ·rÖrhiª ®Ë^Àname sMÛT‚gè^LTY Label setText ·\’ ÖThOª meth sMÛ ‚èL—srÛr‚ mަr§—i¨w©oª~ú ü\ý »dLüà{ҏ èL ·Y ÆM”€s •ŽÝTv !"$#NË ½ ¾ íҜ悎†‰Ñ—Èr‚dmכ. 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ૼœw™„Y

(124) st— umŽÖ\hwª„{¶ íҜ悗†їÈr‚dm msg "$#

(125) w Ë ½ ® AWS «MúŽŠw‹TŒ\h  {“T”M‚ V%ÎMÐMû¦§rw¨o© y ªÒú¹Tºi{ÀTÁŽígî ‚^X\ÂrËM· YŽÎMÐTû¦§o¨w© ª„<{ x M‚^v z„YOÎMÐMûæ{üMý—sM·\| {‘¦§ri¨w© ª ID s  } ® Û‚dm~ ¯¿ Šw‹MŒ\h„rúÎTÐ ­ s\Û‚u^¦\§€w¨ © ªÒú ID { j † vO†d̄YÎMÐMû^¦§ri¨w©Oª¼ú ID · child( j, n val). †d€Ý 'rsŽíœi‚Qm BasicSystem · YäŠo‹ŒMh„ “^”T• –˜Oh ËŠ ‹ŒM¿Th„Ú  {‚ށT‚€†Qÿ ÌdY n 1 umwÚ {¸¦M§rOn ¨ © ª ID® HË pƒ  ‚O\‚ ¢\£í¼œ Ý‚m ¦\§€w¨w© ª ID sÛ‚€Ši‹MŒ\h„\·Y 1 um xmsg(child( j, n val), Label setText, ”hello”) ÿú ¬Ë€»um xmsg {„|ã Ú m Y †o» m apply A{ „|ã Ú Yæ«úOŠi‹ BasicSystem ·T

(126) Œh o{‰¹MºMÀ\Áu» m—Ë ¤ ‡ ˆ!r‚d

(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ÆM”r· 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 › 3emw†de» m^¾ ´—úÖTh ªXMú^qŸ  <‘Ž‚„«† ® sMÌM‚~m «~œ’ úÆM”Žúd½ ™€"#

(141) w Ë âHŠœæ‚—†їÈr‚dm ôO“” 3.3.1 BasicSystem AWS ·MY x¦—§i¨w©æªT†rŠi‹MŒ—hMM“€”€•O– ˜wh V0–—˜Žh€†• ¯ X{¬¹^º—–^ o† ¿ Ú ¶ v ASM sMÛM‚gmŽÿ Š|˜ AWS O ú M¥ wQ¹Tº€· Y ™¦\§ro¨o© ªÒú¹Tºþ –T˜\hdú¼¹„ºúҞMsÛ‚m AWS Aú š„ l ›¼Y^ŠM‹~Œ hQg“„”„y z€TbMúdƒ^ i{ BasicSystem †„O‡ œM¿ sMÝ\‚Qm BasicSystem å úqm|wOš\l×{Hž 6 ˗Ÿ ^màv Y Ši‹MŒrh^i{¼o f×h¿j k\’ – ˜ohHú š¾ lŽ·  €• ¿MÚ Ýr‚ mä›\v\«€ú áËTY åå ýMt ’v Y¡"$#

(142) w Ë ½ ’ íÒœæ® ‚—†їÈr‚M»um V»umMüæ{ è m msg bX Æ\” ‚—Ši‚dm BasicSystem ú ¹ º–M O»umþ Oÿ ¹\ºMÀTÁO»umæ{ ø ‰ Ëq¢

(143) £MM‚dm 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{ E€U , %'&<(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) þ-ƒ €ô‹„ )  ÿM4ކ , ASM û  D E ä ¥  ï ·F5g G˜0 4·† F5 µu¥ÙÚgetÛ get  Ù6kŠ wuß

(155) nà Œ ÿ E Ùt—4 Ù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 ˆ |‰ 'JŠ1„ x >‹M;Œ>"F 3.4 UI ¹1º¼»¼½¼¾¼¿ \ P †   [ Ž , h  # SII‘ 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,|<“ M™1šœ›B  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"S•–—˜I® J¯° x >B™3›±/  ²J³ ÷ø%† x £  ¡f ' e ã<ä , Í ý ÌÎ¡è ´)µ x1•–lž 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 ô3–Qõ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 |a“XhWXYRZ O\[ ­]O^Q ¤€ ¥ MP´\_Rm `  P3† ]/vaN « [ji9MPORQlkIM S s^t ²fu ‡\U n HwvJMc™Z›J±  l BasicSystem ] M olpBM3r ‡ q ² R¯L xRx ° N oRp ª cXS } Java~ W Mzyl{csMct ™1š6›/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 Mc™1š›/ up M Ÿ\ ´ ¡ SetValue ™&z9Š ¢ ƒx ‡ n valv l€ ˆ ‰xW sat L €² u N U H$MZŽZ™"šhJ ›Bª, SZsetText •–—˜ s| Wg « W ‡‹Š N _ Ow[ W n S •–lž  q x Nzup^]M Ž _l\´ ` m †Œ ­ ¸/™oS š6out›/X W Œ ˆ Y Orout[ ­¼™\½B›M ±/ ,²J³M ¯ a °´@µ x ™1šœ›<X | Š S ³ ´ _ m Rx N n ls^t ² u U H$M kl ‹ ^S ƒs^t ²fu U H$Mc™oš6›/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 H‘N kIM]’R¨“ S  ²fu H ¯°\Ÿ—´  m ¡c™Tz"¢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ªJS”kl ™1šœ›< ª,S ij WP  ¡ Or[ ­a¢ gBN Mh £ 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±R­R² ®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] µ  ¾ ’ N1Z‘ ® 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 ™1š6›//« ™[Š ›S ±  S ²X] ® µ ¯°\ ´@£¯R° Á s^tRx ²fN u U H ƒª  µ q Rx N ™1šW ±^›²  | ¼ g ®9 ]/v« N UI ¾K[­ U [”|<_^“ `\´ Â^à ndS µ yR{ ™9š›cSwing [ P®¸¢  ´$i/j ŸT® •/–/—˜ s g ®¸¢ g ®š€  H l Ä § ¶ N a­ ˜a® y< <)à ´ µ Ÿd¿Š ® x µ ¨ w Pp © zŰaHyÆ š<—´ £ 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~l€l‚„ƒl ‡†Zˆaè¿÷ ‰lŠy‹ Œ t 700 Ž bfc„egwy‘†å’z„“•”&–Ð„—‰Œ æl™šoœ›f f ‹ Œ t  r ö ÷WždŸ ^ 1,400 Ž b îyr a   ìRél咡d¢ 650 Ž’z |£}. 4.3 ¤¦¥¦§©¨©ª¬«{­¯®h°¬±¦² õZ¶d· ‰dŠd¸. a. 3.4 ³jzw´{µ o 8 rTð@b„cweg‹ï¹µ$º¹ö »üò Java ¼{½w¾jl¿„À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 B–DC¹ËDD6 ( UI E ASM ¶£· ‰dŠF 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„ D†R‡ `h e _[ x `††‰ˆ0Š‹ }Œސa,4b ‘ y ސmžnŸ ’“”• ‘– 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«Ç ¬ÈM­VÉ ® ¯°²±³ ´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... 構造試験