Re: [friam] Classification of actor languages

"Mark S. Miller" <[email protected]> Mon, 16 Feb 2015 17:13:44 -0800
Newsgroups gmane.comp.lang.e.general
Message-ID <CABHxS9hPoyyM3=ALMbzTSHD_aOA5tPuoJUVagjupO1DXk=TyZw@mail.gmail.com>
--===============6360713405666680108==
Content-Type: multipart/alternative; boundary=001a113f90fc036d0d050f3e6a2c

--001a113f90fc036d0d050f3e6a2c
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

What language is this in? Where can I read about this language? Are
"implements", "using", "also" and "afterward" keywords of this language?



On Mon, Feb 16, 2015 at 1:25 PM, Carl Hewitt <[email protected]> wrote:

>  *Actor **Counter**[* *]*
>
>     * count **=E2=89=94 *0,   // *count *is an assignable variable initia=
lized
> with 0
>
>     *pair**[ ]**:[**UpCounter**,* *DownCounter]*=C2=A7*=E2=86=92*   *[**=
=E2=8D=A0**UpCounter*
> *,* *=E2=8D=A0**DownCounter]*=C2=A7
>
> *    implements  **UpCounter* *using  *
>
> *        increment**[ ]=E2=86=92*   *count*+1* afterward count*++=C2=A7
>
> *    also implements  **DownCounter* *using  *
>
> *        decrement**[ ]=E2=86=92*   *count*-1*  afterward count*--=C2=A7=
=E2=96=AE
>
>
>
> [anUpCounter, aDownCounter] *=E2=86=90 **Counter**[* *]**=E2=88=8E**pair*=
*[ ]*=E2=96=AE
>
>
>
> Of course the following is illegal:
>
>      aDownCounter*=E2=88=8E**increment**[ ]*=E2=96=AE
>
>
>
>
>
>
>
>
>
> *From:* friam-/[email protected] [mailto:friam-/[email protected]]
> *Sent:* Monday, February 16, 2015 12:38
> *To:* friam
> *Cc:* Discussion of E and other capability languages
> *Subject:* Re: [friam] Classification of actor languages
>
>
>
> My favorite time example. If Bob is given only the upCounter and Carol is
> given only the downCounter, then Bob can only increment and see the resul=
t,
> and Carol can only decrement and see the result.
>
>
>
> For the same thing in Dr.SES, see also slides 14 and 31 of <
> http://soft.vub.ac.be/events/mobicrant_talks/talk2_OO_security.pdf>.
>
>
>
>
>
>
>
> def makeCounterPair() {
>
>     var count :=3D 0
>
>     def upCounter {
>         to incr() { return count +=3D 1 }
>     }
>
>     def downCounter {
>         to decr() { return count -=3D 1 }
>     }
>
>     return [upCounter, downCounter]
>
> }
>
>
> ? def [u, d] :=3D makeCounterPair()
> # value: [<upCounter>, <downCounter>]
>
> ? u.incr()
> # value: 1
>
> ? u.incr()
> # value: 2
>
> ? d.incr()
> # problem: <NoSuchMethodException: <a downCounter>.incr/0>
>
> ? d.decr()
> # value: 1
>
> Figure 6.5: Two Counting Facets Sharing a Slot. makeCounterPair makes a
> Slot, and it makes and returns two objects sharing access to that Slot.
> These three objects form a lexical composite. The returned objects are
> facets of this composite. The Slot is encapsulated within this composite.
>
>
>
>
>
>
>
>
> On Mon, Feb 16, 2015 at 12:23 PM, Tom Van Cutsem <[email protected]>
> wrote:
>
>  Hi Carl,
>
>
>
> 2015-02-14 1:19 GMT+01:00 Carl Hewitt <[email protected]>:
>
>   Of course, an Actor can implement multiple interfaces.
>
>
>
> I am wondering how a =E2=80=9Cfacet=E2=80=9D relates to an interface.
>
>
>
> Indeed, an actor can implement multiple interfaces, but this typically
> means that anyone having a reference to the actor can send any message fr=
om
> the union of all interface methods. By contrast, in a vat with multiple
> facets, a reference to a facet provides access to only the methods expose=
d
> by that facet. Thus, facets make it easier to restrict authority.
>
>
>
> Of course, one could encode facets in a pure actor model, by passing a
> token designating the facet as part of the message. The actor can be
> programmed to dispatch the message to an internal object only if the toke=
n
> matches. But this would be an encoding of the vat model in a pure actor
> model.
>
>
>
> Cheers,
>
> Tom
>
> --
> You received this message because you are subscribed to the Google Groups
> "friam" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to friam+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To post to this group, send email to friam-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> Visit this group at http://groups.google.com/group/friam.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
>
> --
>
>     Cheers,
>     --MarkM
>
> --
> You received this message because you are subscribed to the Google Groups
> "friam" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to friam+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To post to this group, send email to friam-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> Visit this group at http://groups.google.com/group/friam.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "friam" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to friam+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> To post to this group, send email to friam-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
> Visit this group at http://groups.google.com/group/friam.
> For more options, visit https://groups.google.com/d/optout.
>



--=20
    Cheers,
    --MarkM

--001a113f90fc036d0d050f3e6a2c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">What language is this in? Where can I read about this lang=
uage? Are &quot;implements&quot;, &quot;using&quot;, &quot;also&quot; and &=
quot;afterward&quot; keywords of this language?<div><br><div><br></div></di=
v></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, F=
eb 16, 2015 at 1:25 PM, Carl Hewitt <span dir=3D"ltr">&lt;<a href=3D"mailto=
:[email protected]" target=3D"_blank">[email protected]</a>&gt;</span> wr=
ote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif">Actor
</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;col=
or:#0e6835">Counter</span></b><b><span style=3D"font-family:&quot;Cambria M=
ath&quot;,serif;color:#0e6835">[</span></b><span style=3D"font-family:&quot=
;Cambria Math&quot;,serif">
<b><span style=3D"color:#0e6835">]</span></b> <u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-fami=
ly:&quot;Cambria Math&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=A0<b>=C2=A0<span s=
tyle=3D"color:#c55a11">count
</span></b></span><b><span style=3D"font-family:&quot;Cambria Math&quot;,se=
rif">=E2=89=94 </span></b><span style=3D"font-family:&quot;Cambria Math&quo=
t;,serif">0,</span><span style=3D"font-size:14.0pt;font-family:&quot;Cambri=
a Math&quot;,serif">=C2=A0=C2=A0
</span><span style=3D"font-size:14.0pt;font-family:&quot;Microsoft Sans Ser=
if&quot;,sans-serif;color:#494949">//</span><span style=3D"font-size:14.0pt=
;font-family:&quot;Cambria Math&quot;,serif;color:gray">
</span><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#=
c55a11">count
</span></b><span style=3D"font-family:&quot;Microsoft Sans Serif&quot;,sans=
-serif;color:#494949">is an assignable variable initialized with</span><spa=
n style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#494949">
</span><span style=3D"font-family:&quot;Cambria Math&quot;,serif">0<u></u><=
u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif;color:#c55a11">=C2=A0=C2=A0=C2=A0
</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;col=
or:#8a008a">pair</span></b><b><span style=3D"font-family:&quot;Cambria Math=
&quot;,serif;color:#8a008a">[ ]</span></b><b><span style=3D"font-family:&qu=
ot;Cambria Math&quot;,serif">:<span style=3D"color:#2f5597">[</span></span>=
</b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#0e6=
835">UpCounter</span></b><b><span style=3D"font-family:&quot;Cambria Math&q=
uot;,serif;color:#2f5597">,</span></b><b><span style=3D"font-family:&quot;C=
ambria Math&quot;,serif;color:#0e6835">
</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;col=
or:#0e6835">DownCounter]</span></b><span style=3D"font-size:10.0pt;font-fam=
ily:&quot;Cambria Math&quot;,serif">=C2=A7</span><b><span style=3D"font-fam=
ily:&quot;Cambria Math&quot;,serif;color:#8a008a">=E2=86=92</span></b><i><s=
pan style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#8a008a">=C2=
=A0=C2=A0</span></i><b><span style=3D"font-family:&quot;Cambria Math&quot;,=
serif;color:#8a008a">=C2=A0</span></b><b><span style=3D"font-family:&quot;C=
ambria Math&quot;,serif;color:#2f5597">[</span></b><b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Cambria Math&quot;,serif;color:#8a008a">=E2=8D=
=A0</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;=
color:#0e6835">UpCounter</span></b><b><span style=3D"font-family:&quot;Camb=
ria Math&quot;,serif;color:#2f5597">,</span></b><b><span style=3D"font-fami=
ly:&quot;Cambria Math&quot;,serif;color:#0e6835">
</span></b><b><span style=3D"font-size:10.0pt;font-family:&quot;Cambria Mat=
h&quot;,serif;color:#8a008a">=E2=8D=A0</span></b><b><span style=3D"font-fam=
ily:&quot;Cambria Math&quot;,serif;color:#0e6835">DownCounter]</span></b><s=
pan style=3D"font-size:10.0pt;font-family:&quot;Cambria Math&quot;,serif">=
=C2=A7</span><span style=3D"font-family:&quot;Cambria Math&quot;,serif"><u>=
</u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif">=C2=A0=C2=A0=C2=A0 implements =C2=A0<=
/span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif;colo=
r:#0e6835">UpCounter</span></b><b><span style=3D"font-family:&quot;Cambria =
Math&quot;,serif;color:#8a008a">
</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif">us=
ing =C2=A0<span style=3D"color:#8a008a"><u></u><u></u></span></span></b></p=
>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0<span style=3D"color:#8a008a">increment</span></span></b><b><sp=
an style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#8a008a">[ ]=
=E2=86=92</span></b><i><span style=3D"font-family:&quot;Cambria Math&quot;,=
serif;color:#8a008a">=C2=A0=C2=A0</span></i><b><span style=3D"font-family:&=
quot;Cambria Math&quot;,serif;color:#8a008a">=C2=A0</span></b><b><span styl=
e=3D"font-family:&quot;Cambria Math&quot;,serif;color:#c55a11">count</span>=
</b><span style=3D"font-family:&quot;Cambria Math&quot;,serif">+1<b>
 afterward <span style=3D"color:#c55a11">
count</span></b>++</span><span style=3D"font-size:10.0pt;font-family:&quot;=
Cambria Math&quot;,serif">=C2=A7<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif">=C2=A0=C2=A0=C2=A0 also implements =
=C2=A0</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,ser=
if;color:#0e6835">DownCounter</span></b><b><span style=3D"font-family:&quot=
;Cambria Math&quot;,serif;color:#8a008a">
</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif">us=
ing =C2=A0<span style=3D"color:#8a008a"><u></u><u></u></span></span></b></p=
>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0<span style=3D"color:#8a008a">decrement</span></span></b><b><sp=
an style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#8a008a">[ ]=
=E2=86=92</span></b><i><span style=3D"font-family:&quot;Cambria Math&quot;,=
serif;color:#8a008a">=C2=A0=C2=A0</span></i><b><span style=3D"font-family:&=
quot;Cambria Math&quot;,serif;color:#8a008a">=C2=A0</span></b><b><span styl=
e=3D"font-family:&quot;Cambria Math&quot;,serif;color:#c55a11">count</span>=
</b><span style=3D"font-family:&quot;Cambria Math&quot;,serif">-1<b>
<span style=3D"color:#c55a11">
=C2=A0</span>afterward <span style=3D"color:#c55a11">
count</span></b>--</span><span style=3D"font-size:10.0pt;font-family:&quot;=
Cambria Math&quot;,serif">=C2=A7</span><span><span style=3D"font-size:10.0p=
t;font-family:&quot;MS Gothic&quot;">=E2=96=AE</span></span><span style=3D"=
font-size:10.0pt;font-family:&quot;Cambria Math&quot;,serif"><u></u><u></u>=
</span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><b><span style=3D"font-f=
amily:&quot;Cambria Math&quot;,serif"><u></u>=C2=A0<u></u></span></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-fami=
ly:&quot;Cambria Math&quot;,serif">[anUpCounter, aDownCounter]
</span><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif">=E2=86=
=90 </span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,serif=
;color:#0e6835">Counter</span></b><b><span style=3D"font-family:&quot;Cambr=
ia Math&quot;,serif;color:#0e6835">[</span></b><span style=3D"font-family:&=
quot;Cambria Math&quot;,serif">
<b><span style=3D"color:#0e6835">]</span></b></span><span><b><sub><span sty=
le=3D"font-size:7.0pt;font-family:&quot;Cambria Math&quot;,serif;color:#8a0=
08a">=E2=88=8E</span></sub></b></span><b><span style=3D"font-family:&quot;C=
ambria Math&quot;,serif;color:#8a008a">pair</span></b><b><span style=3D"fon=
t-family:&quot;Cambria Math&quot;,serif;color:#8a008a">[
 ]</span></b><span><span style=3D"font-size:10.0pt;font-family:&quot;MS Got=
hic&quot;">=E2=96=AE<u></u><u></u></span></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span><span style=3D"fon=
t-size:10.0pt;font-family:&quot;MS Gothic&quot;"><u></u>=C2=A0<u></u></span=
></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-fami=
ly:&quot;Microsoft Sans Serif&quot;,sans-serif">Of course the following is =
illegal:<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-fami=
ly:&quot;Cambria Math&quot;,serif;color:#2f5597">=C2=A0=C2=A0=C2=A0=C2=A0
</span><span style=3D"font-family:&quot;Cambria Math&quot;,serif">aDownCoun=
ter</span><span><b><sub><span style=3D"font-size:7.0pt;font-family:&quot;Ca=
mbria Math&quot;,serif;color:#8a008a">=E2=88=8E</span></sub></b></span><b><=
span style=3D"font-family:&quot;Cambria Math&quot;,serif;color:#8a008a">inc=
rement</span></b><b><span style=3D"font-family:&quot;Cambria Math&quot;,ser=
if;color:#8a008a">[
 ]</span></b><span><span style=3D"font-size:10.0pt;font-family:&quot;MS Got=
hic&quot;">=E2=96=AE</span></span><span style=3D"font-family:&quot;Cambria =
Math&quot;,serif;color:#2f5597"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-fami=
ly:&quot;Cambria Math&quot;,serif;color:#2f5597"><u></u>=C2=A0<u></u></span=
></p>
<p class=3D"MsoNormal" style=3D"margin-left:4.5pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Cambria Math&quot;,serif"><u></u>=C2=A0<u></u></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Mi=
crosoft Sans Serif&quot;,sans-serif;color:black"><u></u>=C2=A0<u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Mi=
crosoft Sans Serif&quot;,sans-serif;color:black"><u></u>=C2=A0<u></u></span=
></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><b><span style=3D"font-si=
ze:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> <a =
href=3D"mailto:friam-/[email protected]" target=3D"_blank">friam@googlegroups=
.com</a> [mailto:<a href=3D"mailto:friam-/[email protected]" target=3D"_blank=
">friam-/[email protected]</a>]
<br><span class=3D"">
<b>Sent:</b> Monday, February 16, 2015 12:38<br>
<b>To:</b> friam<br>
</span><b>Cc:</b> Discussion of E and other capability languages<br>
<b>Subject:</b> Re: [friam] Classification of actor languages<u></u><u></u>=
</span></p><div><div class=3D"h5">
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">My favorite time example.=
 If Bob is given only the upCounter and Carol is given only the downCounter=
, then Bob can only increment and see the result, and Carol can only decrem=
ent and see the result.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">For the same thing in Dr.=
SES, see also slides 14 and 31 of &lt;<a href=3D"http://soft.vub.ac.be/even=
ts/mobicrant_talks/talk2_OO_security.pdf" target=3D"_blank">http://soft.vub=
.ac.be/events/mobicrant_talks/talk2_OO_security.pdf</a>&gt;.<u></u><u></u><=
/p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">def makeCounterPair() {<u=
></u><u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">=C2=A0 =C2=A0 var count :=
=3D 0<u></u><u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">=C2=A0 =C2=A0 def upCount=
er {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to incr() { return count +=3D 1 }<br>
=C2=A0 =C2=A0 }<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">=C2=A0 =C2=A0 def downCou=
nter {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to decr() { return count -=3D 1 }<br>
=C2=A0 =C2=A0 }<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">=C2=A0 =C2=A0 return [upC=
ounter, downCounter]<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">}<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><br>
? def [u, d] :=3D makeCounterPair()<br>
# value: [&lt;upCounter&gt;, &lt;downCounter&gt;]<br>
<br>
? u.incr()<br>
# value: 1<br>
<br>
? u.incr()<br>
# value: 2<br>
<br>
? d.incr()<br>
# problem: &lt;NoSuchMethodException: &lt;a downCounter&gt;.incr/0&gt;<br>
<br>
? d.decr()<br>
# value: 1<br>
<br>
Figure 6.5: Two Counting Facets Sharing a Slot. makeCounterPair makes a Slo=
t, and it makes and returns two objects sharing access to that Slot. These =
three objects form a lexical composite. The returned objects are facets of =
this composite. The Slot is encapsulated
 within this composite.<br>
<br>
<br>
<br>
<br>
=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">On Mon, Feb 16, 2015 at 1=
2:23 PM, Tom Van Cutsem &lt;<a href=3D"mailto:[email protected]" target=3D=
"_blank">[email protected]</a>&gt; wrote:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Hi Carl,<u></u><u></u></p=
>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">2015-02-14 1:19 GMT+01:00=
 Carl Hewitt &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">he=
[email protected]</a>&gt;:<u></u><u></u></p>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#1f497d">Of course, an Actor can implement multiple interfaces.</span=
><u></u><u></u></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#1f497d">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#1f497d">I am wondering how a =E2=80=9Cfacet=E2=80=9D relates to an i=
nterface.</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Indeed, an actor can impl=
ement multiple interfaces, but this typically means that anyone having a re=
ference to the actor can send any message from the union of all interface m=
ethods. By contrast, in a vat with multiple
 facets, a reference to a facet provides access to only the methods exposed=
 by that facet. Thus, facets make it easier to restrict authority.<u></u><u=
></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Of course, one could enco=
de facets in a pure actor model, by passing a token designating the facet a=
s part of the message. The actor can be programmed to dispatch the message =
to an internal object only if the token
 matches. But this would be an encoding of the vat model in a pure actor mo=
del.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Cheers,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">Tom<u></u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;friam&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to
<a href=3D"mailto:friam+unsubscribe-/[email protected]" target=3D"_blank">fri=
am+unsubscribe-/[email protected]</a>.<br>
To post to this group, send email to <a href=3D"mailto:[email protected]=
om" target=3D"_blank">
friam-/[email protected]</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/group/friam" target=
=3D"_blank">
http://groups.google.com/group/friam</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">
https://groups.google.com/d/optout</a>.<u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><br>
<br clear=3D"all">
<u></u><u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">-- <u></u><u></u></p>
<div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">=C2=A0 =C2=A0 Cheers,<br>
=C2=A0 =C2=A0 --MarkM<u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-left:.5in">-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;friam&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to
<a href=3D"mailto:friam+unsubscribe-/[email protected]" target=3D"_blank">fri=
am+unsubscribe-/[email protected]</a>.<br>
To post to this group, send email to <a href=3D"mailto:[email protected]=
om" target=3D"_blank">friam-/[email protected]</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/group/friam" target=
=3D"_blank">http://groups.google.com/group/friam</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">https://groups.google.com/d/optout</a>.<u></u><u></u></p>
</div></div></div>
</div><div class=3D"HOEnZb"><div class=3D"h5">


<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;friam&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:friam+unsubscribe-/[email protected]" target=3D"_bl=
ank">friam+unsubscribe-/[email protected]</a>.<br>
To post to this group, send email to <a href=3D"mailto:[email protected]=
om" target=3D"_blank">friam-/[email protected]</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/group/friam" target=
=3D"_blank">http://groups.google.com/group/friam</a>.<br>
For more options, visit <a href=3D"https://groups.google.com/d/optout" targ=
et=3D"_blank">https://groups.google.com/d/optout</a>.<br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>=
<div class=3D"gmail_signature">=C2=A0 =C2=A0 Cheers,<br>=C2=A0 =C2=A0 --Mar=
kM</div>
</div>

--001a113f90fc036d0d050f3e6a2c--

--===============6360713405666680108==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang

--===============6360713405666680108==--