Semantics of PLANNER-73
Actor
Irene Grelf
Massachusetts
and Carl Hewitt
Insttute
Cambridge,
Abstract
Wotk
of
on PLANNER-73
a basin
for
describing
semantics
explained
be t-epresented
programming
wtth
languages.
side-effects,
M discussed.
Formal,
parallehsm,
definitions
there IS discussion
for the contt-oversy
are written
of the implications
over elimination
(apply: message (then-to: continuation))
Its value in
for sequences, cells, and a simple synchronization
Jn adcfit[on
as
and actors has led to the development
of
programs
synchronization
of Technology
Massachusetts
and
If
and
instructions
primitive.
mess?~e
Sendlog
of actor semantics
control
achvator
ton
A fo! rnahsm
The
the purpose
a guide
fo!- semantics IS usually developed
which
provldrs
reason
or
as a basis
for
a set of
programs.
The
semantic
base not
rather
for
which
a kmd
revolve
compotatlon
might be
recursive
of a particular
program,
of message passltlg
concepts
which
systems
WIII
particular
properties
rules for
this
fol- some particular
of computation.:t
must
be
be available
programming
language
a
continuation
examples
properties
given.
sent.
The
of
such
these
However,
approach
of an actor.
messages.
activity
energy
script
The
M useful
to
folrnallsm
strucrlite
It should
Itelatlve
be
able
to
ralk, about
is that otherwise much of the
In some!hlng
like an evaluator
)s a pattern of passing messages m a
possible to dtstmguish
i]e
computations
between, say,
as being two different
patterns
beha VIOI- which can be precisely chat’acterlzed.
functional
represents
In actciition,
as jumps
call to a function
with
an explicit
rhe actor to which
other
kinds of control
(m which
f can be implemented
continuation
to f.
The
the value of f should
be
structures can be expressed,
no continuation
u present) and co-routines
will be used.
an object which can send or recetve
is transmlssio,l
for compotatlon
actors.
it
of Information
to the semantics WIII be centered on the concept
An actor is simply
of an actor.
target.
actor to
[see Appendix]
no
Information
All elements of a syszem can be viewed as actors. The only
possible
further
the
be passed (I.e., an actor whose script the
a transnussion
Distribution
Our
that
Mcqlly
An ordinary
The systems of interest are those
synchronization.
all
by
makes it possible to indicate another
COntIol
and
by passing
and
then
be determmed
of
of
language,
or a compilel.
but
to express
and
properties
is development
programming
srde-effects,
presented
verifying
paper
continuation
has io ren~~ln implicit
The formalism
for
parallehsm,
structlire
of a specific language as
proof
motivation
contt-ol
definition
used as the means for describing
a
most
in a semantic
It might be designed for
and Implementors.
wlthoot
can et,entually
moovatlon.
of be}ng the forma!
to programmers
and presented
sent
computation
may follow).
conunuations
m some context
is
foi
a contmuat[on
which
of side-effects.
Introduct
a
of one actor to another
comes from an activator
All
programs
existence
of
actor.
than
one
The
activator
Often
different
which can follow the
and systems will be referred
more
system.
places.
How
one’s purposes
indicates
put.
parallelism,
m various
one might
and the various
Concentrating
structures
contrasts
of type [van
on
redundantly
m different
choose to dlstribu[e
uses to which
use as the
with
gwlses in
it depends on
the knowledge
can be
key to representation
with the approach
Wijtlgaarrfen,
ways in an actor
[O represent knowledge
uses of the same Lrmwledge appearing
several
to as
can be Ireptesented
It 1Sdesirable
of concentrating
of data
on the notion
19691.
Continuations
——
For example,
Once an actor, m, is transmitted
proceeds
this
for
by following
to another actor, t, the activator
the scr{pt of i using information
to be of any me as a model of computation,
m to have some structure.
message.
from m. For
it must be possible
part.
IS flexlblllty
may
be dlstilboted
amon~
One posslblhty
(Ienglh L) can directly
Then m may
operation,
enough
length.
about
decomposed)
its length.
‘:
Actor
semantics
PLANNER-73.
realization
was
PLANNER-73
not
developed
M a language
to
explain
dedicated
or
define
list L for
to the direct
succeeds.
of this semantic base.
67
Ilsts and the usual operations
in how the information
themselves.
In many cases m will simply contain a
It will often also contain a continuation
In deflnin:
there
produce
could
thrse operations and
M thar the function
the length
be defined
the data c%jects
call denoted by
of the list, L. That
in such a way that
how IISU are constructed
on lists,
about the structure of lists
Is, the
it knows’
(and about how they can be
to be able to operate on the list directly and to compute
For example,
rhe operator
length could repeatedly
ask the
its next element and keep a count of the number of times it
Altei-natively,
Ilsts and
when
understand
concept
its own
“length”
for
fixed
length might
len~rh
What
since
for
such
interact
is particularly
about
in this case is that
This
lists the
realize
information
for “polymorphic”
operators
(length
of Ilsts can be Cieflned at any time.
L) to continue
types that
are continually
wherever
without
worklrrg
and
to extend
be)ng defined,
it seems natural,
These
in an
deta}ls of type checking,
It is desirable
correctly
When
polymorphic
Depending
opet-ator
and
level
concepts
give
to new data
information
concept
which
behavior
so how
actor
sequence
has at
by
defined
only
of
least
their
to perform
of several familiar
The
it is
event
Rather
than
something
activator
First,
lt
reflected
The
ot lentec! app:o~ch
behavior
behavior
(process~
actors
the
of
parallehsrn
time
as well
as change
global
processes
s!ngle
over
approach
possible
exploslon
to record the current
ortented
pa!allel
states
of an
cell
using
can
global
changes
processes which
m the behaviors
In state.
An event
The
in
when
there
one tries to record
reformation)
revolved
in
for
all
the
one
state
would
have
to
for
the
the
is, an actor
existing
of
degree
can be specified
in
actor
To
which
level
constraints,
specifications
specify
question.
co~ltlt ec’
any behavtor
of
detail
i.e. what
are
input-output
made,
the
constraints
poss!bie
not
how.
behaviors
while
may be analogous
the activator
Only
E2
If
stacks, or address spaces,
after
<t m a cc’> and
ec.
we can
of
is the ordering
which
of the actor system in
between causally precedes and the actual
any
computation.
for
primltlve
introduces
Other
actors.
orderings
(For
constraints
in
may
be
example
a
the
causally
relatlon.)
constituting
of
A m
M a set of events partially
closure of the relatlon
ordered by
-->.
which
environment.
will
which
detailed
have
realize
Generally,
environment
the “outside”
for an actor system is a set of actors
of the system. This
includes an assignment
of an initial
set of activators and initial events for each activator
which will determine the “beglntrlng
of history’” for this system and
At a very
more
to some notion of process, the activator
to connote any of the following
to be a property
primitive
An external
events
from
a target
behavior
the history
an event
concepts program counters,
68
initial
mslde
are written
distinguished
is definitely
These
cross the boundary
Histories
in
as a source of energy for computation
not meant
In
axioms
the transmve
be input-output
become more restricted.
pushdown
precedes
precedes E2! This
relationship
by
The
‘: Note that
time for ss at which
events occur M that if El --> E2 then El will necessarily
Definltlon:
can be
a system one writes
WIII essentially
be done,
t, m, and u then the
by the proper
by the choice of a set
of the system must satisfy.
these axioms
is to
of
means that if identical
denotes the time immediately
be considered
The
before
precedes
In describnrg an
m the actor system.
behavior
This
some particular,
That
actors WIII be recorded as behavior
desired
are totally
is also necessary to completely
transrmsslon.
mvolvmg
E2 IS read as “E} causally
semantics
in specifications
(or its set of possible behaviors
actors contained
these disringulshed
sjstem.
axioms
those
avadable
actor system this level of detail IS fixed
mvolvmg
high
flexlblllty
of the transmission
in the event <il ml al ecp. (Some actors have the ability
can reasonably
imposed
In as much or as Imle detail as is desired.
distinguished
the
of
count
<t m a ec> Immediately
t!nle at which
of deta !1 [o be included
and ec
a.
a cell, cons-list creates a list, etc.) The transitive closure of the relation
--> IS referred to as causally precedes i.e. for events El and E2 El -->
the
make
(t m a ec> where t is
a is the activator,
to create new actors -- cons-cell creates an actor with the behavior
all
each of
event
az is created
is
a combinatorial
mformatlon
event
be distinguished
synchronization
specified)
is a four-tuple,
write <t m a ec> --> <t m a cc’>, For events with different
activators,
<t] ml al eci> --> <t2 m2 a2 ecy lf and only if at least one of tz, mz,
of the actor cells.
useful
an
occur
Therefore
occur
the amount
the concept of
they occurred,
could be active.
Another
the
consist of events.
an event is a description
a pat-tlcular
two can in fact
Level of Detail in Describing Computations
Involves
behaviors,
Behaviors
Since the events of a single activator
time,
transmissions
to describe the effect of a change in a
states,
m
If
control
become
In order
state of the world
in
characterize
Secondly, it
actor.
1964], changes in state are
is particularly
(including
one
of states.
corresponding
by their
m is the transrmssion,
m to t by a.
ordered
with side-effects and parallelism.
a state vector [McCarthy,
In changes
event
are defin~d
WIII have to be defined.
AS stated earner,
The
is a totalty
of the behavior
defines
is a
transmissions.
to scmantlcs M well suited {o the
of programs
attempt!n$
like
section, we will
systems, illustrating
of these concepts,
Since
its operation.
A
represent
A description
uses.
of meanings
the formal
Behaviors
speclfles the properties of the actor which can be relied on in a proof
about properties of another system in which it is contained,
expression
the higher
After
of actors in the following
Definition:
behaviors.
which
a single
events.
two
tools.
either style can lead to a more efficient
set of events
Involvlng
otdered
descriptive
is the event count of the activator
are
ordered
of how the simple
block to define
can be
but both should be representable.
Actors
are useful
operators can be defined
of an Actor
partially
some Indication
behaviors
the target,
Behavior
give
definitions
of
sernant!c
application
should
can be used as a brslldmg
instead the operator can be applied
If
on circumstances,
implementation<
is satisfied by a particular
that IS required.
points
actor
definitions
for
to any type of data and (t ts up to the data to determine whether
reasonable
that a set of specifications
the behavior
never
once. This message-passmg style
useful
to prove
makes sense
ive system where new k!nds of objects which share some of
the properties
a
order
sYsrem, one examines the behaviors of the system at a level of greater
detail than that of the speclftcatlons and proves that these behaviors
it m terms of the
happens
and asks L for its “lengthy
lists
nothing
on the list Itself to
(and to understand
others)
around
know
have to depend
and need only be compu!ed
of definition
put
stl-ucture
among
(length L) tutns
changes
the operaror
sent one would
the system and a message outside
the system.
for systems in environments,
of an arbitrary
by choosing
actors.
involving
events will always be about transmissions
and enter the actor system, i.e. events which
Note:
system of actors can be extracted
only those events which
involve
certain
we will consider any new actor created by
an actor m the system ~ to be in ~ also.
Deflnmon:
For
behavior
of
dlstmgulshed
history
any
history
system
~
of
the actor
with
respect
system ~ the
to
the
set
alternatively
of
This
actors A c ~ M the subset of the events of the
containing
El is m the history
we guarantee
We will
actors,
continue
The
to use the Iabelllng
WIII be In the behavior
across the boundary
or
of ~ (i.e. with
actor as either target or message. This is how the level
then
IS fixed
versa)
or
a
inside and
dlstmgulshed
of a behavior
vice
target
outside
behavior
transmission
by the choice of A,
the mmlmalty
detailed
with
We WIII often
behavior
Sequences
results, i.e. the
The
illustrating
distinguished
respect
two programs
same set of actors.
“counhn~-up”
If
a
actors
represented
so on, while
<* [n 1] a ?) --> <x [n-l
would
An
even if
one
to
(among
be a
IS
by
*,
often
be possible
given
(or desired)
to be a
of
will
contain
to wrlre out completely
]ncldental
Instead,
characteristics
system
corrtairrirrg
the
form
These
And
common
tfre
This
of ax mms about
are not
[i]
Systems
but
are about
rather
computation
of any
of a system
cwestion
of
any
about
of an operation
the outside
actors
but
transformations
there
may be an arbitral-y
(or
even
be understood
count.
indicate
number
a mot-e derailed
In general
that
E2.
When
statement
the htstory
that
If
two events
we can write
El
and
of the form
(behavior)
have
thts
Xn]
in which
ith
had
th< iequence [xl
c, always
E2 are known
previously
been
event
the
element of the sequence to that continuation.
three components.
department.
This
a message, a continuation,
last actor is the one to which
for
i > n, it is the case that
the sequence
,,. Xn] (apply: [i] (then-to: c) (else-to: cd)) a ec>
using
axioms
as speclflcatlons
of all possible behav!ors
for any messages not explicitly
being
causes ‘not-applicable
described
department.
Thus
that
any
send]ng
where
dealt with the actor
to be sent to the complamt
at this stage m the defmmon
transmission
it can be assumed
(apply: x (then-to: c) (else-to: cd)) 10 a
x IS nor a sequence containing
an integer,
causes
to be sen[ to cd.
Ce77s
Cells
created
with
contents
of
contents.
appears
mentiOned.
IX cc’).
one assumes that
‘not-applicable
can
to be in a
El --~ E2 should be read as “whenever
. Xn] IS sent the message
causes as the next
instance,
all events
what actor or activator
by the
messages are sent If the target actor does not hke Its
For
sequence
m terms of
However,
If a sequence
can be specified
forlsisn
between any two events
behavior).
property
c) (else-to: cd)) a ec>
of other events if we examine a
El and
not
,.,
contmuatlon,
when
do not flt
some
Thus
have
as neatly
mmal
a cell,
mto a functional
contents.
Uprface
It
notatton.
IS possible
messages to that
A cell is
to ask for
the
cell can chaaige its
It is possible that several events in a single behavior
ldentlcal
and
targets
(namely
yet cause different
the
cell)
and
events to occur.
identical
This
occurs
the events have transmissions
El --> E2 to indicate that El causally precedes
E2
conventional
message.
transmissions
Recall
more
ts a sequence of n elements has the property
[Xl
of the
When
“?” can be used m any place in an event to
we do not care about
by
transmission
of
there.
behavior,
m
[Scott and Strachey, 1971],
--> <cd (apply: ‘not-applicable)
Any actor can be described
that
the
<[x,
related by causally precedes w]ll remam so related. When we do not
wish to Imply that E2 Immediately follows E3 we will write,”~ m the
event
described
been
an
functional
‘not-applicable
m
that is, when it
lf an acror is to be implemented
It should
have
which
a complaint
or of a line of code,
as a primi[ive,
by any h}story.
from
the kinds of behavior
since sequences are indeed
actor
can be specified
In terms of other actors, the axioms describe condmons
other
sequences
satisfies
the kinds of events that can possibly occur in a
must be satisfied
history
in
an actor M being specified
M not defined
of
sequences while
that it can be asked for m r’th element,
the e:cn[
and
and
and how they must be ordered.
When
which
obJects it WIII not
to a7 1 behaviors
actor
transmission
the set of behaviors
Hoa,re [19691 style axioms
over the occurrence
of
means th~t at the level of detail at which sequences are “black
events and the causally precedes relation.
predicates
behaviors
axiom:
boxes”
about events in the environment.
actor
the
properties
to constrain
that
--> <c (apply: xi) Cscc’)
be a series
lrr fact, many behaviors
reformation
about
familiar
<[x, ,., Xn] (apply: [i] (then-to:
a ?).
of most actors are infinite
actor.
could
others)
following
is considered
in the other there might
Specifications
behaviors
Note
notation
re~resetlted
This
Since
of
have.
they
at the level of
rtveal
n] a j) --> {* [n-2 n*n-i]
Behavioral
the
mathematical
actor then in any behav[or of one factorial there might
events
<*[2 I] a?>-->
<*[I
I] a?>-->
series
of
<x [3 2] a ?> and
axioms
some
the use of axtoms
can
objects
and the other to be “courrtmg-down.”
mtiltlpllcatlon,
distinguished
be
factorval
with
actors
(i.e. with no actors distinguished)
dlstmgulshed
actor
following
of ac!or systems. For example,
can be seen to be equivalent
transformation
set of
The choice of distinguished
m equivalence
for factorial
input-output
larger
respect to some set of
actors if and only If they have identical behawors
to that
can make a difference
a
with
omit the else-to part when it is not of interest
Note that if the
summarize
actot- systems are equivalent
continuation) (else-to: complaint-dept))
a
of ~ as seen from the outside.
Two
on the transmissions
general form:
if it describes either a
transrmssion
set A IS empty
convention
tt-ansmiss{ons are of the following
(apply: message (then-to:
of detail
time from an
I or m IS In A.
an event
transmission
it will cause Ez”
events <1 m a ec> where either
2. m is In Z and t N not,
Thus
(behavior)
response in finite
actor.
1. t is m ~ and m is not,
3. Either
as “if
is a way m which
(apply: ‘contents (then-to: continuation))
a
EI is in,
but the contents
then so IS E2 and El causally precedes E~” or
have been changed
case the continuation
69
IS sent different
between the two events.
actors.
In each
This
speaking,
has
means
that
changed
occurred
are
over
time.
In
stale-effect
terms
when the same procedure
occasions
with
This
be generalized
can
rather
cells
an actor system has undergone
than
the
primitives.
a side-effect
of
functions,
Axiom 2
Loosely
if its behavior
a side-effect
has
same argument
and
to behaviors
returned
different
values,
at future
evecrts
by looking
lnlrial
the
p has been called on two different
just at values returned.
Contents
message
placed
-- A cell created with x as its contents will respond to
‘contents
with
x if
no new value
has been explicitly
there yet.
Suppose
that
PO --~ El IS in the behavior
where
E. is <cons-cell (apply: [x] (then-to: c) (else-to: cd)) al ecp
Cells correspond
Therefol-e,
it
programming.
we have
that
of
opetatlon
primitives
most readers
on.
space for
guaranteed
a dewrable
convinced
a cell) with
of updates
himself
a
always
on them
El IS <c (apply: cell*)
m
its initial
value
should
El --> E2 --> E3
be an
E2 is <cell (apply: ‘contents (then-to: c 1) (else-to: cdl)) cl ?>
amount of time. This is also
given
program
terminates
has
(Anyone
which
relied
who
E3 is (cl
(apply: y) a ?>
and - 3E (E[ --> E --> E2)
contains
on
where
these
E is of the fornl
<cell (apply: [+ ?] (then-to: ?) (else-to: ?)) ? 7>
properties).
then
y=x.
-Axiom 0.
Axiom
Cons-cell
stored
crea[es cells
3 makes
by an update,
significant
<cons-cell
ccl ec~>
If thet-e are events E2, E3 where
exactly which properties
and contents queries.
that
statements
relied
be that creation of a cell (or
to take only finite
property
asslgmment
would
First
in various languages.
have
We will now try to formulate
been relylng
allocation
has
to side-effect
IS likely
change
a similar
rather
from
statement
about
than about the initial
the last contents
contents.
The only
th,e statement of Axiom 2 is that E. is
(apply: [x] (then-to: cl) (else-to: cdl )) a eel>
<cell (apply: [+ x] (then-to:
..> <~1 (apply: cell*)
Unfortunately
where cell is a newly created actor
of
parallelmm
tmle
Axiom I:
cons[ramts
program
to contents queries and updates.
(Also,
<cell (apply: ‘contents (then-to: continuation) (then-to: cd)) a ec>
--> <continuation
these axioms
Imposed
It
form
due
are reasonable only in the absence
since we are ignoring
parallelism,
Cells can respond
c) (else-to: cd)) a eel>
~ eci’>
IS the
by
the
case that
the fact that --> only refers to
program.
time
In
constraints
programs
imposed
without
by
the
a toml order on events making these axioms sufficient.
to the
predictable
nature
of the cell m the absence of
parallehsm
Its use does not really increase power [See Appendix].)
in genel-al
there
may also be update
events occurring
But
independently
of this ordering.
? a e~’>
In a behav!or
such as:
<cell (apply: [+- x] (then-to: continuation) (else-to: cd)) a ec)
<cons-cell (apply: [2] (then-to: c)) a ec)
--> <continuation
(apply: cell) c1 cc’>.
4
<c (apply: cell*) a cc’>
2“
[Notice that a cell returns itself,
not Hs value after update]
Newly
is often
for
<cell (apply:
created actors are marked in events by an asterisk*].
useful
the first
to be able to tell explicitly
It
when an actor, a, appears
time m event E since for any other event El in which a
The
next
two properties
contents
This
should
once
an update
find”
Y In the cell unt}l
required,
be true until
one about
retrieving
the original
an update
transnussion
transmission
retrieving
the initial
Thus
is sent. Similarly,
The
expect to
update
event
occurs
which
between
El
If cell first
and
sends the initial
message place marked
by the question mark can represent either
the message ? or +. Which
two more axioms are
svstern.
Axiom
actor it will be is not a property
of the”
2 u’ould force It to be 2
contents and the other about
The
what
2 says that
‘contents (then-to: C3)) al ?>
I
<C3 (apply: ?) al ?>
Initially
the last contents stored.
Axtom
1’
<C2 (apply: cell) a2 ?>
contents in the cell.
is sent, say [- y] , we would
it IS upd~. ted.
1
<c, (app y: cell) al ?)
1
<cell (apply:
that we rely on are related.
quer}es to find
c1 )) at eel>
<cell (apply: [~ 4] (then-to: C2)) a2 ecz)
occurs It must be the case that E -+ El.’:’
we expect
‘“N
[+ 3] (then-to:
appears in event El and if
no
obvious
patch
has to be returned
n to weaken the axiom from saying exactly
to the conunuation,
of actors It could be. Thu
contents query E> then E3 will be an
requmes adjusting
to just restricting
the set
the last line of axiom 2
to say that y is ]n the set
contents to the continuation,
{zlz=xv3E4suchlhat
‘:’ This
has Implications
formalized
recognition
for the relauon
and
wh!ch
has
and implementation
“knows about”
(E4 is <ceil (apply: [+ z] Ohen-to: c) (else-to: cd)) ? ?>
A . (E+ --> E2 or E2 --> E4))).
which can be
implications
for
control
details. [See Appendix]
structure
That
with
70
is, Y can be the initial
this activator,
contents or any value stored in parallel
Ax!om
could
2 should
be etther
precede
be adjusted
similarly,
such that the contents
then x is the &
contents storpd with respect to =>.
the contents stored in the last upd~te event to causally
the contents
query, or m any update which is parallel
to the
activator.
The
defined
last contents
for
stored
an arbitrary
with
respect to an ordering
total ordering,
can be
->, and used in axiom 4 with
respect to =>,
Now observe the following
behavior:
Definmon:
<cons-cell (apply: [2] (then-to: c)) # ec>
1
with
*
the inlttal
<c (apply: cell*) a cc’)
d
E, the last
in cell
—— contents stored
—
-> is defined to be either
contents, [f cell IS created m evetlt E. and
there is no update event E3 such that E. -> E3 -> E
\
<cell (apply: [- 3] (then-to:
For the event
respect to the ordering
c1 )) al eel>
or
<cell (apply: [- 5] (then-to: ?)) a2 ecz>
1
<cell (apply: ‘contents (then-to: C2)) a ?>
<C2
the actor stored m update
1
<cell (apply [* 6] (then-to: ?)) sY2?>
i
(apply: ?1 ) rsl ?>
,
IS no other update
There
#
<cell (apply: ‘contents (then-to: C3)) al 7,
ordered,
+
<C3 (apply: ?2) al ?>
have
than
There
about the contents of cells is that it is even more.
in {3, 5, 6}, but rather can only have values m {5, 6).
at-e many
examples
restrict
the poss!ble
contents
constraints
In ~ddihon
severely
deductions
the order
about
be notl-determin’ism
In fact,
only
referring
since although
to a particular
parts of that
ordering
in any
cell can be totally
will be forced
by the
Synchronization
stated, because If ?1 has value 5, then ?2 can no longer
any value
still
the events
actor system.
In fact, out mtuit!on
restricted
can
computation
E@ if E. -> E and there
E3 such that E. -> E3 -> E.
m which
we can make deductions
of a cell.
that
These are actually
to those Imposed by --> as to
in time in wh!ch events could have occurred.
Synch rontzdtlon
total
ordering
synchronization
necessary
The
fills
actor
to worry
contain
involving
always
about
synchronizarlon
always
m the gaps in the total order.
on all events
encased
unordered
would
the
it.
This
a cell
updates
it
the causally
would
never
be
and contents queries.
Impose an ordering
last (in
—
It imposes
means that if some
and the cell would
precedes relation)
contents
stored.
A first
leaction
current
definition
blzart-e
behavior
simply
should
However,
even
the
mtomon,
be that although
once non-determinism
is a possibility.
not rely on any meanmgful
m the presence of parallelism.
mutual
exclusion
of critical
Perhaps we
contents in tkus situation.
its
last
contents
of cells
This
is part of a general
system using
that
synchronization
an ordetmg
form for specifying
There
behaviors
of any
must be an axiom to the effect
M Imposed, and rhe axioms about other properties of
the system can be dependent
on this ordering.
For instance, several solutions to
sections which
[Di Jkstra, 1965; Knuth,
retaining
the
it may be reasonable to accept
th~re are times when we do rely on the behavior
semaphores
cell’s
to these examples might
jars ‘wth
do not make use of
1966], implicitly
stored
even
in
make use of the
the
presence
of
One
way
to protect
cons-protected-cell
which
cons-protecled-cell
should
a cell would
be to define
can create cells and protect them.
have behavior
a primitive
Externally
satisfying:
parallelism.
<cons-protected-cell
We found
reasonable
cell
the fact from
behaviors
to be consistent
that
that
with
In that
which
all our deductions
were made was that rhe contents retrieved
some possible total ordering
ordering
about
of all references to
each time the contents is checked it must
the events may not be necessarily ordered by -->. This is the property
cells which
independent
makes It possible
to use busy waiting
to desct ibe the behavior
cons-protected-cell
of synch t-on! zatlon
locally
known
which
is known
—
to synchronize”
The
of protected-cell,
m some more detad.
can be left unspeclfled,
cell and [hat
it is necessary to
Although
this cell N encased m a protective
to the world should be axiomatized.
behaviors
to rieflne
This
cell as target
contam!ng
an actor, cell, created by cons-cell, it
a total ordering,
ordering
where
of cons-protected-cell
also satisfy
c1 has behaviots
has the properties
that if El and E2 have
a ?),
Now we can describe the behavior
1. E --> E2 tmphes El => E2
2. If El --> E
Axiom 1:
where
From
El = <cell (apply: ‘contents (then-to: c)) a ec>
a ?>
--~ <c protected-cell*
then
and E = <c (apply: x) a cc’>
which satisfy:
=>, on all events which have cell
<c, (apply: cell*)
the outside
Its means,
the fact that it contains a
<cons-protected-cell
(apply: x (then-to: c)) a ec)
--> <cons-cell (apply: x (then-to: c1 )) a ?>
In any behav]or
as target.
In order
describe
processes.
Axiom 4:
is possible
a cc’>.
had
agree with the last contents stored. Thus cells allow one to make
deductions
about the actual order m which events occur even though
of
(apply: x (then-to: c)) a ec>
--~ <c (apply: protected-cell*)
a protected
of protected-cell
cel~ should look like a cell.
actor
<protected-cell
(apply: ‘contents (then-to: c)) U ec>
--> <c (apply: ? (then-to:
Conclusions
c)) a cc’>
and
We can express characteristics
<protected-cell
(apply: [+ ?] (then-b
--z <c (apply: protected-cell)
c)) a ec>
p~esence of parallelism.
a cc’>.
possible
changes
in
Synchronization
The
rest of
ft-om further
the propel-ties
of
protecied-cell
can be inferred
be
can
rather
used
fo{-mahsrn
Protected-cell
to
<protected-cell
(apply: x (then-to: c)) a ?)
in
impose
a
state
additional
of
vector.
ordering
research
pt-ove “correctness”
The
<cx t a ec>
behaviors
--> <c t a cc’>.
example
progress
has side-effects
because its behavior
can also be used m comparative
charactetvstlc
of this kmd
of
a
variety
of
control
studies of the
structures.
An
of
in the Append Ix.
reflects the
!Qf2z!x
Concerning
adds ordering
There
to a behavior,
necessity
E} = <protected-cell
(apply: x (them-to: c1 )) al ?>
E2 = <cell (apply: x (then-to:
E? = <protected-cell
M given
before
result
your
C2X)) a2 ? }
presence
result
that
somewhere
in
and cell there N locking
the
interface
and unlocking
between
Theot-em:
pt-ograms
primitives
it
If that is
must be known
There
and co-routines.
argument
of side-effects
with
where
but it
least which
generators,
Informal
of efficiency
be seen at this level of detail
side-effect
before
this fact can be seen to be true even m the
The
cannot
M the
Although
which way to program,
of !hls papet
of Iteration,
causes all events with cell as target to be ordered by causally precedes..
mechanism
of this controversy.
Also, when considered in light of the actor
discussion
going on which
our dncussion
Th!s
from programs
is meaningful.
with
with
can be eliminated
certain bounds on loss in efficiency
it is possible to avoid
prefet-ence
semantics
says
starting
and
A result to the effect that
may be of little help in deciding
discussion
E2 --> E4
ptmmtives)
this can be” done wlthln
does show that
(apply: X2 Ohen-!o: C2)) U2 ? >
E4 = <cell (apply: X2 (then-to:
side-effect
at present over the desirability
primitives.
and that
this
c1x)) a ?>
Side-Effects
M some controvel-sy
of use of side-effect
cells (or other
If El --> E2 and E3 -+ E4 where
This
semantic
to monitors
of work accompanies a result on elimination
Axiom 3:
protected-cell
this
actors, similar
to ihese descriptions.
of cell.
Protected-cell
on applying
synchronization
relauve
formalism
cells presented
protected-cell
is in
to str(lctored
Cx)) U ?>
where
exact
than
[Hoare,
197+]. Once a sufflclendy
expressive set of descriptions is
developed
we will implement
some systems, such as an airline
~e5ervatlon
sYstem or a sokmon to the readers,writers problem, and
sends messages to cell
--> <cell (apply: x (then-lo:
then either
in the
details about what it does with its messages
Further
Thus
behavior
primitive
are described by delineation
constraints.
Axiom 2:
behavior
of a side-effect
Side-effects
rather
We wdl present the
proof
and then proceed
ur varvous control and data structures,
IS a uniform
side-effects
than
procedure
for eliminating
cells from”
It causes at most an (n * (In n)) vs n loss
in time, and at most a (c * m) vs M increase in storage
c is a constant.
exists.
The
general
Axiom 4:
which
Given
this
object
can
be found
In some format
El, E2. E3, and E4 as above and E2 --, E+, then in fact
E2 --s <clx (apply: ?) al ?> --> E+
named
triggers
is, the event
protected-cell
Thus
c1 x
must
synchronization
events
and
know
that
the
a response is made from
allows
how
mechanism
caus irrg
mechantsm
m which
to
another
free
the
M primitive
unlocking,
It
IS
it causes the protected
transmission
cell,
the cell
Again,
since
the
can be referenced
whenever
by asking
an actual
by the cell’s name.
Whenever
to v, this
side-effect.
That
by the operation
of a cell.
Thn
map2, whose behavmr
call
that
when
simply
new map, map2, must be the one examined
of
this
and content
operations
of a cell
map, rnapl, can
updating
the conrents
by creating a new map, which we
shall
a property
call
must be simulated
is, the existing
we cannot see the chain of
cell to let someone else get to
the value
change
of simulatmg
can be accomplished
asked for
We
the contents of a cell is needed, it
the map.
is to be updated
not be changed
to the cell.
which
cells with contents
the system has to keep track of these contents
a map. Then
n,
without
That
idea is that instead of having
can be changed,
is Identical
to that of mapl except
the contents of nl it must respond with v. The
m the future
on all update
on cells.
the cell.
All
Now,
ordered
protectors
imposes
the point
causally
The
from
ordering
of view of the cell, all events are totally
precedes.
only the simpler
interesting.
deduced
from
by
cells were
single acuvator
more complex
a combmed
[f
global
understanding
always
used
map.
inside
current
axioms for cells would be
ordering
constraints
of synchronization
map,
which
72
This
by passing
to ail .functlons.
variable
and of cells which remember their .contents,
mvolvmg
cells must have access to the current
way to give them this access is to always pass around
map.
languages
can be
statements
The
can
be
around
The
in each procedure
done
apphcative
an additional
map would
body.
m
the
programming
argument,
then be available
namely
the
as a local
In
m~petatlve
sequential
that
Ian,grrages
this
would
code to pass the map from
the simulated
In both
sicfe-effec[s
cases all creation
be done
by rewriting
one statement to the next so
WIII propagate
through
the sequence.
of new cells, and all updating
of the conrenrs of cells will be simulated
by operations
or accessing
on the current
map.
Inconsisentty.
pointing
knowrring
In an actor based Iangrw:e
m which the basic operation
map
must be lnclucfecf in all messages.
about
The
about
On
the
be
the
We
WIII continue
decision,
bound
time
must
occur,
time,
although
time
an arbnrary
amount
on how
!s based
known
imporranr
a tree with
proportional
causes extra
tanstmlssions
transmissions
is being
only linearly
rurl,
The
in the map.
In a number
with
progt-ams
reason
have
a computation
On
It is well
accessing)
garbage
collection.
An
Also a style of programming
co change
a style using
to
using
without
cells.
cells
Many
in
their
a very persuasive
who have become used to
to give it up.
in
a more phllosophjcal
which
directly
we hve
reallzed
level, some theoreticians
and
feel
note that a
that is very important
that
this
In the computational
programmers.
kmd
in the world
of
behavior
should
primitives
available
for use by
Also there are cases, such as communication
two processes running
m parallel,
be
between
where cells are absolutely required.
to (In m). At the
Programming
—
of
n transmissions
can
be
Note
systems
[f it M stored in the form
that
with
Sty7es
which
the Ehmmation
expliclt
do not
use Cells
transmission
Thus
and co-routines
trade-offs
created m cells (realized physically
in
requires qm.
Impl teat ions
of
thus
to systems with
structures
Iteration,
as SIMULA-67
to actor
to the
generators,,
[Bmstwhistle
but not real parallelism].
has its own programming
the use of cells.
Involved
applies
as opposed
access only to the message part of a
use quasi-parallelism
control
We iilusrrate
these styles and the
using smy~le examples below
as In [Mazurkiewicz,
Each
style which
This
is similar
to
1971;Fischer, 1972].
and Side-effects
Itet-ative
computation
the s]mcrlation
it applies
the use of continuations
Iteration
transmissions
[e.g. systems as powerful
does not revolve
1$
of Cells Theorem
access to
where there is explicit
of the above
m location)
garbage
copying garbage collection
accustomed
is a kmd of behavior
there can be at most n
on space is based on one possible physical storage
fot- the tree.
If the original
scheme for
drain on systems and may
of the programmers
the golo are reluctant
et a 1, 1974 which
then
count
to do
computation.
reluctant
just as many
cycles into the graph of
efficiency
way
become
are
actor
impossible.
the reference
economical
regular
and
A-calculus
bound
collection
hand
one
a cell was created and the size of ,the map
The! efore
The
most
progl-ammers
side-effect
in at worst (n In rr) transmmons,
art-a ngement
other
into
can send transmissions
for actors maknrg the use of a reference
cells creates more gal bage than
of
updating,
proportional
computation
in parallel
without
using
the former
scheme is to run a conventional
The bound
of the map.
(creahon,
relation
riotton of one object
formalized
increases the
at any [Jme if there are M nodes in the
of rhe otvginal
in which
increased.
one unit of
comes in the number
Implementation
of a cell statement
transmmion
which
n nodes can be searchea or copied in rime
to (In n). Thus
a slmularlon
to
this
of real time may pass between
mefflciency
on a tree structured
stmulated
of as taking
needed to look up reformation
that
with
of transmissions
the program
of the map to each ilansmission
The
metaphor
In accordance
can be thought
depencfmg
t] ansrnmsions
nth
message passing
efficiency.
by the number
Transmissions
taken,
map
use the
N measured
transrnlsslons,
acfdltion
to
on loss of
been
use of cells can introduce
Itself puts a substantial
alternative
expla In the
has
so t!lat
scheme for garbage
collection
not
objecl
another
the krrowirrg
is the
of a message actor to a target actor, the current
another
to the Iattel-.
count
rransrmttlng
In the actor model the intuitive
to
without
control
cells.
structures
can be realized i,l the ~-calculcrs and
We will give a simple example
to illustrate
how
this is done
the
Theorem
(label itera!ive-factorial
(A [n a]
Ce77s [also called references,
the
literature]
generation
are objects
programmmg.
re-evalu~ted
whrch
from
whlrh
t-equlre
and 7ocat ions in
are very commonly
of the discovery
use of
then a
use of cells
The
else (iterative-factorial
following
are some points
Of
course
the above
iterative-factorial
cells can introduce
(n - 1) (n * a)))))
of styles of programming
borh sides of the argument,
The
(if(n=l)
used in current
The very common use of cells needs to be
m the light
do not
variab7es,
a time
variant
behavior
in
deflnluon
M also a recursive
In the sense that it IS defined
However,
In rerms
definition
In the sense of ALGOL-lihe
of
the actor
semantics
UP arbitrarily
large amounts Of intermediate
to do the computation.
Using the actor
properties
verston
of progi-ams
been established
tests can be Invalidated
the
level
of
hardware
mcrltkprocessor
computer
Unless expensive
contents
because some of the assumptions
in the middle
a procedure with side-effects.
use of
celts causes difflccrlties
systems which use buffer
precautions
of a cell mto their
of factorial
is recurs
of
itse7f.
=it
does not use
working storage in order
semantics the fotfowing
iire m both senses of recursive:
of a module as a result of conditional
by Invoking
the
which have
of
it is not a recursive
languages
sYstems wtllch makes them harder to understand and debug. The
tmle variant behavior can make it much harder to prove and verify
definition
in terms
At
for
(label recursive-factorial
(A [n]
[cache] memories.
(if(n=l)
are taken, two processors might load the
then 1
respective caches and update the contents
eke (n * (factOrial (n -1 ))))))
The
reason
that
storage
increases
is that
the
number
of
actors
currently
which
pointed
to (“known
are polntect
formalizing
the
iterative-f
about”)
continues
to are not eliglble
knows
about
to increase.
for garbage
relatlon
we can
aciorial only requires a bounded
Actors
next
larger
After
along
with
collection.
demonstrate
amount of working
Conceptually
inextr
every
To construct
storage
actor a consists of two components
i cab lY bound
together:
[called
a script].
known
to the actor and the script of the actor consists of a recipe of
what
to do if the actor M sent a transmission.
restriction
only
of the actor model
of computation
be sent a transmmlon
formally
the restriction
and a count from which to begin producing squares.
Then return
set of actors
or to complain to a complaint-dept
if it is greater than the limit
is [hat an actor t can
can be expressed as follows
if it doesn’t have one,
checks Ihe count !O see
aA. A fundamental
If It is known to the transmitter
an actor which,
when asked either to produce the next element
We shall indicate that
an actor a knows a set of actors A by the notation
a stream of squares,
a sequence of
a limit of how many squares to produce
which
a data part and an action part
The data of an actor consists of a finite
more squares.
that
receive
are
square each time It is asked for it, and returns the square
a stream for generating
and if so complains to the complainl-dept.
More
Otherwise
if an event
it
returns a stream which has
(tIT’ mlM1 a ec> --> <t2m2 a
the square of the currenf count as its next element
cc’)
and rest which is a stream of squares
occur
in a behavior
either
the same as ml or are known either to !1 or to ml.
m2 are restricted
then,
with the same limit
it Imust be the case that t2 and m2 are
but whose count is one greater than the input count.
I.e. t2 and
to being in the set
Below
a subset of the union
known
to m“.
event
which
to any pre-exlst!ng
that
any pte-exmtlng
for
is the usual
of locality
equahty
operator
print-elements
which prints
For example
(cons-stream-for-squarea
(limit: 3) (count: 1)))
of the actors known to IT and the actors
will
I.e. A is restricted to bem~ a subset of T U M. Any ocher
A
E which refers to a must be causally preceded by the event
created t, We postulate thar each newly created actor is not”
lden~ical
a polymorphic
of any stream which it is given.
(print-elements
An actor aA created bY an event (tT mM a ec) is restricted to knowing
about
we define
the elements
{ml} UTIUMl
actor.
More formally,
the requirement
print
To print-elements
receive
is
The above restrictions
or “compactness< restriction
of a stream
a stream.
Ask the stream for its next.
ac~or x It must be the case that x+a where =
relauon
1, 4, 9, and then print “done.”
If it has a next,
express a kind
receive the stream and bind its first and rest.
for actor systems.
Print the first of the stream.
We
can
arbitrarily
large
computations
knows
demonstrate
amounts
that
of
working
of iterative-factorial
about
relation.
In
iterative-factorial
storage
and observing
the
course
of
not
use
Then print-elements
analyzing
the
If the stream has no next,
does
by
the structure
of the
computation
some
the
tempera ry actors will be created but only one such temporary
needed
at any given
the amount
instant.
of temporary
Generators
This
establishes an upper
print ‘“done.’”
Below
will be
bound
produces
on
square each time
behavior
mod!f]ed
sto) age needed,
To construct
shall
us!ng
4, 9, 16, etc.
Peter
Landln
demonstrate
how
cells by def}ning
to define
generators
m sequence on demand
[1965].
with the polymorphic
The
wjth
Mitchell,
streams
with
Irnmedlately
operator
turning
next
around
operator
u defined
side-effects
N711 as well as with
polymorphic
using
interface
receive
and
a port
[a stream
up to some limit.
with
side effects]
that
It produces the next larger
it is asked for its next returning
by a side effect] as the “rest.”
itself [with
i~
and a count from which to begin producing squares.
which
streams [Lanolin,
the buck to
Return the-port
which is an actor which,
when asked either to produce the next
1971; and
works
be a cell that initially contains the inifial count.
Label the actor whose behavior is defined below as the-port.
or to complain to a complaint-dept if it doesn’t have one,
1965]. The
makes this happen
passing
Let current-count
that use
next which requests
1971; Krutar,
a port for squares,
a sequence of
a limit of how many squares to produce
in such a way that it WIII
[Balzer,
functional
and
with
that produce the squares 1,
Iwo implementations
the next
element.
generators
using a device called streams by
We WIII develop
the same Interface
work
we define
square integers
With and Without Cells
We
without
of the rest of the stream.
checks the contents of current-count
by
to see
if it is greater than the limit,
the-supply
and if so complains to the complaint-dept.
the message
Otherwise it
(next: (ek-cowsldn-to:
to
pohtely
ask
the-complaint-dept
the-supply
for
increments the contents ot the currenf count.
W-owhint-%t))
its
next
Then returns a stream which has
and
to
complain
as its next element
to
the square of
If It doesn’t have a next,
the contents of current-count
A stream consists of two components
element
in the stream, and a rest which
the rest of the elements after the first.
produces
integers
whtch
a first
which is the next
is another
stream that holds
and rest which is the-port.
Note
Below we define a stream that
are squares up to some limit.
that
polymorphic
It produces the
Thus
74
we
have
opet-ator
defined
the
port
in
such
a way
that
the
next can also be used to obtain squares from it.
in many cases the decision of which of the two implementations
of
the
square
generator
reconsidered.
(print-elements
will
to use can often
be deferred
(cons-port-for-squares
cons-stream-for-squares
is
cons-port-for-squares.
it IS “totally
(limit: 3) (count: 1)))
not
exactly
the
same
as
used up” and has no more useful behavior.
built
Into ports.
The burden of providing
if it is desired IS borne by the user of the port.
ports are used as the basic communication
because useful
contents
of a port
debugging
sornetmles
activities
printed
have unfortunate
can always
The
be implemented
applicable
to deflnms
structures
aclors
which
to impfement
(pop the-stack) can rewrn
them either
(next: the-top-of-the-stack
without
technique
Co-routines
to Implementing
for
pass of constraint
generally
programs
consmng
that
Iexjcal
In order
syn[actlc
Using
[m a language
[Hewitt,
cells known
size
style.
muk-pass
organizations
by Conway
cells and
like PAL,
globally
to both
way.
next
to include
passed
m
resume~yntactic and increase the
the
syntax
analyzer
to include
The system N started by sending
Iexlcal
executltrg
Whenever
lrem
L then
the Iexlcal analyzer has parsed the
It can
resume
the
syntax
analyzer
by
the followlng:
to flow
(resume~yntactic
L
(h [message resumesyntactic]
the
mto a
[Valuelexical
control
or CONNIVER]
analyzer
analyzer
messages
to the-lexical-analyzer.
a
Unfortunately,
We assume that there
the lexical
The idea
of Cells Theorem
[’start the-syntax-analyzer]
It is
[1963] to convert
GEDANKEN,
the above scheme
Increase the size of all the messages passed around
as
of this kind
gotos a co-routine
we will
the
of passing transmissions
to translate
to [he one used m [he Ehmmatlon
the lexical
of
the Imphcatlons
and show where It runs mto problems.
Early
gathering,
passes of two-pass a compder
slmllar
resumelexical.
as multj-pass
necessary for information
to explain
messages we shall attempt
the h-calculus
insole
1971;
applications
programming
were mamly organized
to do this m the following
analyzer
of
in that
used by
and Sussman, 1972; Davies, 1972;
were introduced
and
four-
either
at all stages of the processing.
pass complier.
L?.@2syntactic as the value of this syntai rountine.
‘etUrn
systems programming.
popularity
of a pass of urformation
because It IS often
Co-rootlrtes
can be built
and
are often
to be ‘next
Read the contents Of me$sageto-$yntacfic
analysls, ?ncl a pass of hypothesis formation.
recognized
across rhese boundaries
structure
mcreasmg
a dia?ogue-based
Intelligence
heu~ isric progmnls
are inflexible
intelligence
found
which
.
a-syntactic-resume-point:
IS very
and Stelger, 191?] m knowledge-based
founciatjon
separate
For
instead
structure
It can resume the
and then goto the contents of resumelexical.
structures
which can be implemented
1972; McDermott
Bishop,
Altlflcial
control
needs more input
the following:
Update the contents of messageto.lexical
it’
into
artificial
recently
Bobrow-Wegbreit,
syntactic
of data
side-effects.
analyzer
by executing
which is defined below.
(rest: a-stack-without-the-top-element))
are a control
in
have
single
like a variety
the syntactic
analyzer
Update the contents of resume$yntactic to be a-$yntacfic-ras~me-Poiot
is
and Side-effects
programmers
Hewnt,
behave
with or without
n also apphcable
Co-routines
They
used for generators
as the value of this lexical routine.
Return @exical
a value of the form
[such as ltet ation and co-routines]
with or without cells.
are
Read the contents of me$sageto.lexical
the use of cells
sUch as stacks, queues, sets, deques, and bags, making
possible
now
a-lexical-resume-point:
Whenever
of programming
example
the
and then goto the contents of resumesyntactic.
In
lexical
sty7e
the following:
Then update the contents of mes$ageto.~yntactic to be L
as a result
almost as efficiently
has parsed the next lexical item L then
by executing
which is defined below.
primitive
and Side-Effects
dla70~ue
To start the system execute the
Update the contents of resumelexical to be a-lexical-resume-Point
more of a gat-bage collection problem.
Data Structures
The
such a
for successive squares whose sum is an odd prime.
the use of cells as by using cells except that avoiding
imposes
is no
side-effects.
the Iexlcal analyzer
it can resume the analyzer
and can be used for other purposes at the same time
such as searching
Generators
Whenever
then
such as printing
a stream for squares does not change its behavior
of being
Iocattons.
therr goto the contents of ihe cell resumelexical.
of
Debugging
can be painful
contrast
that
There
a system where
the
starting
Update the contents of the cell me$$ageto+exical to be ‘start
of
Once a port for squares has been printed
capablhty
capability
respective
following:
also prwtf 1, 4, 9, and then print “done.” However, the behavior
“backup”
to their
or even later
For example
the h-calculus
and the
‘esumesyntacticl))
the above
scheme has a bug in that by the rules of
the value
of the compiler:
[Valuelexical ‘esumesyntacticl
messageto+exical:
cell for messages to lexical analyzer
will
messageto-~yntactic:
cell for messages to syntactic analyzer
resumelexical: ceil for resume-f] otnts of Iexlcal analyzer
rasume~yntactic:
The
be sent to rhe syntax
bug
Eandin’s
cell for resume-f zolnts of syntactic analyzer
can
be fixed
J operator
analyzer
to produce
as follows:
(let
The
sysrem IS initialized
by setting
{[back-to-lexical
resurnelexieal and re$urne~yntactic
75
= J(X [x] x)])
instead of to the lexical analyzer!
an efficient
solution
by using
~resumegyfltactic
L
Bil>7iography
(X [message resume.-yn~acl;c]
Balzer,
[valuelexical resutrre~yn,actic]))))
(back-to-lexical
Using
effects
tmnsmmons
Involved
analyzers
we sh~ll indicate
In co-routinlng
without
how to eliminate
between
the syntactic
severe loss of efficiency.
to the-lexical-analyzer.
next
Birstwhistle
the side
To start the system send
Bobrow,
ihe-syntax-analyzer]
Whenever
“PORTS-
A Method
for Dynamic
and Job Control”
et al. “SIM ULA
Begin”
and
Ben.
Interprogram
1971SJCC.
1974.
and lexical
the message
[’dart
R. M.
Communication
the lexical analyzer has parsed the
D.
Wegbreit,
Structures
for
Languages”
IJCAI-73.
Conway,
Iex Ical item L, then It can resume the syntax analyzer by sending
M.
E,
Artificial
CACM.
Model
for
Control
Programming
August, 1973.
“Design
Conlpller
“A
Intelligence
of a Separable
Transition-Diagram
July, 1963.
the transmmlon
Davies,
(apply:
L
D.
J. M.
Report
(then-to:
continuation)]
“POPLER
No.
At-tlf]clal
1.5 Reference
1. Theoretical
Intelligence,
Manuaf”
Psychology
University
of
Unit,
TPU
School
Edinburgh.
of
M? Y,<
1973.
to the-syntax-analyzer
transmissions
lexical
from
the
form
continuation
the syntax analyzer
analyzer
fl-om
where
Whenever
lexical
analyzer
is an actor which
receives
and resumes the work of the
the syntax
analyzer
Dljkstra,
needs more input
It sends a transmission
E.
W.
Fischer,
continuation))
Hewitt,
Cel 7s be Used?
We
would
activity
use
to
re-emphasize
using the algorithm
1s just as pointless
the
goto
variables,
construct
Instead
advantages
to
ehmmate
by
subsmuting
cells.
away from
the development
defining
Steiger,
since the
readable
not
Imposes
In
people.
cells
circumvents
some additional
for
on
m QA-4 [Rulifson,
Hoare,
C.
Hoare,
Cahf.
pltfails
of
collection
and
side-effects
overhead.
Knuth,
a great
E.
R.
Landin,
“An
Naval
Research.
Marr,
Allen
comments
content
,We would
Brown,
many
which
led to substantial
for
Computer
An Operating
System Structuring
17,10. Oct. 1974
Comments
on
Control”
“Conversational
A..
Notices.
P. J. “A
a
Problem
CACM
9, 5.
in
May
Systems
Programming”
Dec. 1971.
Correspondence
Lambda-Notation”
Mazurkiewicz,
McCarthy,
“proving
A.
Information
et al, 1974].
Artificial
a contract
Iihe to thank
Ben Kulpers
Basis
Algorithms
and Control.
J. “A Formal
Formal
Language
Between
CACM.
60 and
by Tail
Functions”
1971.
Description
Description
North
ALGOL
February, 1965.
of a Subset of Algol”
Languages
Holland
in
for Computer
Publishing
Company.
1964.
by the MIT
under
IJCAI-73.
12,10. Oct. 1969.
Programmmg
Programming,
MAC
Phd.
Modular
Intelligence”
Axiomatic
“Addmonal
Church’s
Acknowledgements
Project
Models for a Robot
Artificial
CACM
CACM
SIGPLAN
apphcatlons
req{lire parallel access to the data-base on the part
of
several acuvators.
In all such cases the cells used should be encased
within
some kind of modular
synchronization
primitive
such as
[Hewitt
D
Krutar,
but
like data
and
[Using
Proving
Aug, 1973. pp. 235-245.
R.
Concurrent
The proposal
data-base
research was sponsored
for
and co-routines,
using
the use of cells m actors that behave
This
for
C. A. R. “Monltots:
and seem more
controversial
because
A.
Concept”
plans in
avoid
Laboratory
Analysis
A Language
P., and Sretger, R. “A Universal
Programmmg”
the use of cells seems very.
In the case of generators
1974] or ser ia 7izers
Theoretical
}972],
Bishop,
more
[Hoare,
Conference
1971.
Formalism
Stanford,
by
bases
nron i tors
ACM
1966.
are just as efficient
garba~e
and
and Manipulating
C., Bishop
and Hewitt, 1974],
the
Concurrent
this
as illustrated
between PLANNER-73
avoids
Schemata”
PLANNER:
February,
Actor
artificial
to cornple[ely
seems
Hewitt,
that
boolean
is needed
formalisms
mechanism
sryle that
programs
to many
using
and
In terms of actors [Hewitt,
terms of message passing [Smith
A programming
Such
programs
loops
heavy reliance on side-effects
worlds
in
that has certain definite
research
sh[ft
1973], and the communtcatlon
att!-active
while
Problem
8,9. Sept, 1965.
advocate
we discussed above can always
Further
of the context
PLANNER
not
The theorem does not imply that the
which
q{iestlon.
Therehas beena
intelligence
we do
described in the~oof.
a style of programming
style of programrmng
used
that
of
Theorems
as Systematicaity rewriting
must be developed
cllalogue
be
Ilke
programs
Calculus
“Description
C.
MIT.
rewriting
a
Asser’tlons about Programs” Jan. 1972.
Schemata]
When shou7d
CACM
M, J. “Lambda
on Proving
‘next
(then-to:
of
Contof’
of the following
to the-lexical-analyzer
(apply:
“Sohmon
Programming
Marilyn
from
Intelligence
the Office
McLennan,
and Drew McDermott
improvements
McDernlott,
of
D.
Reference
V.,
and
Manuaf’
Sussman
Al
G.
J.
“The
Conniver
Memo No. 259. 1972.
David
for helpful
m the form
Mitchell,
and
J. G. “The
Modular
Programming
and Ports” NIC 7359. June, 1971.
of th}s paper,
76
System: Processes
Ruhfson.
A
Johns
F, Derkwn
Procedural
Stanford.
J. A., and Waldinger
Calculus
November
for
Intuitive
Laboratory.
Smnh,
Brian
Phd.
1972.
Scott, D. and Strachey, C. “Towards
for Computer
R. J. “QA4
Reasoning”
Languages”
a Mathematical
Oxford
University
Semantics
Computing
August, 1971.
and
Apprentice”
vanWijngaarrlen,
ALGOL-6$’
Hewitt,
Carl.
AIS B Conference.
A. , “Report
Mathematische
“Towards a Programming
July 1974.
on the Algorithmic
Centrum.
Language
1969,
77
© Copyright 2026 Paperzz