This paper describes MiniMAO
1, a core aspec
t-orien
ted language. Unlike previous aspec
t-orien
ted calculi and core languages, MiniMAO
1allows <
tt>around
tt> advice
to change
the
targe
t objec
t of an advised opera
tion before proceeding. MiniMAO
1accura
tely models
the ways Aspec
tJ allows changing
the
targe
t objec
t, e.g., a
t <
tt>call
tt> join poin
ts. Prac
tical uses for changing
the
targe
t objec
t using advice include proxies and o
ther wrapper objec
ts.
MiniMAO1was designed to serve as a core language for studying modular specification and verification in the aspect-oriented paradigm. To this end MiniMAO1
t>• has an imperative, reference-based semantics,
t>t>• models the control-flow effects of changing target object bindings with advice, and
t>t>• has a safe static type system.
t>
The firs
t two fea
tures make MiniMAO
1 sui
table for
the s
tudy of aspec
t-orien
ted mechanisms, such as
those found in Aspec
tJ. These fea
tures are impor
tan
t for s
tudying
the in
terac
tion of aspec
t-orien
ted language fea
tures wi
th modular specifica
tion and verifica
tion. A s
ta
tically
type-safe language is also impor
tan
t for such research. Aspec
tJ does no
t have a safe s
ta
tic
type sys
tem. To achieve s
ta
tic
type safe
ty MiniMAO
1uses a sligh
tly differen
t form of <
tt>proceed
tt> and advice binding
than in Aspec
tJ. These changes are sufficien
t for s
ta
tic
type safe
ty, bu
t we do no
t claim
tha
t they are necessary; a less res
tric
tive
type sys
tem migh
t suffice.
This paper gives an operational semantics, type system, and proof of soundness for MiniMAO1.