Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Rivard F.Smalltalk.A reflective language

.pdf
Скачиваний:
13
Добавлен:
23.08.2013
Размер:
379.35 Кб
Скачать

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ecole des Mines de NantesLaboratoireFred& ObjeRivardJul TechnologyVerne

 

International Inc.

 

 

 

 

 

 

 

 

 

 

ls

 

 

 

 

re

 

.

w it en in

 

elf. It o

 

 

 

 

 

 

 

 

advan

 

 

 

 

 

 

rivard@infoFran ongs.emnto.frthe eld of languages

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ges suc

 

 

 

 

late

 

 

 

da

 

 

its

 

 

wn executi

.

ting the state of the

 

 

 

la ge p

rtability

 

ynamicity,

 

fully uni ed world, graph

 

g am

 

 

 

 

 

 

 

 

 

 

There arewith

aspectsprof

ical user interface build

 

 

 

,

 

 

 

 

to datab

 

 

 

s, pow-

suc

 

man pulatiion

 

 

 

: in

 

wn

 

 

 

 

 

 

 

 

d

intercesction.

Abstractit that

underlies

 

all

 

 

 

featur

:

industr al

 

 

 

 

.

no

well de ned

 

about

 

 

 

 

 

 

ate. In

issue

th

the

ni can

applic

 

 

 

 

,

based b th

our

 

 

 

 

and

 

 

(and

 

an

 

 

tercodingat

 

 

 

1

 

 

Introduction

 

 

all alk is almost en irely

reasonfacilitiesvide her in

 

ustrial object-oriented languages,Althoughsuctages

As in the Li

 

 

 

 

trad tion, S

 

 

 

\Re ec

 

 

 

 

 

is the abilit

 

 

 

of

 

 

 

 

 

 

 

to man pu

erful devel

 

 

 

 

 

 

tools,

 

conn. In this paper

 

w

 

 

 

 

 

 

as

In osp ction

 

 

 

 

the

 

 

 

y of

thatpr

programto observ

 

d

W

 

qu te

ne of its

 

 

 

 

 

 

tions

 

in the rst part

 

 

bility of

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rospecdify

its

 

wn

 

xecurcession st te

Small alk.

 

 

 

W

 

xpade nimportanthesev jor aspects

 

 

 

discusil:

 

 

requireeasonmec abilitm for

 

 

 

 

 

 

 

 

 

 

 

ed

 

 

 

 

pmen

 

 

 

 

 

 

 

 

 

ng

 

 

 

beha

 

 

 

 

 

 

 

rep

 

[DBW93].

 

has one

 

 

most complete sets of language

metaw in

 

erations,nd fullysendivcationllustratep pre/pos

 

 

Reflectioncondit ons in

or al duringits

 

 

this p

 

go

 

 

 

 

 

 

 

 

 

the

di erenctionre ctiv

 

 

 

aspects

of

 

 

f

methingterpretati

 

 

 

 

 

or

 

mean ng.

 

 

Both

 

s-

 

 

 

ta

 

 

 

throughthe rs

 

 

 

 

 

ofthe execvior stack

 

 

Even

 

 

 

the

 

 

 

w

represenin

 

 

 

 

wh c

 

 

 

 

 

 

 

 

frame of each pr

 

 

 

.

 

 

W

 

 

 

 

 

 

 

 

 

use wthe sig-

Smalluc

of

 

the

 

 

 

 

 

of full

 

 

re ection [FJ89]e. ectivTh

s

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

cl

 

 

 

s/m

 

 

 

 

model,

paper,

pectsda a; pro programdiwn suchan

enc

 

din

is call d rei cation"

research experi nce .

 

In the

secondaclassestheir of the

its

xamination b

 

 

thprecise

 

 

 

 

 

 

community as

 

whol ),

compi mpiler,and the developmenextensionsvironmenthe.

 

 

 

 

 

 

 

 

 

 

 

 

 

ha

 

 

 

eristic

 

is

 

responsible for

 

 

most of its

languageadv

 

 

 

model, the

 

 

 

 

alk

 

is

not

 

 

fully

 

 

 

 

v due to

th

 

 

pragmat c

 

 

 

troducealk

 

 

 

ealissagewith

 

 

 

 

of

 

 

 

 

 

 

 

 

 

 

 

of an

 

 

 

language in w d

 

 

 

 

 

 

use.

 

 

 

 

pro-

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

of e iency

[GR83],re ectivits

 

 

ectivspreadfacilities

 

Smallimportalk and org nized

 

 

 

 

ta-

 

 

 

el objects rep

 

Whatsuc as lists.

 

 

 

 

aking

 

 

trivi

 

 

l ex mple of

 

the addi-

on y

 

 

 

 

derives

 

 

 

 

 

 

 

 

 

 

 

rgely from be ng

 

 

 

ot

C++ and Ada95.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tr

ngu ge but

 

 

 

 

 

 

an op rating system

 

and

 

 

 

de

 

 

 

 

probably

 

 

ccounts for

 

 

 

 

 

 

large

 

 

 

of

 

the

suc

Li

 

 

 

ditio

 

 

it is

 

 

 

aboutsuccessen ir

ly wri ten in

 

ts lf.

 

Thi

 

ss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prelopmenerty makes it

 

almopen syst

 

ultipleis

 

 

 

i y

extend

 

 

 

 

the

early

 

Lisp

 

in

 

 

 

 

 

 

 

se

 

 

 

part eir

 

one

can

able.

 

The

xtremelytation of

 

 

 

thaalk

 

[P r94b]1

itself

rived

dialects,

 

is

 

 

 

 

Lisp

 

 

 

 

with which

v

 

 

 

 

 

environmenitsas well as produci

 

 

 

applications

1.1

of

F llowing

 

 

 

 

traditiontermsc bsimpledesribobjects

resenting the class

s,

 

 

 

 

tho s,Smallxical closures, proce ses,

tion

 

wo

 

 

 

mbers,

 

 

 

 

 

 

 

 

is

truc ured

 

 

 

an object-

ri

 

 

 

program, ex

 

essed in

describe and build prog greatin

 

 

 

 

 

 

of

 

 

 

 

 

 

 

 

 

which are

 

 

 

 

 

aspect

rtable on

 

 

 

 

platforms.

 

 

 

 

he

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

st

 

 

 

 

 

 

 

 

 

 

 

 

 

 

he

 

anguage is that, in

 

Thus, one can consi programsterpreters

 

 

 

 

data and m y

 

 

In this paper, Smalltalkaroundesignates theleversion Visual-

 

 

 

 

 

 

about itself. The idea follows that regularprogram could see

Works 2.0 of ParcPlace.

 

 

 

 

 

 

 

Smalltalk be

 

compilers, and ev anthe stack frames.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(cons '+ '(1 2))

 

 

 

 

 

 

 

 

 

 

 

 

arhegulary value1@2datamatchesasrepanis. Takingesillustration,. Morts thethecreationr,thew xternalexecutionofthesimplehatrepresentationvaluecreatesofobj it1.sucprendof

whicbepointation,accessedobjreturits inctview. Anrnaled.xactlyobjectasThe pointernalusingmayxpression,ofprogramhac repremessagetextualturnsentationthatreprthiscanansentaalsoexhe,

p

 

 

 

 

whose

 

 

 

 

ion c eates an object simil

 

it

self. Thus

(1@2) storeStri

theharactersturns the string 'Point

x:

 

 

y: 2'. Exp icitly ca li

 

 

he regularstoreStringevaluexactly

ing C mpiler

evalequena

 

'...aString...', the evalua-

tionressionf this

next

 

 

 

retu ns true:

 

 

 

 

 

 

(1@2)

= (Compiler evaluate:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

((1@2)stringor

String ))

 

 

 

 

 

Classes,

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

)true

 

 

 

 

 

 

 

 

 

 

 

compl x objects, also have a textual

 

 

, w

whiccan be ob ai

 

 

by sending the definit on

representation.

 

 

 

 

 

 

 

#Point

 

 

 

 

 

 

Arithmet

 

 

 

 

lue su clas

 

 

 

 

 

 

 

 

 

 

 

 

instanareV

 

iableNames:

 

'x

 

 

 

 

 

 

mebl

 

 

 

 

 

lassVar ableN

 

 

 

''

 

 

 

 

 

 

mainly

 

block, use expressionhe inth rnal represen ion, whic

class.

 

 

us

 

 

 

reiv lua io

 

of

 

 

 

 

 

the same s ringPointwhe

obj ct (a clategoryss) tha

 

matcurns exac

 

 

 

 

 

 

 

 

poolDic

 

 

arieses:''

 

 

 

 

 

of

 

 

 

 

 

 

 

 

to

 

 

bov

 

:xt'Gr

phics-Geometry'

the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d obj ct

 

 

 

t

 

represents

 

 

 

 

 

The Smalldefiniti code

theorede nitionin what is

 

 

 

 

 

 

,

 

 

 

the corre

 

 

(appro

 

 

 

 

o

 

 

Lisp lam

 

 

 

-

 

 

 

 

 

. As forclass ses,

tex returnscalledpre

 

thods

and lex cal clonsures,

d

 

 

o endiunde

 

rospectivnamedoc -

 

ssages. [:x j x+1] is

.

quiv

 

 

 

ximately)to the

 

 

 

(x)

ask

 

for its

 

 

be

 

 

 

just bly

 

 

g int

 

 

sen ationbdam

 

 

 

 

 

 

 

 

 

(+ x 1))

Lisp

 

 

 

 

ned. It is represented(lambday object

comprises

 

bytecodes, as well as

 

rnaltextuald compiler

(which is

ti n. In order

 

 

get

ir

 

xt

rnal

 

 

 

rep

epresenan on,

fr

 

whicwhone canobtaalkfor its ext

 

 

 

 

extual

 

 

 

ta

(textuallyandSmallmanipulalkor programinterting theally)maydi. erenreasonobjectsaboutthatitselfrepresenregardingit

ble\Fir1.2 t, Metathe basichods.-Objectslemenuse heseof func

 

nsreprammingaresenmadelanfragccu gessi

-

of pr gr m, th y

 

re giv

 

 

thespe ial

ut

me of

 

vior

jects. S

ond, indivi

 

ual

 

 

 

 

 

ab

 

 

 

 

 

 

the langu ge

 

 

 

 

enc genericded

objectsol op

 

ird,

on

 

classes,

cts-are meta bject

 

 

is

 

. T

 

menthesec

kind

 

f

behavi

 

t,

 

 

 

 

 

 

 

 

 

cisionsas

 

 

 

 

behw

ich yts

down

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

nguage

 

 

form of

Met

 

 

Ordina

y

 

 

 

 

 

 

 

 

 

are usedprotocmodelratingthe

 

world.

-objec

 

 

describethe defaultse or inary created,obj cts. Asmetaob

 

sequ nce,metaobje-

 

 

 

 

 

 

 

mostly describe Smallthe

 

lkcon-

 

SiggramNodeBuildel, Exc pti

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m hods

 

the

protof default." [KdRB91]

 

 

 

 

 

 

 

 

 

BlockClosurObjectMeCompiler,y MemoryPscription,liProcess,y, WeakArray

 

 

tities.

 

 

W

 

 

quote

non-

xhaustively major

metal-object

classes

 

 

tu

 

 

objectsy

 

 

t):

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Mth(classiass,ClassubjesBuilder

 

 

 

 

 

 

 

 

 

 

Behavior,Pars :

 

 

 

 

 

 

 

D

 

r,

 

deStr am

 

 

 

 

 

 

2

 

em ntics:

 

 

 

 

 

 

 

 

 

 

 

 

 

Class,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mpiledBlock, Mess ge,

 

 

 

 

mpi edMethod,

 

 

 

 

 

Con xt,

 

 

 

ckCon

 

Dec

 

 

er, ProgamNode,

 

 

 

 

 

 

 

xt,

 

 

 

 

 

 

 

 

 

 

 

SystemMethodOrga ize

 

y,

ClassOr

 

 

 

 

 

 

 

 

 

4

 

 

 

trol

 

State

:

Proc

 

 

 

rS h duler

 

 

 

 

 

5

Resources:

 

 

 

 

 

 

 

 

 

Nam Scop

 

PoolDictionary

8.

Environmen :

 

 

 

 

 

 

 

6

Naming:

 

 

 

 

 

 

 

 

 

 

 

 

7

Browser,DictionaI sp ctor,

 

Debugganizer,

 

 

 

 

 

Libraries:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

can be consideredassociatedthe Smallthesealk MOP.

 

 

 

 

 

The methods

 

 

 

 

 

 

 

 

 

 

 

with

 

 

classes formalize what

Smallrofbehacustervolrethehavingvappiornmodel,thealkin. icapresenSWmosttamaniputoallthecobjectsticimportanedusialkcompilermetaations,and,g modealingsucwith-operationsretrweirandtheectivbjectclasintroducewistatethemocur.andsubjects:.redev(small).AsWretheiranlopmpre/postpropectiodescribequoillusextensiructure, signifrationwenviytherefoofs-,

cecan releases, which w

 

 

 

sign of adaptability

ditionsnew software includegineeconsiderring hallenges.

 

 

 

5.

r

Re ectivfacili ies

of Small

alk

wen concentrate on

Control State:

aspectsrocesses regular

.

 

2

 

 

then going

 

 

 

 

 

survey

 

 

Rath

 

 

hrough comp ete

umeration of all

2

 

 

tructure: classes regular

objects,

 

 

heritanceoperationsree, the class Object as methods for:

 

 

1

 

 

 

 

-Operati

es:

 

 

objects as

 

 

the

most importan

 

 

 

 

 

as

regular

 

 

4

Message

Sending: messregularges

 

 

ained by

he

bject. [: : :] Th y

 

ermit thingsmetaobjects,to be d

3

Semta

tics: com

ilers

 

 

objects,

 

 

Metaare

 

normallyOperationspossibl (page 195 of [LP90]).

 

2.1

(wh

errors occur),

 

that provide

 

 

 

-

Meta-

re

 

 

 

 

Major me

-operations are de ned in

 

e rootinformationof the -

about an

bject

 

op

 

ed to informa ion directly

-

2.1.1

 

Model

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

meta representation

 

 

 

 

 

format,ishaObjectvthator.irboth.theBut,instdescclaallOwnershangeClobjectnceassribela ofes,vytheidenmustressToThaobject,receiver,ametrictitydeionphysicaltOf:andeofthethisusstructureameitsthforbe-

 

 

 

 

 

ce v r,

 

 

arra

of

all objects

 

 

 

 

 

 

 

 

 

 

 

the

 

 

 

 

returns

an

 

 

identityHash

 

 

 

 

 

 

 

 

 

. It

s

 

 

 

 

 

 

 

 

 

 

 

eger ranged in 0..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

implemein

 

dictionary cla ses

 

which provid

 

 

addressingkeys,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

classysalw

{

Obj ct>>#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

beArrayneducedoperationsdichotomy of Whileoices.

 

 

 

 

 

 

 

 

 

 

 

 

e cien

 

 

access to the

 

 

 

 

of referencinga collect onused

 

 

 

 

swaps references betweenobjectsw

 

16383

 

 

 

 

 

 

 

Thesesuc

 

 

 

 

objects (the re

 

 

 

 

 

 

 

tStri

gundersori spect.

 

 

 

 

 

 

some

cl

ss

 

claasses basnding

 

theirbecome:a(or not)

 

 

 

 

 

 

 

as

 

 

cannot

 

 

 

m

ce v

 

 

 

nd the

 

 

 

 

id

 

an

object

 

 

 

 

 

 

 

de n

 

 

 

 

 

 

 

 

 

 

 

 

t).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

only

 

m ta-objectsargum(Cl ss,

Compiler, : : :), oth r

 

 

 

depri

 

 

 

sta

ce

 

 

 

con ext in w

 

 

 

 

they are us d

Inspector

 

 

 

 

 

 

and its

 

 

 

 

 

nds

.

 

 

 

 

 

 

 

 

 

thods

 

oo,

 

 

, bu an object

 

 

 

 

 

 

 

 

 

ordinary

 

 

 

 

 

(Object,

 

 

 

 

 

(cf 2.3),

 

 

). There

re, stamping labels

2.1.2

 

Usage

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#selector method is implemenubclassted y the NameOfClasinstancesclass.

 

 

 

tools

used

 

 

 

 

 

 

 

rosp

us

he

 

S

 

reallectivalk system:

 

 

 

ods.

 

Theinspector

 

 

 

hemodifyspected

 

 

object

 

 

 

tros

 

ection is

 

the

 

 

 

 

 

ence

 

of

 

 

 

 

 

 

 

,

 

f

 

nd

 

so

 

 

 

rst a plications using

 

s

 

 

 

 

ural

 

 

its

 

 

 

cilities

 

 

 

structure of an

 

 

 

 

 

 

 

 

 

and

 

 

o

 

 

 

 

 

 

 

tance vari

-

able values,

 

using Object>>

 

 

 

tance

 

 

 

(put:)

 

 

 

(Object>>#class) to

 

gtru

 

 

 

 

 

 

 

variable

nameclass

3Dictionary, IdentityDictionay#instVarAt:cla ses.

 

 

look

 

 

 

t

 

 

 

An

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bles

 

the

user

 

on

 

 

that

 

 

2

NameOfClass>>object,sel or:

 

this

sy tax

expres

 

 

 

 

the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

:

1 put:ames5

 

 

) ('x'25@43

'y')

 

 

 

 

 

(3@4) class

 

 

 

 

 

 

 

dictioizedA hierarchangeSmpspectionaries,instVarAtledCodtInspecetcofallInstVarNinstSize. p orsularois objects,available,suchallowingas collections,special-

InspectorCo xtInsp cto

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dic

 

 

 

 

 

ctor

ionInspector

 

 

 

 

 

 

 

 

 

 

Sequ

 

onaryInspenc abl

 

 

 

 

 

progr m

o provideOrderedCollectionomp c tion both of

the

instancdescribesStructure. A lass named

 

 

 

 

ande nes

 

basic

be-

2.2

 

 

 

 

 

 

 

 

 

 

 

Inspector

 

 

 

 

 

 

 

 

 

 

ctural

 

ection impl es the

 

bility

 

 

 

langu

ge

St

 

 

 

 

 

 

 

 

curren ly bei

g

 

 

 

 

 

well as of its

 

abstract

d ta

y

 

e[DM95].

Smalletealk as a uni ed languag

 

only ma

nipula

 

 

obje tsexecuted. E h obj

 

 

is

 

 

instance of

 

 

 

 

 

at

 

 

 

 

 

both

he behavior

 

 

 

the structure ofclassit

havior of every

 

 

of

theObjectsys em, such as accessing

th

 

 

class of an object.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.1

 

Model

 

 

 

 

are4

 

 

 

rib d by ot

er (r gu

gle

 

 

 

 

 

 

regular

 

 

 

 

 

 

 

 

instance

(exceptobjects ssescla

des

 

volv d in

 

 

s

kernel

lar)

 

 

sses called

 

tacl

 

 

 

.

 

A

meta

 

 

 

 

 

sin-

of

 

S

 

.

 

 

 

). It

establish s

 

 

 

es follo

 

 

the one

t

sc

 

 

 

 

 

Inh ritance on

 

etacla

 

 

 

ClassesthemsSmtacar[Gr4MSmallcomposed89],lvestaclassalk.butalkcompositionevalkdehoicfor.(cf-nition:It80vmaFiguresuitserydaschema,ruleclassesinduceymost1),.devandThiselopmwhoseclassedsstatinoupleing.chemahiernsMetat,hothestancesclawrchyheisSmalllass/metpknoragmaticdisplayclasseswnn alkict

ulcribes,thed Objectnewy behaviorw (meta)classes. InofenabliinhderitsforrespectivobjectandfrommetClcrsy nam. bIndareparticClasscces

ofinclsibleparti. ThisgreAularsionmepropertmethod,.aclassesstoTwMetaclassy ngabstrareodfteninctgivenclassancesclassinstisofthMetlsoclassestidion,dclasstionitioninoftaofandce

and

 

 

m

 

 

 

 

 

 

 

 

regroup

 

th

co monBehavibeha or

betw

 

 

classes and classes

(for exanample

new is

de-

niteedClassDescription).

y v lasses:

 

 

 

 

 

 

 

is self-des ribed with

 

 

 

 

 

 

 

 

MetaclassObje

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

provides default b havior common to all

 

 

 

 

 

their ph

 

 

 

 

represen

 

 

 

 

which is knownbjects,y the

 

 

 

 

ysicalcriptionh

category

 

 

 

 

 

 

 

 

or meth-

 

describes regularclass/metaclasbehas vior.

 

 

 

 

 

 

S

allBehavioralk

 

rtual

tation,hine

k

el

of Small alk

 

 

Finally

the

 

 

ma

behavior

M

nes the m

 

 

 

for

cla

 

especi lly

 

taclass

 

 

 

 

 

 

behaviviorr,

 

 

 

 

 

 

 

 

B

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ods, named instance variables, anganizd asavtionses, (fileOut)

 

implem

 

 

ts common

beha

 

 

 

 

for

Class

and

 

Class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mechanism,

 

 

ass/metaclass

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

has

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tensiv

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

onologically

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r -kernelof76in[Ing78]kernelpragmatic.wereIndevelopment. orderSmallttooriginalkeepus-,

 

 

 

 

 

 

 

everallsthatc yea-alk80h

 

 

 

 

 

 

 

 

 

: inherit

nce

 

 

 

 

 

 

 

 

Small

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fromandmodalltalkstalk

 

 

 

 

 

 

 

 

 

 

 

72resultingFi [KG76]simpleThe1: Small

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

: inst

nt

tion

 

 

 

 

Object

 

 

 

 

 

 

 

 

Obje t

a s

 

 

 

 

 

 

 

 

 

 

Behavior

 

 

 

 

 

Behavior c ass

 

 

 

 

 

 

 

 

ClassDescription

 

 

 

 

Cl ssDe

 

ription class

 

 

 

 

 

 

 

 

 

 

 

M t c ass

 

Metaclass

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

class

 

 

 

 

 

clasinagesicallyerms, especiallymnitiredi bjednitihangstructorders, existingvariableresranmatcndeingamestancesprthesystvendeconmnustctstionname.besistencyWhenof cona

newur (iclass. .,.from

instanceatesnewof modifyilass thatwithrepexistingthe corrtheobject,oldsontruc-

 

 

 

 

 

lls

 

 

 

obje

 

 

 

ith the v aces f

 

old one.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lltalkofionen2ed:vari..1istirethe.ndat1)ofIt)6-.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

instancegroupe

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Smrehewhichclassesreplacingthe(cfadd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssifiniza

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

seorgaccessprotoco.ofbytheiv

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

oinstanceclassin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

purpcations,in.erprimiinane:cla

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

wvalueorganizationprobecome:>>classesmoditotheironesItpurpovidesbcompilclassthemselvnablesthroughoutdynamically

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ne.b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

iptionSystemOrganiesclass.tstheirthe

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

en

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

repreClassOrganizerwithaccordingthe,thesucstruturalwhomethodsheldtoclathe

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

holdsorallowsizationof

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ce

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

of(ClassDescacwtheInstead

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Usagealso

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nizationcategoriblClassOrganizerinstItclassMethods. alkobjeced

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

timeoldordinary.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

subclassorgevTheruncodeSmallablesystemThItClassBuilderMethodDictionaryheoaritothenanprthods

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.2

 

 

 

 

 

 

use of the selfxpressed

kernel is

to

 

x

 

Ante d

 

it

 

 

 

 

 

.

 

 

 

order

 

matc

 

new

ap

ication

 

 

 

 

 

 

 

ext nsi

 

.

 

As

 

 

 

her

 

ypical

exampl , Cla

 

 

 

alk

 

sub

 

 

ss:

 

stawingreiVariableNames:c

sVariableNdomainsmes:

Our

 

 

 

xt pre/post

condi

 

ons exam

(cf

3)

 

is

 

such

great be

e t allo

 

 

 

using d dicated

 

 

 

ls:

link ,

 

fo lo

 

 

 

the

 

 

 

trospectd

 

 

(an

sesnce-

[C i90]

 

 

pr poses anoexperimen

 

 

ext

 

 

sion

of

 

Small alk) to

 

study explicit metacla

 

 

 

pro

 

 

 

 

er. It

 

manipula es classes and

aclasses as reg

 

stance

v

 

.

 

 

.

it

can

 

vestigplatformme

ationde

iti

 

 

Browul

 

 

 

 

 

 

Thus,

 

 

 

Clas

 

Defi ition>>#d finition and their inherit

 

 

 

f

mmi

g.

 

But even

 

 

in

 

he

languag , rei

 

 

 

is

 

6Theseariablesre actually pointer manipulationsuperclass/subclas

 

 

 

 

 

poolDiobjectstiowingna es:category:

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

organizationcol,Ation,listtextclasspanecommenshowingfor, t,hodtheclass: : :selectorspro.edition,names,ocolsclassofof selectedde nitionprotoclass,edi-

Categ ries C ss wserProtoco suc M hods

Pointtgivsenders(lookprovideFigure)ofsendingsupercfindSecompilerCThe2Ar#(PIdeSemancompilationatoel(ess:SmallookObjthmntctorsreissagenti>>itySet(clmeintoasector:dMethodAt:ctrticValuec+ticssslalktionpresenObjectssage)llforbrocien#xmethodsof#classand#y>>Textclasinutilities#+#transposclass)messagesw givenforhmatctheallowsthemethod)di(lhi:erennesokas:theg: aperformingimplemgivenlanguagetors.panesna. mene),a-

2.3

Onereiitly edgivesof thethesaliensemanticsprocessfeaturesof .theofSincelanguageSmalltalky compilerit compiles,is theimplicfullyand-

Nextsigncompilatofgnablestiectloedy,wThisSmalltoonpionlethe-cestimecanregularapproac.alklanguageocessxtendSmallMwhatOintoOP.theprogramustcanalk[LKRR92],forsmallTh bes,compilationusicomparhicsidwhcurrendeds,ishcauusestofullyOOallydprrediscononedeexrss.

what

 

is

-time MOP. But

 

 

 

 

 

h indepevy

eractionbreakstec n

 

 

 

 

 

rt

 

 

f the

 

 

 

 

 

 

 

 

and

 

 

 

 

 

 

 

is not

 

omthetim s

mak

 

 

 

the us

 

 

 

f this

 

 

 

 

the-

 

 

 

 

MOP di cult. The

 

 

re th

 

 

 

authors of [HJ95]compilercurrenopos whatmore para

 

trizre

 

 

 

 

 

 

 

 

r. describeTh

interc nn

 

 

 

 

 

 

 

betw

 

 

 

the

ompi

lation phase

 

and the

Sma

 

itslk

 

 

 

 

 

 

 

 

 

ge as

 

 

 

 

 

 

 

cs

 

 

compilation process

 

 

 

 

 

the

 

 

regular

do: me thod

 

 

for

 

 

the

argum

 

 

 

evalu ctionorder.

 

 

In

 

ssage at

 

y

 

 

 

 

 

 

 

 

 

 

used

to

 

 

ld

 

 

 

 

argumencompilationof

is d

 

 

 

 

 

 

 

 

str

 

 

edbigy the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xampleen, whicwholedis

 

ompile ti

ord

is

 

 

herefore

 

 

 

 

 

ta-object(cf 1.2)

but other

cusses

en

 

 

 

 

of argu

 

nextvsmallluatio

 

 

 

of

 

 

mess

 

 

send.

f

 

 

 

 

the Sequence bleCo le

 

 

 

 

 

 

 

 

class,

allowing

 

 

Thet

comp lation pro

 

 

 

 

 

 

 

 

 

 

 

 

it de nes

 

he semthat,semanics

 

gheat

 

 

rder.

 

Ther fore, it de nes

 

 

 

left to r gh

 

p rt of

Sequ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lemenclass

can be seen as

 

of th

 

nceableCollecevaluation

order.

 

 

Notice that

 

he

 

-

arrays would no

 

 

 

cessarilybecausemeta-

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

code

 

it

 

 

 

 

 

 

 

 

 

 

re describ objectsy class hier -

 

 

 

 

 

rser:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arse

 

tree

whose nodes

are

cing s.

 

argumeW st

 

 

 

 

 

 

 

 

them,

 

and

 

 

 

 

 

 

 

proceed

pars

 

 

 

thatw

 

 

pa

 

 

 

 

ed parts of

 

 

 

compilation

 

 

 

ss,

 

2.3.1

 

 

it onlygeneration,reqproduc method de nitiosyn. A method

 

 

 

 

Model

 

 

 

 

Th

 

 

Small alk

 

 

 

 

tax is

conci e,

 

 

 

Progra Node.

 

 

 

 

 

 

 

 

 

m

 

optionalt, message send ng and

inst

 

 

 

ce v

riableargumenccess.

 

 

and

 

 

 

 

 

 

 

 

 

 

 

xpres

 

an

list.

 

 

 

 

 

 

 

 

methodns are

 

ssig

 

Thet eir

 

 

mes followedescribeeyw

 

optio

 

 

 

 

tem

 

 

raries list

 

 

 

 

order of ex

 

 

 

 

 

for compiling

 

 

 

 

 

 

 

source.

ob-

 

 

 

(self,

 

 

 

 

 

 

 

 

 

thisContext)

 

ted syntactical

 

 

7The pattern may be omitted for evaluation.

with

 

 

 

 

with

 

 

 

described

by

 

 

k

 

 

 

ord associ

 

 

 

 

 

 

 

 

 

 

 

 

jects (truesuper,false, nil #( ...

 

 

 

Array...), [...and

 

 

 

The

 

 

7

 

 

r/compiler also deExpressines eudo-variableis

 

 

 

block closure...

 

 

 

]),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Smallnextatip MethodhierarcalkodesynBuilders: presenemitEffect:tacticalsyn.theacticrulesThclassesy. holdnodesthatemitValuetheformalizecodebuiltgener. Ttbyhe-

 

ProgramNodeStatemenara r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Valu

 

Node

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rithm

 

ticLo pNode

 

 

 

 

 

 

 

 

 

 

 

 

 

methods deNode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ret

onditionalct

 

 

 

 

 

ne

 

 

expansi

8 and

 

 

 

 

nary hol

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CeafNod

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

BlockNode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ignm

tN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

pariableNode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Loo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LiteralNode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

The MessagequenceNodeclass represents message

 

 

 

 

 

 

 

 

 

 

 

 

 

M ssageNode

 

 

 

 

ion mechanism

 

 

It implemen

 

 

 

 

 

y

 

 

 

cro

 

 

 

 

 

 

mitValue:is C

mpiledMethod

messageN

 

 

 

tr es

 

eed to

 

 

 

 

 

 

 

 

 

 

 

genera

hen

 

 

 

 

 

 

associatedx

codeits lf.

 

It

 

 

proceeds

 

 

rstgula

 

 

 

 

 

 

 

 

 

 

:

b

 

eCodexpansion,MacroSelectorscum during

code

 

gen rating. They

 

 

ld the compila

 

ncon

xtending

 

 

code ge

 

eration

of

its

 

 

 

 

 

 

 

 

 

 

he

 

 

ra-

 

x

ple,

 

 

 

 

 

 

nd: mationme ge send is

 

ra sformed usi g

 

 

 

itself

if

 

 

tin

 

 

. The

 

 

has

 

 

 

 

 

dict

 

 

 

 

 

 

 

 

exp

 

to

 

 

 

 

 

 

. As

 

 

 

 

 

 

 

 

 

that is

pas

 

 

 

 

 

 

 

 

 

 

 

 

 

and

 

 

of

 

 

 

 

 

tr

 

sf

 

 

 

 

 

 

 

 

symbol . In

der to pro

 

 

 

 

 

 

chain of environments. A occurdeStream istheir

8

cration

 

 

 

 

 

 

 

 

 

 

in

 

 

 

 

cond tional.

 

 

 

 

 

 

 

 

 

 

n thodby the Defin OpcodePool class, whic

 

whileTrutimesRepeat:transformAndbytes, peat,ifTrue:

 

 

holds (in the instance variable

 

CodeStreammpil dM

 

 

 

 

 

 

it

 

gumenerat

n occurs. Th

 

re ulatemitEffect:of the code gen

 

 

 

 

 

 

 

 

 

,

 

 

 

met

 

 

 

 

 

 

w

 

 

 

the

(recusiv

 

descent)

 

 

) the

 

 

 

 

 

 

 

 

, ifFalsrepresen:,

and:, or:,

whileFalse:,

 

 

 

array that

 

 

 

 

 

boths the byteCodes: op-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

stformsingut Sm(imak.hinellesalk. Thb

 

newreturnthodnatnerinistov

theircodes.occursChangingofinitialarehe againunderlyplatexe

 

 

inablerstohod9 ll)is.)uc..variaThenativasethodstancbCompiledMethhav rtarha.v ysAccndpartusedrrayrdingclass.(calledTheisareliteralsVMthencreationv riablevarif -

 

 

 

 

 

 

 

 

 

the

 

 

 

 

 

 

coll cti

 

 

 

size

 

 

 

bumethoered

 

limitations,y not be

gr ater

 

 

 

han

 

 

256 (

 

 

 

 

 

 

 

 

 

 

 

class>>

literalLimitSigma

 

al) .

 

 

 

 

 

 

us g

 

A

Com

 

 

 

turnstring,its tource,

 

the

 

#g

 

 

 

 

 

 

 

orUserIfNone:

 

 

meth d,

which

 

asks th

 

 

 

 

 

 

 

 

. If

 

 

no

 

 

 

 

default

 

for

the cor-

 

respond ng

 

 

 

 

 

 

 

 

 

 

source

is

 

 

vailable,eStream

 

DecompililedMethodSourccompiytecodesthe

 

 

 

 

 

 

odByteCb C des

 

 

 

 

pr tty printssourceresu t,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

context,

 

 

 

 

 

 

hain

 

 

 

 

 

FileManagerthe

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

ion makescompilationassump ion thayst

 

 

 

called the symbol

 

able

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

other language

 

 

 

 

 

w meScopis curr

tly asso

 

iated

 

 

eth

 

given cla s, annd

 

its superc asspresenthey.

ak

Object is reached, the dictlso-

 

nary

 

 

 

 

:

 

 

 

 

 

 

 

 

 

as

 

 

g

 

 

repos torycompilersof

 

N

 

 

 

 

 

 

 

 

are link

 

 

 

 

 

 

 

er

 

 

 

 

rder to bu

 

 

 

ThisglobalsSmalltalknCompilaalw is tru

, as

 

 

 

 

 

 

using

 

 

 

become:

 

p

 

 

cl ss

 

 

eeded to parsewhentext to be compiedul.

 

 

 

code gen

ration oc urs in

 

 

 

 

 

 

lati

con ext,

 

method,for example (cf 2.1.1),

 

 

 

 

 

 

 

 

 

 

 

 

 

ThisriableSli ation mustInteractiveCompilerbe tak compilationinto accoun whilereturnsdealiugh with

 

receiv

 

 

:

 

 

 

they

 

arebeing

harge

 

of

 

 

 

 

sc

 

 

-

 

 

is from Whenclass

(or subclasses) to whic

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

ss

 

 

 

coded which

 

 

 

the

9

 

 

 

 

 

 

 

as ocia ed wi

 

 

 

 

 

 

 

 

 

 

 

the

 

 

 

 

 

NreferredParserCladisconnenI t activeC

V

 

ErrorHandlerocess,

 

 

 

 

10v

the

 

 

 

ubcErrorHandllass:inst

 

ableNames:.....

 

 

 

 

 

 

ing

 

of

 

the

 

 

 

 

 

 

 

 

 

: they

 

 

gen ration

 

 

ases

 

C mpil

duri

 

co

 

g

 

 

 

 

anage er

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

rati .

Error man

 

 

 

cationg

 

 

 

 

ted from the

.

 

Thus

pilers

 

 

 

 

notial

 

 

h ngeparsingof lic

 

 

 

 

subc asses

 

 

pro-

large automatically generated methods.

 

 

 

 

 

 

Er orHa dler,

 

vided such

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

videstion). AnspellerInteractiveCompilew ymbolrErrorHandleris encoun ered

 

ateclassforeis(newSelectorut itvariablesrectionsundeclaredinitialized),( towhenarnstheobj(

uscts ),suc(declaandh whp temporoposittentemporary), ppropririeswatchandbe ,

d

 

 

 

 

 

 

 

 

 

 

 

:,

 

 

 

 

reUnd c

(

 

 

 

nsl

 

 

),

 

 

of

 

 

 

 

 

 

dMeth ds in

adBeforeWp rse treare

 

 

 

 

 

 

 

 

 

).

 

 

 

 

 

 

 

 

 

 

 

 

use

b

 

 

 

 

s.

 

 

It

 

eGlobal:from:ProgramNoded:fro

 

Decompilerthe lareT mp:free

 

 

 

 

 

 

 

allows the

 

 

 

 

 

-

 

 

 

 

ete

 

 

 

 

cti

ofyteCotheb

 

 

 

 

 

 

 

interprproducetors

 

from the result

 

(u ProgramNodeBuiually amNodes when us ng

 

 

 

 

All disconnof ProgramNodeBuildepart

 

of

 

the

compilation

Small

 

alk, one canundeclareext

se

 

 

 

 

 

 

and the associ-

3.

 

preferedParserClasparser sca the

 

source-str am,

picki

 

 

 

ut

process.

 

 

 

In order

 

to introduc

new

 

semantics

 

in

 

 

steps

 

this

 

 

 

 

 

 

 

process f

llows:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

stand

 

 

 

 

 

 

 

 

 

 

 

 

).

next describe what

at d proc ss that

 

 

 

 

 

cod .yteCW

 

 

 

 

 

ask

 

what

compilermethoduld be

used

in order

 

to

 

sou cecompilationanaly ,

 

ion. Th classis

 

 

 

 

through

 

 

 

 

 

 

 

 

 

 

 

form the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

this

class (the defaulilerClasCompiler),

 

 

 

s)

 

 

Eac

 

1

patteconstant

 

 

 

w

 

xt:,

 

 

 

 

 

 

 

 

 

 

 

W il

 

compiling

 

asked

 

on a class, the class

2

(

 

 

 

 

 

 

compiler

is

 

then

 

for

 

itsdone

fault parser

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

) in order to proc ed with the

 

Behavior>>

 

 

 

ropr ate f

s

 

th .

 

It returns

 

 

 

 

c

 

mpiler class ap

to

the

 

 

urce me hods of

 

it

 

 

 

 

 

 

 

ly

 

 

 

nds

 

 

 

 

 

 

 

 

 

of

ram-

 

buildecursivis asked to creat

it. In theulrulesSmallgumentalkd,

 

The token pro

 

uced by

 

he

scanToken

meth

 

 

 

 

 

 

 

 

 

 

po aries,

statem

 

 

tokens.

 

 

 

 

aryExpps:According,

 

 

to

 

Smallime

alk

 

syn

tic

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

syntacticdesclemen

is compl tely

.

 

 

the

 

 

 

 

 

 

 

of

 

 

 

 

 

 

 

 

 

ntsArgs:turns Prog

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

parsingthod:contis e

 

 

nodmetho(a MethodNodre)

 

sulthe method,

 

,

 

 

 

 

ssion, pri

 

 

 

 

 

 

ession

 

 

 

 

 

 

 

 

(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ProgramNodeBuildeof the tre that expresses

allroothe

synramNodetactice ned,titiThes

 

of

 

5

root syntacmethodNodeic

receivesis asked foremitEffeccode g nerationmethod. The.

 

6.

codinTheItsgrecursivelyrespectivtoStrthisblockstheStreammethbprytecodes(basksBlockClosureceedbuildsCodeseachll toitinnoddoinhasthetoasit)mpiledMethodbu.ofin ecodree.StreamIf ,god,accorderenerwhichthare

These nerst ps are

 

 

 

 

 

 

 

 

 

ceM

 

in

 

thethea

 

 

 

 

 

 

 

 

-

SmalltalkC

 

 

 

 

>>

 

 

 

 

 

 

 

 

 

St

 

outer: method11

 

 

 

 

 

 

 

 

 

 

 

 

nslat

 

 

 

 

 

m

 

slate:noPat::

 

tern:ifFail:needSoNo m aStselfE

c

 

:

 

 

 

 

 

 

 

 

 

rea.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"

 

 

 

codeStparseamsummarizednerationk M codeStrap:hae: methodNod .

 

 

 

 

 

 

 

 

 

 

1

build

 

 

 

P

 

gr

 

 

N

 

 

Buindle newoPattern:

 

 

 

 

 

<

2

>:

:=

 

 

ng

 

 

 

 

 

 

 

 

 

 

 

 

"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

class pa

 

 

 

Cl ss new

 

rv

ing

 

 

 

 

 

 

 

 

 

 

 

the proposed

semantics by in

 

 

 

 

 

 

 

 

 

 

parse

:=

 

 

 

 

 

am

 

 

 

 

 

 

 

 

a .

 

 

 

 

 

 

 

 

 

 

 

 

codeStream

 

 

 

 

 

 

 

 

 

wC

al

 

 

 

 

 

 

 

 

 

 

 

to

 

 

Extendingwmethodphase

of compila

 

in

 

 

 

 

ws new

 

 

 

 

 

 

 

 

ode will be di

 

nt,

 

 

 

ti

 

g

its

 

wn

 

semaroductionthistic . In

2.3.2

 

 

U age

 

 

 

 

 

 

 

 

 

 

onf its lf in

 

 

 

 

 

to g

 

impr thev

 

 

 

 

llows

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ew methods

 

to the language can be

asily

orm

 

by

 

 

ts

 

 

ded

 

 

 

fa

 

 

 

 

 

 

ew

user

 

requiremgeneration

, tics

 

as a

sage send ngmodisem catintics. The co

 

 

f

 

 

 

new

implemented that suit

the

 

 

 

 

 

 

 

 

 

f

the

applicat

 

 

to

 

 

 

 

 

 

 

 

 

 

mechani

 

 

 

[HJ95]. The

 

 

 

of

 

bclbreakpoinssing M ss geNode,

 

 

or

.

 

 

orderto p

 

pos

nd

ew m s

be modeled as well as p

ssibl

 

 

The op

 

 

 

 

m

piler

 

modi cati

 

n of the obtained

parse

 

 

 

 

 

 

 

 

 

menqu tly used to add

 

 

 

 

 

 

 

smdomtics:a

 

 

 

 

 

 

 

 

 

 

 

 

 

o

 

exper

 

nc

 

there are v

majo

methods that are fre-

 

 

 

 

 

 

 

 

 

 

 

 

 

newparserco

 

struction

 

 

 

 

 

 

 

 

 

(ivi) extension of the code generation phastree

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11We simpli ed the code

for clearer understanding

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

pro

 

 

 

an e

 

 

 

 

imp ementation of

 

 

synchronous

anmwithanticsessagenodeWividehronoushinconstructionndingA oneforalk. ,Analkasyncuser[Bri89]hronous(ii)Smallw[Riv95](cfmessage2alk.4..2),on ,aliandseis

Theasyncacti ally

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

be made

 

 

 

 

 

laredw u theing regular.w ' .man' pre xcan.

 

synb

 

 

 

syntactic

 

 

analysi .

 

Thus,

the

tics

 

 

 

 

tosend

 

 

(

ept the messagdisposal: extensionati

 

 

 

by

 

 

 

 

:). W

 

in

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

betiver:sele

 

messagergu

 

 

 

 

 

 

 

 

 

mewMessagrodudistinctionRecw

anActors,

lkPr gramNomentsd NodeBuildersub

nodeBuild

 

creates

 

 

 

 

 

 

deBuilit an lyz

 

 

the

 

 

c-

 

 

 

 

'

 

sync

ronous

 

 

memessageNctorin

the derc ived

 

mthethen

 

 

 

 

 

 

 

 

 

 

 

 

 

.ramNodssage' xpr

ssion,

the buildeaMessageNodepre returnx,

classing

 

 

 

 

 

 

 

 

 

 

 

Progr

 

mN

 

 

 

 

 

qum

 

. When

 

 

 

 

w

queue of

 

 

actor (

 

 

 

 

 

 

 

 

 

 

 

 

 

ts:). Th

sel, for

 

 

 

 

 

ActalkProMessagctor

 

 

 

 

addMessagsage:arguments:

 

 

 

 

 

 

 

 

 

or of

 

 

the regular. If it starts with the

'a.'

 

 

 

 

 

 

 

 

 

 

 

the next

 

sssage

 

 

 

 

 

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arguments:

 

#( mes age, #() )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

of which

 

 

 

 

 

 

 

 

 

 

 

 

 

eBuil

 

 

 

ret

rns

 

 

 

 

 

 

 

 

 

un im )

 

 

 

elector is the

one that

 

 

ues (at

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NodeNode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nActortheive

 

 

 

 

 

anActor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

can be

 

 

 

s

 

 

 

 

 

 

 

 

 

to a

Notice that this transformati

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-expansion of

 

 

 

'a.' pre xed mes age sends.

 

 

 

 

 

 

 

 

 

 

More gener

 

lly, used

 

 

association wi

 

 

the kern l

Lo

gu ges [RC94]. Itall

 

 

Small alk oneto

xmilatedc source

 

icalstrongly-Con

lers. A rethoughection

 

 

 

 

3

asedProgradefa

messag

 

 

 

 

 

See

A.1 for the f

 

ll

 

 

 

of

 

 

newMessageR

ce

ver:selec

.

macroension,

 

 

 

 

 

ex

 

mp is given by

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

la tor

and cl ss

parad gmws, dedicated to

 

 

 

 

 

 

 

 

 

 

mable

 

sending semseman

 

(2 are asynchron

 

 

), i

 

isbothrely

x

 

ex

 

 

 

 

PLC OO frallmewprorkeliminatesfor theSi thens; 20 year/man; currently used

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tion

 

 

 

 

 

 

 

llows

 

 

 

 

 

 

 

build new

ecutedindustriS ticsalk, without

 

 

 

Objject5

 

 

 

 

 

 

 

th

 

ware stratucompil. Types hav

 

 

 

 

introduc

 

 

 

 

 

 

ult

 

 

 

 

code whose

 

 

 

 

 

 

 

tics is di er

 

 

from

he

 

 

 

 

one

. A

It is

 

 

wri ten

 

 

 

 

his

 

 

ybrid

langualw ys p

 

 

 

 

 

 

 

14

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[Sie94soft-

 

 

 

 

 

 

 

ctor cl

 

ss

 

 

 

 

 

 

 

beenhavior for such an actor-preterobj .

 

14

 

 

 

 

 

nts: meth

 

videsthe ActalkProgramNod extendingnalizBu der class.

 

 

 

2

 

 

 

 

 

 

continuous prsourcecesses.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

beingtor:argumeThetc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

proachexecuteofregularthe lackSmallof alkcie

.cy

f trre ryectivto thesystems,(latent)here-

2re..44ection.1uniqueMessageModelbroughcon

anSendingoutstandingof Smallgain ofalke ciencyis message.

sending. It is

 

 

 

 

 

structureed of w

pha

 

s:

 

 

 

 

 

 

 

 

 

 

 

The

 

 

the receivseatrolof

he

 

 

 

 

 

 

sending,

 

 

 

 

 

 

 

 

 

 

 

okup

 

 

 

 

 

 

 

 

 

at ex cu ion time and us s

 

 

 

 

 

 

for

 

reason

 

 

of e ci ncy, themessagenec sary informationaccordingclass

 

 

 

the inherit

nce link (supe classmethodDictin nce var

 

 

bl ),

mation

hes,

 

 

allowing optimizaaCompiledMethodion of the rdwired algo-

1

 

 

 

 

 

 

 

.

 

:

 

compo

 

for the

 

 

 

cr b

to apply

 

 

la

gu

 

ge

cessible

 

 

 

 

 

 

 

 

modi able from

he

 

anguage. All the

 

nfor-

2.

 

 

pply:

 

an

 

 

plic

 

 

ion

of

 

 

found

 

 

 

 

.

 

 

 

 

 

 

 

 

 

rithm. Cacheshappens

 

 

 

ot re ed, but can be reiniinstancelized

 

 

 

 

 

 

 

diction

 

y of

meth ds

 

(

 

 

 

 

 

 

 

))

 

 

 

 

 

 

 

 

v riabl

 

 

:

 

cl

 

 

(aSymbol,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ss s:

 

 

 

 

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

par

 

 

 

 

 

 

 

primitives

 

(

 

 

 

 

rstand:

 

method is

 

 

 

 

 

 

 

 

case,

 

the

 

 

#Behavio

 

 

 

 

 

Mess

 

 

 

 

class except wh

 

the lookup#flushVMMethfail . In

 

 

last

sen

 

 

 

by the

 

VM

 

 

 

the original

 

 

 

ceiver

with

 

thatrei ed

 

 

 

-Cac

 

 

 

 

).

 

as

 

he argumensNotUnd.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

messiculargiv

 

 

 

 

 

 

 

 

 

 

ces of the

 

 

 

usingare

not currently

rei ed using in ta

 

CompiledMethod(cf 2.3.1),

 

maregular object.

 

 

T

 

aMessage

 

 

argu ents

 

 

 

) #()

 

 

with

 

 

 

 

 

 

 

 

2

 

 

 

esNotUen

 

rstand:

aMessage

 

 

 

 

 

 

 

 

 

 

z rk

 

 

 

 

sel

ctor

 

 

 

 

 

 

zork

and

 

 

 

 

 

 

 

 

 

An

 

 

 

 

 

 

 

message

send

 

 

y

 

be

 

r

 

 

 

 

sing

 

 

 

 

 

 

 

xplicit

 

 

 

 

 

 

 

 

 

 

 

 

 

a

perform:

 

 

 

 

 

pr mitiv .

 

 

 

A

 

 

lookup

 

sultst

is

 

valueWithReceiver:

15

 

ents:

 

 

primitivcalled

all ws

 

the

15The general form is perforargum:withArguments:.

 

 

 

 

 

 

 

 

 

 

application of aCompiledMethod with an

array of argu-

ments.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Integer>>#fac orial)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ecutesdefaultmanAccmessageticsof lthetookf vp,erwrittargvalince. mAsmeneWiicssit behaviorimplemstgehReceives:matteists#()slighfenomareofsuperr:tlythefact,qualidi5.methodfromTheerenthe)ed 120lookupyfromasssupfromtheexse-

whose

 

 

 

 

 

h

 

variablepart

 

is

accessibthe endingwit

the

com iledMeth

 

 

 

 

 

 

(cf

2.3.1).

This

class

is pushed

in

 

 

 

 

the

 

vari ble

part

at

compile time

(

 

 

 

 

>>senpseudoS

er:numArgs:).

 

 

 

 

 

 

 

 

 

 

 

CodeStreamTsuperclasssum

looklookup, Smallstartsalk prov des thatwo dif

 

feren

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

variable part.

 

 

lass stor d in the compiledMeth

 

 

 

 

 

en ry points:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

class

 

f the re

 

Noticeext nsion of themessagesending semantics.

 

 

 

of

 

 

 

oneiver,that starts the

 

ookup from the

supe

 

 

 

 

Ev

 

 

that as

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

is the o

ly controlclasstruc-

ything is

 

 

 

 

 

 

 

 

 

 

 

 

terms of

send ng

 

 

 

 

 

.

 

mp e, Usage

 

 

 

 

 

 

 

 

 

 

 

 

 

is

 

made

 

by

 

 

 

 

the

tur , an extension of the method

 

 

 

 

 

 

 

 

provides

an

There

is no ne

xpressedfor

 

 

 

 

 

keywor

 

 

 

or sp cial form ,

2.4.2

 

 

 

), result

 

 

y-

 

 

 

 

ted through themessagessend n

(insp ctIt acti

 

 

 

 

 

 

the buildingthroughf declarationtch-up

 

mechanism by specializa-

subclass:

tan

 

V

 

specialble

 

 

 

:classVariabl Na

s:-

 

 

 

in

m thod.

 

Then

it

 

 

 

mostly

 

evaluatsending(us

ex

 

 

 

Basic,

Ad '95

 

 

or

 

C++,

 

 

tc.

 

 

As an

 

poolDicti

nclassry:c

 

 

 

 

 

ory:

Nam

 

 

age

with

correct

argu

 

#valu

 

 

 

 

 

 

 

r:arguments:)

 

 

 

as the

de

 

fault r

WithReceivewsers. The

 

 

 

 

expresseddisca ded (doIt actio

),

 

 

 

 

The maprintStringprettofeither

lookup

 

failure

al ows

ments. Br

 

 

use

this

 

facilit

 

(cf 2.2.2).

 

of

 

 

 

 

 

 

 

 

An

valuat

 

 

 

 

 

 

 

 

 

 

 

 

 

in

 

terms

 

 

 

 

inspected

 

 

 

 

 

the

ending of

he inspect

 

 

 

 

 

of the message

 

 

 

 

 

 

 

 

 

 

 

 

(printIt action).

 

 

 

 

 

 

 

 

16using Object>>agement:

nd Object>>at:put: methods.

 

 

 

 

 

 

 

 

 

 

pen#valueWithReceiverwith the use of:arguments:the fault lookupen bl andoneto toimpledis-

menpproaclgorithms,(inAs ancooperis sucexampan, wetionnd:asdescribecienmofwiethodultiplealternativ(cfuseinheriCompilerimpl2.of3.2)theance. enthe).

newuseThisofokuplazylastthe

ev

 

 

 

 

in Small alk[ : :17:aBlock.

: : :] lazyV lue.

 

 

A lazyaLazyObjec

 

 

 

 

 

 

 

 

ts an

 

 

 

 

 

 

 

tha

 

m y not

 

q

 

 

. It

 

 

 

presennot start

execution untilation

 

on

reg

iredobj ct

that would hav

 

 

 

 

 

from the valu-

 

 

ofmethocode

 

in ide

the

 

block ([ : : :aBlock : : :]).

Thaluatiit

 

 

 

v

 

mes

 

 

 

g

 

 

,

suctheas color doesNotUnderif it repr ents

standCar.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

doesNotUnderstionstan eV iableNames: 'r resulteddone args '

 

 

 

"

 

 

 

peresult:=fo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mess ge has

 

been

 

received. aLazyObject is us least thbe

 

poolDilassVarirec onaries ''

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nil

 

 

 

 

 

 

 

#L zy

 

:

 

''

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

subclass:bleNam

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

category:

 

'Kern

 

 

-Proc ses'

 

 

 

 

 

 

 

 

doLazyesNotUndeerstand:

 

aMessage

 

 

 

subclass

of

nil,

 

 

ev-

ery

 

As

the

L zy

 

 

cl

 

 

 

 

 

 

 

 

 

 

 

 

message

 

 

 

 

 

 

 

 

 

 

 

 

 

 

the

invocation

of

 

 

the

ifFalse: [

 

 

result

 

 

valueWith

 

 

ents:

 

rgs.

 

 

 

done

 

 

 

 

 

stenda

method.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

done

 

 

 

true].

 

 

 

 

messag ,

 

lazy object

 

 

 

Wh

 

 

 

iv

 

 

 

 

 

the

 

 

 

 

 

 

 

method

 

f

theperform:withArgumentsubclass sually lo ks like:

for result

 

 

 

 

 

 

gum

 

 

nts:

 

 

 

 

 

selectorsage

 

 

computes

valu tion of

 

 

 

 

 

block.

 

 

 

 

 

uncomputexpl ci

 

 

age

 

 

 

 

 

 

aMessageusi

 

 

 

 

 

 

 

 

 

s:,

 

 

 

 

 

d). It is bu ered for other

 

gentsends. An

 

 

 

A classica

 

 

use

 

 

 

of

 

super isThereforeitialization

of

newly-crea

 

 

 

 

 

send,.

 

When adding

messbclass, b

new

17Thanksinitializeo Marobjeci Wolczkcution.

 

 

 

 

usly in

zy

 

(i. .

the real obj ct, whic

 

 

was previ

 

 

and

 

heri

 

d

 

 

tializati

 

ns must be

carried

out. Thus,

llows the r

 

gulrec

x

 

 

 

 

 

 

 

 

 

 

 

scheme

continue.

 

 

 

.5 Con rol State

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

reguputsagetoThesses,bulatsurmeldcandallasscalkmevaluationsultiprocoredueyboasystgenerallyd/m(sstimingPriosystuserBackgroundPrio(is based(lowIO.theityonobjects),ocessesreevedn),eededritymanpro-,

 

 

 

 

 

class

 

ority, userInterruptPriorityority).

 

 

 

 

 

giv

 

 

 

esses

 

 

 

hronized

 

 

 

mmuni

 

 

 

 

 

userSchedulingPritimeproce quiringprovi

 

 

 

 

 

 

 

y the

Delay

 

 

 

. It repre-

en aphoreal-timeyield

la(usingy the

 

 

 

 

 

 

 

 

 

 

of

 

 

 

 

 

 

 

 

 

.

 

T

 

BlockClosure>>forkvalueWithArgumentsmethod cre (s pr

 

 

 

 

.

 

 

 

 

2.5.1

y Modelf the one

instancecurr

 

 

runn

 

 

 

 

 

ha npreempprioritiesto .

 

 

 

tic

between

proc

 

 

 

 

 

 

ha

 

 

 

 

di eren

 

 

 

 

 

 

 

 

 

 

 

processthat ex

 

the

 

dela

 

 

executionis uspe

 

 

 

 

for an amouncation

ass,

co

dinates

use

 

 

 

ofthe physical processor by

all

bl

ks,

 

as

 

in

 

 

 

 

 

 

 

rvice.

 

 

 

It

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v

of

 

 

 

the SequenceableCollection>>do:

of (real) timeprocessescutessented

 

 

tlythe

 

 

 

 

 

 

 

 

 

time of

 

he

delay.

The

 

 

 

 

 

 

 

 

 

re

 

class

 

 

represenclasslex

 

 

 

 

 

clo

b

ioriteenw

 

 

 

 

 

 

es

 

 

wait

 

sigde nesmethods).

 

 

 

Real

 

 

 

 

 

 

 

 

 

 

 

pr

 

cess

 

.

 

 

that

 

 

 

 

 

 

the

 

 

sam

ing of the number ofma

 

 

 

 

 

 

 

 

 

 

 

 

SmallaProcalk eussss lotks

 

 

hav

 

 

 

 

ies

 

 

nd

 

 

 

 

 

 

 

 

 

 

resumption. Th geoner Blocsyn

 

 

exprP]tempor. Bl ckCloasluation is provided

by

 

primitivexpr1

ro

 

ts.

It

freezes

 

piece

 

 

 

f code

 

 

 

 

 

 

wi h

 

.

ts

 

 

 

vi

 

ment) so that it

 

 

 

 

y

be

 

 

 

alua(along

 

:

d

 

pend-

ca

 

ic

value,

 

value:,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

is

[:

rg1

: : :: rgNj

 

tmp1 : : :tmpM j

 

 

 

 

 

 

nameddo: form

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

meth

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

."

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

elementsexample:as the

 

 

 

 

 

 

 

 

 

 

of the rec iver's

 

 

 

 

 

 

 

 

 

 

 

 

 

"Evaluate aBloc

 

with eac

 

 

 

 

 

 

 

 

 

 

 

 

of

 

1 to:

 

lf size do:

[:

 

 

j

 

B

 

 

k

 

of

 

:

 

 

lf

: i)]

 

 

 

 

 

 

 

 

a

proc ss

 

is

 

the

 

 

 

body

 

 

 

 

the

 

 

block.

 

 

 

 

 

 

As

blocks may share anationviron

 

 

 

 

t, ind

pendent

 

 

 

A

 

 

 

uses this

facility to

share

 

 

common

 

 

 

 

 

.

 

 

 

 

 

 

 

 

cess may be suspend

d,

 

resumed

or

killedobjects(u ingprocesseres ec-

tively

suspend, resume

or

 

terminate

methods).

 

 

 

 

The

 

 

 

Proc

 

 

cr

 

 

 

 

 

 

is

 

 

based

 

 

 

blocks;

 

the

 

 

body