coordination issues, but also the engineering of pas-
sive and active parts of the application, avoiding the
direct use of low-level mechanisms such as threads.
6 CONCLUSIONS
We described FAL, a core calculus to provide a rig-
orous formal framework for designing agent-oriented
languages and studying properties of agent-oriented
programs. To authors knowledge, the only attempt
that has been done so far applying OO formal mod-
elling techniques like core calculi to study properties
of agent-oriented programs and of agent-oriented ex-
tensions of object-oriented systems is (Ricci et al.,
2008). A main limitation of the formalization pro-
posed in (Ricci et al., 2008) is the lack of a type sys-
tem that is able to guarantee well-formedness proper-
ties of programs. In this paper we formalized a larger
set of features (including agent agenda and artifact
properties) and provided a type soundness result.
The type system paves the way towards the anal-
ysis of the computational behaviour of agents. Prop-
erties that we are investigating mainly concerns the
correct execution of activities, in particular: (i) there
is no activity which are never executed because of
their pre-condition; (ii) post-conditions for activity
execution can be statically known, expressed as set of
memos that must be part of the memo space as soon as
the activity has completed; (iii) invariants for activity
execution can be statically known, expressed as set of
memos that must be part of the memo space while the
activity is in execution; (iv) there is no internal action
reading or removing memos that has not been previ-
ously inserted. We are investigating the suitable defi-
nition of pre/post/invariant conditions in terms of sets
of memos that must be present or absent in the memo
space, so that it would be possible to represent high-
level properties related to set of activities, such as the
fact that an activity A would be executed always after
an activity A’ or that an activity A and A’ cannot be
executed together. On the artifact side, the computa-
tional model of artifacts ensures a mutually exclusive
access to artifact state by operations executed concur-
rently; more interesting properties could be stated by
considering not only atomic but also structured oper-
ations, not dealt in this paper. We are also planning
of integrating and comparing our approach based on
static analysis with traditional verification techniques
such as model-checking.
REFERENCES
Agha, G. (1986). Actors: a model of concurrent compu-
tation in distributed systems. MIT Press, Cambridge,
MA, USA.
Agha, G., Wegner, P., and Yonezawa, A., editors (1993). Re-
search directions in concurrent object-oriented pro-
gramming. MIT Press, Cambridge, MA, USA.
Benton, N., Cardelli, L., and Fournet, C. (2004). Modern
concurrency abstractions for C#. ACM Trans. Pro-
gram. Lang. Syst., 26(5):769–804.
Briot, J.-P., Guerraoui, R., and Lohr, K.-P. (1998). Con-
currency and distribution in object-oriented program-
ming. ACM Comput. Surv., 30(3):291–329.
Damiani, F., Giachino, E., Giannini, P., and Drossopoulou,
S. (2008). A type safe state abstraction for coordi-
nation in java-like languages. Acta Inf., 45(7-8):479–
536.
Fournet, C. and Gonthier, G. (1996). The reflexive chemical
abstract machine and the join calculus. In POPL’96,
pages 372–385. ACM.
Igarashi, A., Pierce, B., and Wadler, P. (2001). Feather-
weight Java: A minimal core calculus for Java and
GJ. ACM TOPLAS, 23(3):396–450.
Itzstein, G. S. and Kearney, D. (2001). Join Java: an alterna-
tive concurrency semantics for Java. Technical Report
ACRC-01-001, Univ. of South Australia.
Lavender, R. G. and Schmidt, D. C. (1996). Active ob-
ject: an object behavioral pattern for concurrent pro-
gramming. In Pattern languages of program design 2,
pages 483–499. Addison-Wesley Longman Publish-
ing Co., Inc., Boston, MA, USA.
Omicini, A., Ricci, A., and Viroli, M. (2009). Artifacts in
the A&A meta-model for multi-agent systems. Au-
tonomous Agents and Multi-Agent Systems, 19. Spe-
cial Issue on Foundations, Advanced Topics and In-
dustrial Perspectives of Multi-Agent Systems.
Philippsen, M. (2000). A Survey of Concurrent Object-
Oriented Languages. Concurrency Computat.: Pract.
Exper., 12(10):917–980.
Ricci, A. and Viroli, M. (2007). SIMPA: An agent-oriented
approach for prototyping concurrent applications on
top of java. In PPPJ’07, pages 185–194. ACM.
Ricci, A., Viroli, M., and Cimadamore, M. (2008). Proto-
typing concurrent systems with agents and artifacts:
Framework and core calculus. Electron. Notes Theor.
Comput. Sci., 194(4):111–132.
Sutter, H. and Larus, J. (2005). Software and the concur-
rency revolution. ACM Queue: Tomorrow’s Comput-
ing Today, 3(7):54–62.
Yonezawa, A. and Tokoro, M., editors (1986). Object-
oriented concurrent programming. MIT Press, Cam-
bridge, MA, USA.
FEATHERWEIGHT AGENT LANGUAGE - A Core Calculus for Agents and Artifacts
225