@comment{{This file has been generated by bib2bib 1.98}}
@comment{{Command line: bib2bib -c $type="INPROCEEDINGS" /home/davide/latex/bibinputs/allMine.bib}}
@comment{{This file has been generated by Pybliographer}}
@inproceedings{AnconaEtAl16,
author = {Ancona, D. and
Ferrando, A. and
Mascardi, V.},
title = {Comparing Trace Expressions and Linear Temporal Logic for Runtime
Verification},
booktitle = {Theory and Practice of Formal Methods - Essays Dedicated to Frank
de Boer on the Occasion of His 60th Birthday},
pages = {47--64},
year = {2016},
abstract = {{Trace expressions are a compact and expressive formalism, initially devised
for runtime verification of agent interactions in multiagent systems, which has been
successfully employed to model real protocols, and to generate monitors for mainstream multiagent system platforms,
and generalized to support runtime verification of different kinds of properties and systems.
In this paper we formally compare the expressive power of trace expressions with
the Linear Temporal Logic (LTL), a formalism widely adopted in runtime verification.
We show that any LTL formula can be translated into a trace expression
which is equivalent from the point of view of runtime verification.
Since trace expressions are able to express and verify sets of traces that
are not context-free, we can derive that in the context of runtime verification
trace expressions are more expressive than LTL.
}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AnconaEtAlFdB16.pdf},
keywords = {agents, behavioral-types,runtime-verification}
}
@inproceedings{AnconaBFMT14,
author = {Ancona, Davide and
Briola, Daniela and
El Fallah{-}Seghrouchni, Amal and
Mascardi, Viviana and
Taillibert, Patrick},
title = {Exploiting Prolog for Projecting Agent Interaction Protocols},
booktitle = {Proceedings of the 29th Italian Conference on Computational Logic,
Torino, Italy, June 16-18, 2014.},
pages = {30--45},
year = {2014},
abstract = {{Constrained global types are a powerful means to represent agent interaction protocols. In our recent research we demonstrated that they can be used to represent complex protocols in a very compact way, and we exploited them to dynamically verify correct implementation of a protocol in a real MAS framework, Jason.
The main drawback of our previous approach is the full centralization of the monitoring activity which is delegated to a unique monitor agent.
This approach works well for MASs with few agents, but could become unsuitable in communication-intensive and highly-distributed MASs where hundreds of agents should be monitored.
In this paper we define an algorithm for projecting a constrained global type onto a set of agents Ags,
by restricting it to the interactions involving agents in Ags, so that the outcome of the algorithm is
another constrained global type that can be safely used for verifying the compliance of the sub-system Ags to the protocol specified by the original constrained global type.
The projection mechanism is implemented in SWI Prolog and is the first step towards distributing the monitoring activity, making it safer and more efficient: the compliance of a MAS to a protocol could be dynamically verified by suitably partitioning the agents of the MAS into small sets
of agents, and by assigning to each partition Ags a local monitor agent which checks all interactions involving Ags against the projected constrained global type.
We leave for further investigation the problem of finding suitable partitions of agents in a MAS, to guarantee that
verification through projected types and distributed agents is equivalent to verification
performed by a single centralized monitor with a unique global type.}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AnconaBFMT14.pdf},
keywords = {agents, behavioral-types,runtime-verification}
}
@inproceedings{BonsangueEtAl14,
author = {Bonsangue, M. and
Rot, J. and
Ancona, D. and
de Boer, F.S. and
Rutten, J.},
editor = {Esparza, J. and
Fraigniaud, P. and
Husfeldt, T. and
Koutsoupias, E.},
title = {A Coalgebraic Foundation for Coinductive Union Types},
booktitle = {{Automata, Languages, and Programming - 41st International
Colloquium, ICALP 2014, Copenhagen, Denmark, July 8-11,
2014, Proceedings, Part II}},
publisher = {Springer},
series = {{Lecture Notes in Computer Science}},
volume = {8573},
year = {2014},
pages = {62-73},
keywords = {{coinduction}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/BonsangueEtAl14.pdf},
abstract = {{This paper introduces a coalgebraic foundation for coinductive types, interpreted as sets of values and extended
with set theoretic union. We give a sound and complete characterization of semantic subtyping in terms of
inclusion of maximal traces. Further, we provide a technique for reducing subtyping to inclusion between sets of
finite traces, based on approximation. We obtain inclusion of tree languages as a sound and complete
method to show semantic subtyping of recursive types with basic types, product and union, interpreted coinductively.
}}
}
@inproceedings{AnconaCorradi14,
booktitle = {{ECOOP 2014 - Object-Oriented Programming}},
keywords = {{objects,types,coinduction}},
note = {{To appear}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/CompleteCoinductiveSubtyping.pdf},
author = {Ancona, D. and Corradi, A.},
title = {{Sound and complete subtyping between coinductive types for object-oriented languages}},
year = {2014},
abstract = {Structural subtyping is an important notion for effective static type analysis;
it can be defined either axiomatically by a collection of subtyping rules, or by means of set inclusion between type interpretations, following
the semantic subtyping approach, which is more intuitive, and allows simpler proofs of the expected properties of the subtyping relation.
In object-oriented programming, recursive types typically correspond to inductively defined data structures, and subtyping is defined axiomatically;
however, in object-oriented languages objects can also be cyclic, but inductive types
cannot represent them as precisely as happens for coinductive types.
We study semantic subtyping between coinductive types with records and unions, which are particularly interesting for object-oriented programming,
show cases where it allows more precise type analysis, and develop a sound and complete effective algorithm for deciding it.
To our knowledge, this is the first proposal for a sound and complete algorithm for semantic subtyping between coinductive types.
}
}
@inproceedings{AnconaEtAl13a,
booktitle = {{ACM Symposium on Applied Computing (SAC 2013)}},
keywords = {{agents, behavioral-types,runtime-verification}},
note = {{Poster paper}},
author = {Ancona, D. and Barbieri, M. and Mascardi, V.},
title = {{Constrained Global Types for Dynamic Checking of Protocol Conformance in Multi-Agent Systems}},
pages = {1-3},
year = {2013},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ABM-SAC13.pdf},
abstract = {Global types are behavioral types for specifying and verifying multiparty
interactions between distributed components, inspired by the process algebra approach.
In this paper we extend the formalism of global types in multi-agent systems resulted from our previous work with a mechanism for easily expressing constrained shuffle of message sequences; accordingly, we extend the semantics to include the newly introduced feature, and show the expressive power of these ``constrained global types''.
}
}
@inproceedings{AZ_FTfJP13,
booktitle = {{Formal techniques for Java-like programs (FTfJP13)}},
keywords = {{objects, coinduction, corecursion}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AZ-FTfJP13.pdf},
author = {Ancona, D. and Zucca, E.},
title = {{Safe Corecursion in coFJ}},
pages = {2:1--2:7},
year = {2013},
abstract = {In previous work we have presented coFJ, an extension
to Featherweight Java that promotes coinductive
programming, a sub-paradigm expressly devised to ease
high-level programming and reasoning with cyclic data
structures. The coFJ language supports cyclic objects
and regularly corecursive methods, that is, methods
whose invocation terminates not only when the
corresponding call trace is finite (as happens with
ordinary recursion), but also when such a trace is
infinite but cyclic, that is, can be specified by a
regular term, or, equivalently, by a finite set of
recursive syntactic equations. In coFJ it is not easy
to ensure that the invocation of a corecursive method
will return a well-defined value, since the recursive
equations corresponding to the regular trace of the
recursive calls may not admit a (unique) solution; in
such cases we say that the value returned by the method
call is undetermined. In this paper we propose two new
contributions. First, we design a simpler construct for
defining corecursive methods and, correspondingly,
provide a more intuitive operational semantics. For
this coFJ variant, we are able to define a type system
that allows the user to specify that certain
corecursive methods cannot return an undetermined
value; in this way, it is possible to prevent unsafe
use of such a value. The operational semantics and the
type system of coFJ are fully formalized, and the
soundness of the type system is proved. }
}
@inproceedings{Ancona_FTfJP14,
booktitle = {{Formal techniques for Java-like programs (FTfJP14)}},
keywords = {{semantics, types, objects, coinduction}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/Ancona-FTfJP14.pdf},
author = {Ancona, D.},
title = {{How to Prove Type Soundness of Java-like Languages Without Forgoing Big-step Semantics}},
pages = {1:1--1:6},
year = {2014},
articleno = {1},
publisher = {ACM},
abstract = {Small-step operational semantics is the most commonly employed formalism for
proving type soundness of statically typed programming languages, because
of its ability to distinguish stuck from non-terminating computations,
as opposed to big-step operational semantics.
Despite this, big-step operational semantics is more abstract, and more
useful for specifying interpreters.
In previous work we have proposed a new proof technique to prove type soundness
of a Java-like language expressed in terms of its big-step operational semantics.
However the presented proof is rather involved, since it
requires showing that the set of proof trees defining the semantic judgment forms a complete metric space
when equipped with a specific distance function.
In this paper we propose a more direct and abstract approach that exploits a standard and general compactness property
of the metric space of values, that allows approximation of the coinductive big-step semantics in terms of the small-step one;
in this way type soundness can be proved by standard mathematical induction.
}
}
@inproceedings{AGZ_ITRS12,
booktitle = {{Intersection Types and Related Systems (ITRS 2013)}},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AGZ-ITRS13.pdf},
author = {Ancona, D. and Giannini, P. and Zucca, E.},
title = {{Reconciling positional and nominal binding}},
pages = {81-93},
year = {2013},
abstract = {We define an extension of the simply-typed lambda
calculus where two different binding mechanisms, by
position and by name, nicely coexist. In the former, as
in standard lambda calculus, the matching betweeen
parameter and argument is done on a positional basis,
hence alpha-equivalence holds, whereas in the latter it
is done on a nominal basis. The two mechanisms also
respectively correspond to static binding, where the
existence and type compatibility of the argument are
checked at compile-time, and dynamic binding, where
they are checked at runtime.}
}
@inproceedings{AMP-SAC12,
author = {Ancona, D. and Mascardi, V. and Pavarino, O.},
title = {Ontology-based documentation extraction for
semi-automatic migration of {J}ava code},
booktitle = {A{CM} {S}ymposium on {A}pplied {C}omputing ({SAC}
2012)},
editor = {Ossowski, S. and Lecca, P.},
pages = {1137--1143},
publisher = {ACM},
abstract = {Migrating libraries is not a trivial task, even under
the simplest assumption of a downward compatible
upgrade. We propose a novel approach to partially
relieve programmers from this task, based on the simple
observation that class, method and field names and
comments contained in a Java library should be a good
approximation of its semantics, and that code migration
requires knowing the semantic similarities between the
two libraries. Following this assumption, we borrow the
main concepts and notions from the Semantic Web, and
show how (1) an ontology can be automatically generated
from the relevant information extracted from the code
of the library; (2) semantic similarities between two
different libraries can be found by running a
particular ontology matching (a.k.a. ontology
alignment) algorithm on the two ontologies extracted
from the libraries. The main advantages of the approach
are that ontology extraction can be fully automated,
without adding ad-hoc code annotations, and that
results and tools produced by the Semantic Web research
community can be directly re-used for our purposes.
Experiments carried out even with simple and efficient
freely available matchers show that our approach is
promising, even though it would benefit from the use of
more advanced ontology matchers possibly integrated
with a component for checking type compatibility of the
computed alignments. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AMP-SAC12.pdf},
keywords = {agents, ontologies, refactoring},
year = 2012
}
@inproceedings{AnconaSAC12,
author = {Ancona, D.},
title = {Regular corecursion in {P}rolog},
booktitle = {A{CM} {S}ymposium on {A}pplied {C}omputing ({SAC}
2012)},
editor = {Ossowski, S. and Lecca, P.},
pages = {1897--1902},
abstract = {Co-recursion is the ability of defining a function
that produces some infinite data in terms of the
function and the data itself, and is typically
supported by languages with lazy evaluation. However,
in languages as Haskell strict operations fail to
terminate even on infinite regular data. Regular
co-recursion is naturally supported by co-inductive
Prolog, an extension where predicates can be
interpreted either inductively or co-inductively, that
has proved to be useful for formal verification, static
analysis and symbolic evaluation of programs. In this
paper we propose two main alternative vanilla
meta-interpreters to support regular co-recursion in
Prolog as an interesting programming style in its own
right, able to elegantly solve problems that would
require more complex code if conventional recursion
were used. In particular, the second meta-interpreters
avoids non termination in several cases, by restricting
the set of possible answers. The semantics defined by
these vanilla meta-interpreters are an interesting
starting point to study new semantics able to support
regular co-recursion for non logical languages. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AnconaSAC12.pdf},
keywords = {coinduction,corecursion},
year = 2012
}
@inproceedings{AnconaECOOP12,
author = {Ancona, D.},
title = {Soundness of {O}bject-{O}riented {L}anguages with
{C}oinductive {B}ig-{S}tep {S}emantics},
booktitle = {E{COOP} 2012 - {O}bject-{O}riented {P}rogramming},
editor = {Noble, J.},
volume = {7313},
pages = {459--483},
publisher = {Springer},
abstract = {It is well known that big-step operational semantics
are not suitable for proving soundness of type systems,
because of their inability to distinguish stuck from
non-terminating computations. We show how this problem
can be solved by interpreting coinductively the rules
for the standard big-step operational semantics of a
Java-like language, thus making the claim of soundness
more intuitive: whenever a program is well-typed, its
coinductive operational semantics returns a value.
Indeed, coinduction allows non-terminating computations
to return values; this is proved by showing that the
set of proof trees defining the semantic judgment forms
a complete metric space when equipped with a proper
distance function. In this way, we are able to prove
soundness of a nominal type system w.r.t. the
coinductive semantics. Since the coinductive semantics
is sound w.r.t. the usual small-step operational
semantics, the standard claim of soundness can be
easily deduced. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AnconaECOOP12.pdf},
keywords = {semantics, types, objects, coinduction},
year = 2012
}
@inproceedings{AL-TCS12,
author = {Ancona, D. and Lagorio, G.},
title = {Static single information form for abstract
compilation},
booktitle = {Theoretical {C}omputer {S}cience ({IFIP} {TCS} 2012)},
editor = {Baeten, J. C.M. and Ball, T. and de Boer, F. S.},
volume = {7604},
series = {Lecture Notes in Computer Science},
pages = {10--27},
publisher = {Springer},
abstract = {In previous work we have shown that more precise type
analysis can be achieved by exploiting union types and
static single assignment (SSA) intermediate
representation (IR) of code. In this paper we exploit
static single information (SSI), an extension of SSA
proposed in literature and adopted by some compilers,
to allow assignments of more precise types to variables
in conditional branches. In particular, SSI can be
exploited rather easily and effectively to infer more
precise types in dynamic object-oriented languages,
where explicit runtime typechecking is frequently used.
We show how the use of SSI form can be smoothly
integrated with abstract compilation, our approach to
static type analysis. In particular, we define abstract
compilation based on union and nominal types for a
simple dynamic object-oriented language in SSI form
with a runtime typechecking operator, to show how
precise type inference can be.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AL-TCS12.pdf},
keywords = {objects,types,coinduction},
year = 2012
}
@inproceedings{AZ-CoLP12,
author = {Ancona, D. and Zucca, E.},
title = {Translating Corecursive {F}eatherweight {J}ava in
Coinductive Logic Programming},
booktitle = {{Co-LP} 2012 - A workshop on {C}oinductive {L}ogic
{P}rogramming},
abstract = {Corecursive FeatherWeight Java (coFJ) is a recently
proposed extension of the calculus FeatherWeight Java
(FJ), supporting cyclic objects and regular recursion,
and explicitly designed to promote a novel programming
paradigm inspired by coinductive Logic Programming
(coLP), based on coinductive, rather than inductive,
interpretation of recursive function definitions. We
present a slightly modified version of coFJ where the
application of a coinductive hypothesis can trigger the
evaluation of a specific expression at declaration,
rather than at use site. Following an approach inspired
by abstract compilation, we then show how coFJ can be
directly translated into coLP, when coinductive SLD is
extended with a similar feature for explicitly solving
a goal when a coinductive hypothesis is applied. Such a
translation is quite compact and, besides showing the
direct relation between coFJ and coinductive Prolog,
provides a first prototypical but simple and effective
implementation of coFJ.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AZ-CoLP12.pdf},
keywords = {objects, coinduction, corecursion},
year = 2012
}
@inproceedings{ABM-ICTCS12,
author = {Ancona, D. and Barbieri, M. and Mascardi, V.},
title = {Global {T}ypes for {D}ynamic {C}hecking of {P}rotocol
{C}onformance of {M}ulti-{A}gent {S}ystems ({E}xtended
{A}bstract)},
booktitle = {13th {I}talian {C}onference on {T}heoretical
{C}omputer {S}cience ({ICTCS} 2012)},
editor = {Massazza, P.},
pages = {39--43},
abstract = {In this paper we investigate the theoretical
foundations of global types for dynamic checking of
protocol compliance in multi-agents systems and we
extend the formalism by introducing a concatenation
operator that allows a significant enhancement of the
expressive power of global types. As examples, we show
how two non trivial protocols can be compactly
represented in the formalism: a ping-pong protocol, and
an alternating bit protocol, in the version proposed by
Deni\backslash{}'elou and Yoshida. Both protocols
cannot be specified easily (if at all) by other global
type frameworks, while in our approach they can be
expressed by two deterministic types (in a sense made
precise in the sequel) that can be effectively employed
for dynamic checking of the conformance to the
protocol.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ABM-ICTCS12.pdf},
keywords = {agents, behavioral-types,runtime-verification},
year = 2012
}
@inproceedings{AZ-FTfJP12,
author = {Ancona, D. and Zucca, E.},
title = {Corecursive {F}eatherweight {J}ava},
booktitle = {Formal techniques for {J}ava-like programs
({FT}f{JP}12)},
abstract = {Despite cyclic data structures occur often in many
application domains, object-oriented programming
languages provide poor abstraction mechanisms for
dealing with cyclic objects. Such a deficiency is
reflected also in the research on theoretical
foundation of object-oriented languages; for instance,
Featherweigh Java (FJ), which is one of the most
widespread object-oriented calculi, does not allow
creation and manipulation of cyclic objects. We propose
an extension to Featherweight Java, called coFJ, where
it is possible to define cyclic objects, \{abstractly
corresponding to regular terms\}, and where an
abstraction mechanism, called regular corecursion, is
provided for supporting implementation of coinductive
operations on cyclic objects. We formally define the
operational semantics of coFJ, and provide a handful of
examples showing the expressive power of regular
corecursion; such a mechanism promotes a novel
programming style particularly well-suited for
implementing cyclic data structures, and for supporting
coinductive reasoning. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AZ-FTfJP12.pdf},
keywords = {objects, coinduction, corecursion},
year = 2012
}
@inproceedings{ADM-DALT12,
author = {Ancona, D. and Drossopoulou, S. and Mascardi, V.},
title = {{Automatic Generation of Self-Monitoring MASs from
Multiparty Global Session Types in Jason}},
booktitle = {Declarative agent languages and technologies (DALT
2012).},
pages = {1--20},
publisher = {Springer},
abstract = {Global session types are behavioral types designed for
specifying in a compact way multiparty interactions
between distributed components, and verifying their
correctness. We take advantage of the fact that global
session types can be naturally represented as cyclic
Prolog terms - which are directly supported by the
Jason implementation of AgentSpeak - to allow simple
automatic generation of self-monitoring MASs: given a
global session type specifying an interaction protocol,
and the implementation of a MAS where agents are
expected to be compliant with it, we define a procedure
for automatically deriving a self-monitoring MAS. Such
a generated MAS ensures that agents conform to the
protocol at run-time, by adding a monitor agent that
checks that the ongoing conversation is correct w.r.t.
the global session type. The feasibility of the
approach has been experimented in Jason for a
non-trivial example involving recursive global session
types with alternative choice and fork type
constructors. Although the main aim of this work is the
development of a unit testing framework for MASs, the
proposed approach can be also extended to implement a
framework supporting self-recovering MASs.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ADM-DALT12.pdf},
keywords = {agents, behavioral-types, runtime-verification},
year = 2012
}
@inproceedings{ACLD10-FoVeOOS10,
author = {Ancona, D. and Corradi, A. and Lagorio, G. and
Damiani, F.},
title = {Abstract compilation of object-oriented languages into
coinductive {CLP}({X}): can type inference meet
verification?},
booktitle = {Formal {V}erification of {O}bject-{O}riented
{S}oftware {I}nternational {C}onference, {F}o{V}e{OOS}
2010, {P}aris, {F}rance, {J}une 28-30, 2010,
\textbf{{R}evised {S}elected {P}apers}},
editor = {Beckert, B. and March\'e, C.},
volume = {6528},
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
abstract = {This paper further investigates the potential and
practical applicability of abstract compilation in two
different directions. First, we formally define an
abstract compilation scheme for precise prediction of
uncaught exceptions for a simple Java-like language;
besides the usual user declared checked exceptions, the
analysis covers the runtime ClassCastException. Second,
we present a general implementation schema for abstract
compilation based on coinductive CLP with variance
annotation of user-defined predicates, and propose an
implementation based on a Prolog prototype
meta-interpreter, parametric in the solver for the
subtyping constraints.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ACLD10-FoVeOOS10.pdf},
keywords = {objects,types,coinduction},
year = 2011
}
@inproceedings{AnconaFTfJP11,
author = {Ancona, D.},
title = {Coinductive big-step operational semantics for type
soundness of {J}ava-like languages},
booktitle = {Formal {T}echniques for {J}ava-like {P}rograms
({FT}f{JP}11)},
pages = {5:1--5:6},
publisher = {ACM},
abstract = {We define a coinductive semantics for a simple
Java-like language by simply interpreting coinductively
the rules of a standard big-step operational semantics.
We prove that such a semantics is sound w.r.t. the
usual small-step operational semantics, and then prove
soundness of a conventional nominal type system w.r.t.
the coinductive semantics. From these two results,
soundness of the type system w.r.t. the small-step
semantics can be easily deduced. This new proposed
approach not only opens up new possibilities for
proving type soundness, but also provides useful
insights on the connection between coinductive big-step
operational semantics and type systems.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/FTfJP11.pdf},
isbn = {978-1-4503-0893-9},
keywords = {semantics, types, objects, coinduction},
year = 2011
}
@inproceedings{MA-DALT11,
author = {Mascardi, V. and Ancona, D},
title = {1000 Years of Coo-{BDI}},
booktitle = {{D}eclarative {A}gent {L}anguages and {T}echnologies
{IX} - 9th {I}nternational {W}orkshop, {DALT} 2011,
Revised Selected and Invited Papers},
pages = {95-101},
abstract = {The idea of extending the BDI architecture with
cooperativity started shaping in 2003 when two
independent proposals to support cooperation in a BDI
setting were presented at DALT. One proposal, Coo-BDI,
extended the BDI architecture by allowing agents to
cooperate by exchanging and sharing plans in a quite
flexible way; the other extended the BDI operational
semantics for introducing speech-act based
communication, including primitives for plan exchange.
Besides allowing a natural and seamless integration
with speech-act based communication for BDI languages,
the intuitions behind Coo-BDI have proved to be
promising and attractive enough to give rise to new
investigations. In this retrospective review we discuss
papers that were influenced by Coo-BDI and we outline
other potential developments for future research.},
keywords = {agents, behavioral-types},
ftp = {http://www.disi.unige.it/person/MascardiV/Download/1000YearsCooBDI.pdf},
year = 2011
}
@inproceedings{MABR-IAT11,
author = {Mascardi, V. and Ancona, D. and Bordini, R. H. and
Ricci, A.},
title = {CooL-{A}gent{S}peak: {E}nhancing {A}gent{S}peak-{DL}
{A}gents with {P}lan {E}xchange and {O}ntology
{S}ervices},
booktitle = {Proceedings of the 2011 {IEEE}/{WIC}/{ACM}
{I}nternational {C}onference on {I}ntelligent {A}gent
{T}echnology, {IAT} 2011},
pages = {109-116},
abstract = {In this paper we present CooL-AgentSpeak, an extension
of AgentSpeak-DL with plan exchange and ontology
services. In CooL-AgentSpeak, the search for a plan is
no longer limited to the agent's local plan library but
is carried out in the other agents' libraries too,
according to a cooperation strategy, and it is not
based solely on unification and on the subsumption
relation between concepts, but also on ontology
matching. Belief querying and updating take advantage
of ontological reasoning and matching as well.},
keywords = {agents, behavioral-types},
ftp = {http://www.disi.unige.it/person/MascardiV/Download/IAT2011.pdf},
year = 2011
}
@inproceedings{AL-FTfJP10,
author = {D. Ancona and G. Lagorio},
title = {Complete coinductive subtyping for abstract
compilation of object-oriented languages},
booktitle = {F{TFJP} '10: {P}roceedings of the 12th {W}orkshop on
{F}ormal {T}echniques for {J}ava-{L}ike {P}rograms},
series = {ACM Digital Library},
pages = {1:1--1:7},
publisher = {ACM},
abstract = {Coinductive abstract compilation is a novel technique,
which has been recently introduced, for defining
precise type systems for object-oriented languages. In
this approach, type inference consists in translating
the program to be analyzed into a Horn formula f, and
in resolving a certain goal w.r.t. the coinductive
(that is, the greatest) Herbrand model of f. Type
systems defined in this way are idealized, since types
and, consequently, goal derivations, are not finitely
representable. Hence, sound implementable
approximations have to rely on the notions of regular
types and derivations, and of subtyping and subsumption
between types and atoms, respectively. In this paper we
address the problem of defining a complete subtyping
relation <= between types built on object and union
type constructors: we interpret types as sets of
values, and investigate on a definition of subtyping
such that t\_1 <= t\_2 is derivable whenever the
interpretation of t\_1 is contained in the
interpretation of t\_2. Besides being an important
theoretical result, completeness is useful for
reasoning about possible implementations of the
subtyping relation, when restricted to regular types. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/FTfJP10.pdf},
keywords = {objects,types,coinduction},
url = {http://portal.acm.org/citation.cfm?id=1924520},
year = 2010
}
@inproceedings{AL10-GandALF10,
author = {D. Ancona and G. Lagorio},
title = {Coinductive subtyping for abstract compilation of
object-oriented languages into {H}orn formulas},
booktitle = {Proceedings of {G}and{ALF} 2010},
editor = {{Montanari A.} and {Napoli M.} and {Parente M.}},
volume = {25},
series = {Electronic Proceedings in Theoretical Computer Science},
pages = {214--223},
abstract = {In recent work we have shown how it is possible to
define very precise type systems for object-oriented
languages by abstractly compiling a program into a Horn
formula f. Then type inference amounts to resolving a
certain goal w.r.t. the coinductive (that is, the
greatest) Herbrand model of f. Type systems defined in
this way are idealized, since in the most interesting
instantiations both the terms of the coinductive
Herbrand universe and goal derivations cannot be
finitely represented. However, sound and quite
expressive approximations can be implemented by
considering only regular terms and derivations. In
doing so, it is essential to introduce a proper
subtyping relation formalizing the notion of
approximation between types. In this paper we study a
subtyping relation on coinductive terms built on union
and object type constructors. We define an
interpretation of types as set of values induced by a
quite intuitive relation of membership of values to
types, and prove that the definition of subtyping is
sound w.r.t. subset inclusion between type
interpretations. The proof of soundness has allowed us
to simplify the notion of contractive derivation and to
discover that the previously given definition of
subtyping did not cover all possible representations of
the empty type. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/GandALF10.pdf},
keywords = {objects,types,coinduction},
year = 2010
}
@inproceedings{AnconaMascardi-MALLOW-AWESOME09,
author = {Ancona, D. and Mascardi, V.},
title = {Exploiting {A}gents and {O}ntologies for {T}ype- and
{M}eaning-{S}afe {A}daptation of {J}ava {P}rograms},
booktitle = {Proceedings of the {MALLOW}-{AWESOME} 2009 workshop},
volume = {494},
publisher = {CEUR Workshop Proceedings},
abstract = {This paper discusses an application of intelligent
software agents and ontologies to solve the problem of
semi-automatic porting of Java programs. We have
designed a system for aiding users to adapt Java code
in a type- and meaning-safe way, when an application
has to migrate to new libraries which are not fully
compatible with the legacy ones. To achieve this, we
propose an approach based on an integration of the two
type-theoretic notions of subtyping and type
isomorphism with ontology matching. While the former
notions are needed to ensure flexible adaptation in the
presence of type-safety, the latter supports the user
to preserve the meaning of names that appear in the
program to be adapted. Intelligent agents control the
different components of the system and interact with
other agents in order to provide the final user with
the semi-automatic porting service he/she required.},
ftp = {http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-494/mallowawesomepaper6.pdf},
keywords = {agents,refactoring},
year = 2009
}
@inproceedings{CAR-ICOOLPS09,
author = {Cuni, A. and Ancona, D. and Rigo, A.},
title = {Faster than {C}\#: efficient implementation of dynamic
languages on {.NET}},
booktitle = {{ICOOOLPS} '09: Proceedings of the 4th workshop on the
{I}mplementation, {C}ompilation, {O}ptimization of
{O}bject-{O}riented {L}anguages and {P}rogramming
{S}ystems},
pages = {26--33},
address = {New York, NY, USA},
publisher = {ACM},
abstract = {The Common Language Infrastructure (CLI) is a virtual
machine expressly designed for implementing statically
typed languages such as C\#, therefore programs written
in dynamically typed languages are typically much
slower than C\# when executed on .NET. Recent
developments show that Just In Time (JIT) compilers can
exploit runtime type information to generate quite
efficient code. Unfortunately, writing a JIT compiler
is far from being simple. In this paper we report our
positive experience with automatic generation of JIT
compilers as supported by the PyPy infrastructure, by
focusing on JIT compilation for .NET. Following this
approach, we have in fact added a second layer of JIT
compilation, by allowing dynamic generation of more
efficient .NET bytecode, which in turn can be compiled
to machine code by the .NET JIT compiler. The main and
novel contribution of this paper is to show that this
two-layers JIT technique is effective, since programs
written in dynamic languages can run on .NET as fast as
(and in some cases even faster than) the equivalent C\#
programs. The practicality of the approach is
demonstrated by showing some promising experiments done
with benchmarks written in a simple dynamic language. },
doi = {http://doi.acm.org/10.1145/1565824.1565828},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ICOOOLPS09.pdf},
isbn = {978-1-60558-541-3},
keywords = {objects,dynamicLang},
location = {Genova, Italy},
year = 2009
}
@inproceedings{ALZ-TYPES08,
author = {Ancona, D. and Lagorio, G. and Zucca, E.},
title = {Type inference by coinductive logic programming},
booktitle = {Post-{P}roceedings of {TYPES} 2008},
editor = {Berardi S., Damiani F., de' Liguoro U.},
volume = {5497},
series = {Lecture Notes in Computer Science},
publisher = {Springer Verlag},
abstract = {We propose a novel approach to constraint-based type
inference based on coinductive logic programming. That
is, constraint generation corresponds to translation
into a conjunction of Horn clauses P, and constraint
satisfaction is defined in terms of the maximal
coinductive Herbrand model of P. We illustrate the
approach by formally defining this translation for a
small object-oriented language similar to Featherweight
Java, where type annotations in field and method
declarations can be omitted. In this way, we obtain a
very precise type inference and provide new insights
into the challenging problem of type inference for
object-oriented programs. Since the approach is
deliberately declarative, we define in fact a formal
specification for a general class of algorithms, which
can be a useful road maps to researchers. Moreover,
despite we consider here a particular language, the
methodology could be used in general for providing
abstract specifications of type inference for different
kinds of programming languages.},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ALZ0908.pdf},
keywords = {objects,types,coinduction},
year = 2009
}
@inproceedings{AL-ECOOP09,
author = {Ancona, D. and Lagorio, G.},
title = {Coinductive type systems for object-oriented languages},
booktitle = {ECOOP 2009 - Object-Oriented Programming},
editor = {{S. Drossopoulou}},
volume = {5653},
series = {Lecture Notes in Computer Science},
pages = {2--26},
publisher = {Springer Verlag},
note = {\textbf{Best paper prize}},
abstract = {We propose a novel approach based on coinductive logic
to specify type systems of programming languages. The
approach consists in encoding programs in Horn formulas
which are interpreted w.r.t. their coinductive Herbrand
model. We illustrate the approach by first specifying a
standard type system for a small object-oriented
language similar to Featherweight Java. Then we define
an idealized type system for a variant of the language
where type annotations can be omitted. The type system
involves infinite terms and proof trees not
representable in a finite way, thus providing a
theoretical limit to type inference of object-oriented
programs, since only sound approximations of the system
can be implemented. Approximation is naturally captured
by the notions of subtyping and subsumption; indeed,
rather than increasing the expressive power of the
system, as it usually happens, here subtyping is needed
for approximating infinite non regular types and proof
trees with regular ones. },
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/ECOOP09.pdf},
keywords = {objects,types,coinduction},
year = 2009
}
@inproceedings{ALZ-ICTCS07,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {Type inference for polymorphic methods in {J}ava-like
languages},
booktitle = {Theoretical {C}omputer {S}cience: {P}roceedings of the
10th {I}talian {C}onference on {ICTCS} '07},
editor = {Italiano, G. and Moggi, E. and Laura, L.},
publisher = {World Scientific},
note = {See also the
\url{ftp://ftp.disi.unige.it/pub/person/AnconaD/TIPMJLlong.pdf}{long
version} with proofs},
abstract = {In languages like C++, Java and C#, typechecking
algorithms require methods to be annotated with their
parameter and result types, which are either fixed or
constrained by a bound. We show that, surprisingly
enough, it is possible to infer the polymorphic type of
a method where parameter and result types are left
unspecified, as happens in most functional languages.
These types intuitively capture the (less restrictive)
requirements on arguments needed to safely apply the
method. We formalize our ideas on a minimal Java
subset, for which we define a type system with
polymorphic types and prove its soundness. We then
describe an algorithm for type inference and prove its
soundness and completeness. A prototype implementing
inference of polymorphic types is available.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ALZ-ICTCS07.pdf},
keywords = {objects, types},
year = 2007
}
@inproceedings{AZ-ICTCS07,
author = {D.~Ancona and E.~Zucca},
title = {A formal framework for compositional compilation
(extended abstract)},
booktitle = {Theoretical {C}omputer {S}cience: {P}roceedings of the
10th {I}talian {C}onference on {ICTCS} '07},
editor = {Ancona, D. and Lagorio, G. and Zucca, E.},
publisher = {World Scientific},
note = {See also the
\url{ftp://ftp.disi.unige.it/pub/person/AnconaD/FFCClong.pdf}{long
version} with proofs and examples of framework
instantiation.},
abstract = {We define a general framework for compositional
compilation, meant as the ability of building an
executable application by separate compilation and
linking of single fragments, opposed to global
compilation of the complete source application code.
More precisely, compilation of a source code fragment
in isolation generates a corresponding binary fragment
equipped with type information, formally modeled as a
typing, allowing type safe linking of fragments without
re-inspecting code. We formally define a notion of
soundness and completeness of compositional compilation
w.r.t. global compilation, and show how linking can be
in practice expressed by an entailment relation on
typings. Then, we provide a sufficient condition on
such entailment to ensure soundness and completeness of
compositional compilation, and compare this condition
with the principal typings property. Furthermore, we
show that this entailment relation can often be
modularly expressed by an entailment relation on type
environments and a subtyping relation.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/AZ-ICTCS07.pdf},
keywords = {types},
year = 2007
}
@inproceedings{AACM-DLS07,
author = {Ancona, D. and Ancona, M. and Cuni, A and Matsakis, N.},
title = {R{P}ython: a {S}tep {T}owards {R}econciling
{D}ynamically and {S}tatically {T}yped {OO} {L}anguages},
booktitle = {O{OPSLA} 2007 {P}roceedings and {C}ompanion, {DLS}'07:
{P}roceedings of the 2007 {S}ymposium on {D}ynamic
{L}anguages},
pages = {53--64},
publisher = {ACM},
abstract = {Although the C-based interpreter of Python is
reasonably fast, implementations on the CLI or the JVM
platforms offers some advantages in terms of robustness
and interoperability. Unfortunately, because the CLI
and JVM are primarily designed to execute statically
typed, object-oriented languages, most dynamic language
implementations cannot use the native bytecodes for
common operations like method calls and exception
handling; as a result, they are not able to take full
advantage of the power offered by the CLI and JVM. We
describe a different approach that attempts to preserve
the flexibility of Python, while still allowing for
efficient execution. This is achieved by limiting the
use of the more dynamic features of Python to an
initial, bootstrapping phase. This phase is used to
construct a final RPython (Restricted Python) program
that is actually executed. RPython is a proper subset
of Python, is statically typed, and does not allow
dynamic modification of class or method definitions;
however, it can still take advantage of Python features
such as mixins and first-class methods and classes.
This paper presents an overview of RPython, including
its design and its translation to both CLI and JVM
bytecode. We show how the bootstrapping phase can be
used to implement advanced features, like extensible
classes and generative programming. We also discuss
what work remains before RPython is truly ready for
general use, and compare the performance of RPython
with that of other approaches.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/DLS08.pdf},
keywords = {objects,dynamicLang},
year = 2007
}
@inproceedings{ALZ-JMLC06,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {Flexible Type-Safe Linking of Components for
{J}ava-like Languages},
booktitle = {Joint {M}odular {L}anguages {C}onference ({JMLC} 2006)},
volume = {4228},
series = {Lecture Notes in Computer Science},
pages = {136--154},
publisher = {Springer Verlag},
note = {See also the \url{Reports.html#FTFCJL}{extended
version}},
abstract = {We define a framework of components based on Java-like
languages, where components are binary mixin modules.
Basic components can be obtained from a collection of
classes by compiling such classes in isolation; for
allowing that, requirements in the form of type
constraints are associated with each class.
Requirements are specified by the user who, however, is
assisted by the compiler which can generate missing
constraints essential to guarantee type safety. Basic
components can be composed together by using a set of
expressive typed operators; thanks to soundness
results, such a composition is always type safe. The
framework is designed as a separate layer which can be
instantiated on top of any Java-like language; a
prototype implementation is available for a small Java
subset. Besides safety, the approach achieves great
flexibility in reusing components for two reasons: (1)
type constraints generated for a single component
exactly capture all possible contexts where it can be
safely used; (2) composition of components is not
limited to conventional linking, but is achieved by
means of a set of powerful operators typical of mixin
modules. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/JMLC06.pdf},
keywords = {objects, types, components},
year = 2006
}
@inproceedings{ALZ-FTfJP05,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {Smart Modules for {J}ava-like Languages},
booktitle = {7th Intl. Workshop on Formal Techniques for Java-like Programs 2005},
abstract = {We present SmartJavaMod, a language of mixin modules
supporting compositional compilation, and constructed
on top of the Java language. More in detail, this means
that basic modules are collections of Java classes
which can be typechecked in isolation, inferring
constraints on missing classes and allowing safe reuse
of the module in as many contexts as possible.
Furthermore, it is possible to write structured module
expressions by means of a set of module operators, and
a type system at the module level ensures type safety,
in the sense that we can always reduce a module
expression to a well-formed collection of Java classes.
What we obtain is a module language which is extremely
flexible and allows the encoding (without any need of
enriching the core level, that is, the Java language)
of a variety of constructs supporting software reuse
and extensibility.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/SMJL.pdf},
keywords = {types, objects, components},
month = jul,
year = 2005
}
@inproceedings{MDA-WOA05,
author = {Mascardi, V. and Demergasso, D. and Ancona, D.},
title = {Languages for {P}rogramming {BDI}-style {A}gents: an
{O}verview},
booktitle = {W{OA} 2005 - {W}orkshop {F}rom {O}bjects to {A}gents},
editor = {Corradini, F. and De Paoli, F. and Merelli, E. and
Omicini, A.},
pages = {9--15},
abstract = {The notion of an intelligent agent as an entity which
appears to be the subject of mental attitudes like
beliefs, desires and intentions (hence, the BDI
acronym) is well known and accepted by many
researchers. Besides the definition of various BDI
logics, many languages and integrated environments for
programming BDI-style agents have been proposed since
the early nineties. In this reasoned bibliography, nine
languages and implemented systems, namely PRS, dMARS,
JACK, JAM, Jadex, AgentSpeak(L), 3APL, Dribble, and
Coo-BDI, are discussed and compared. References to
other systems and languages based on the BDI model are
also provided, as well as pointers to surveys dealing
with related topics. },
ftp = {http://www.disi.unige.it/person/MascardiV/Download/ancona-demergasso-mascardi-WOA05-final.pdf},
keywords = {agents},
year = 2005
}
@inproceedings{ADDZ-POPL05,
author = {D.~Ancona and F.~Damiani and S.~Drossopoulou and
E.~Zucca},
title = {Polymorphic Bytecode: Compositional Compilation for
{J}ava-like Languages},
booktitle = {P{OPL} 2005 - {T}he 32nd {ACM} {SIGPLAN}-{SIGACT}
{S}ymposium on {P}rinciples of {P}rogramming
{L}anguages},
pages = {26--37},
publisher = {ACM Press},
abstract = {We define compositional compilation as the ability to
typecheck source code fragments in isolation, generate
corresponding binaries, and link together fragments
whose mutual assumptions are satisfied, without
reinspecting the code. Even though compositional
compilation is a highly desirable feature, in Java-like
languages it can hardly be achieved. This is due to the
fact that the bytecode generated for a fragment (say, a
class) is not uniquely determined by its source code,
but also depends on the compilation context. We propose
a way to obtain compositional compilation for Java, by
introducing a polymorphic form of bytecode containing
type variables (ranging over class names) and equipped
with a set of constraints involving type variables.
Thus, polymorphic bytecode provides a representation
for all the (standard) bytecode that can be obtained by
replacing type variables with classes satisfying the
associated constraints. We illustrate our proposal by
developing a typing and a linking algorithm. The typing
algorithm compiles a class in isolation generating the
corresponding polymorphic bytecode fragment and
constraints on the classes it depends on. The linking
algorithm takes a collection of polymorphic bytecode
fragments, checks their mutual consistency, and
possibly simplifies and specializes them. In
particular, linking a self-contained collection of
fragments either fails, or produces standard bytecode
(the same as what would have been produced by standard
compilation of all fragments).},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/POPL05.pdf},
keywords = {types, objects},
year = 2005
}
@inproceedings{AFZ-TGC05,
author = {D.~Ancona and S.~Fagorzi and E.~Zucca},
title = {Mixin Modules for Dynamic Rebinding},
booktitle = {Trustworthy {G}lobal {C}omputing: {IST}/{FET}
{I}nternational {W}orkshop, {TGC} 2005, {E}dinburgh,
{UK}, {A}pril 7-9, 2005. {R}evised {S}elected {P}apers},
editor = {R. De Nicola and D. Sangiorgi},
volume = {3705},
series = {Lecture Notes in Computer Science},
pages = {279--298},
publisher = {Springer Verlag},
abstract = {Dynamic rebinding is the ability of changing the
definitions of names at execution time. While dynamic
rebinding is clearly useful in practice, and
increasingly needed in modern systems, most programming
languages provide only limited and ad-hoc mechanisms,
and no adequate semantic understanding currently
exists. Here, we provide a simple and powerful
mechanism for dynamic rebinding by means of a calculus
of mixin modules (mutually recursive modules allowing
redefinition of components) where, differently from the
traditional approach, module operations can be
performed after selecting and executing a module
component: in this way, execution can refer to virtual
components, which can be rebound when module operators
are executed. In particular, in our calculus module
operations are performed on demand, when execution
would otherwise get stuck. We provide a sound type
system, which ensures that execution never tries to
access module components which cannot become available,
and show how the calculus can be used to encode a
variety of real-world dynamic rebinding mechanisms. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/TGC05.pdf},
keywords = {types, components},
year = 2005
}
@inproceedings{BMAB-EUMAS05,
author = {Bozzo, L. and Mascardi, V. and Ancona, D. and Busetta,
P.},
title = {C{OOWS}: {A}daptive {BDI} {A}gents meet
{S}ervice-{O}riented {C}omputing},
booktitle = {E{UMAS} 2005 - {P}roceedings of the {T}hird {E}uropean
{W}orkshop on {M}ulti-{A}gent {S}ystems, {B}russels,
{B}elgium, {D}ecember 7-8, 2005},
editor = {Gleizes, M. P. and Kaminka, G. A. and Now\'e, A. and
Ossowski, S. and Tuyls, K. and Verbeeck, K.},
pages = {473},
abstract = {Mainstream research in Web Services is currently
looking at two main aspects, namely formally describing
interactions among services, and finding and combining
services. Much work made in the intelligent agents area
is being applied to these issues. In this paper, we
investigate the application of agent research to Web
Services from a different perspective, that is,
procedural learning. The final objective is to enable
an adaptive system (an agent in our terminology) to
discover or being fed with knowledge concerning how to
solve a specific set of problems in a specific software
or physical environment. Our work is a very preliminary
step into the issue, with the main objective of
assessing how current Web Services technology can
support a component, described in terms of beliefs,
desires and intentions, dynamically adapting its
behaviour to new environments. },
ftp = {http://www.disi.unige.it/person/MascardiV/Download/coows4eumas.zip},
keywords = {agents},
year = 2005
}
@inproceedings{AM-FMCO05,
author = {Ancona, D. and Moggi, E.},
title = {Program {G}eneration and {C}omponents},
booktitle = {Formal {M}ethods for {C}omponents and {O}bjects:
{T}hird {I}nternational {S}ymposium, {FMCO} 2004},
editor = {de Boer, F. S. and Bonsangue, M. M. and Graf, S. and
de Roever, W.},
volume = {3657},
series = {Lecture Notes in Computer Science},
pages = {222--250},
publisher = {Springer Verlag},
abstract = {The first part of the paper gives a brief overview of
meta-programming, in particular program generation, and
its use in software development. The second part
introduces a basic calculus, related to FreshML, that
supports program generation (as described through
examples and a translation of MetaML into it) and
programming in-the-large (this is demonstrated by a
translation of CMS into it).},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FMCO04.pdf},
keywords = {components, meta-programming, types},
year = 2005
}
@inproceedings{ADDZ-FTfJP04,
author = {D.~Ancona and F.~Damiani and S.~Drossopoulou and
E.~Zucca},
title = {Even More Principal Typings for {J}ava-like Languages},
booktitle = {6th Intl. Workshop on Formal Techniques for Java Programs 2004},
abstract = {We propose an innovative type system for Java-like
languages which can infer the minimal set of
assumptions guaranteeing type correctness of a class c,
and generate (abstract) bytecode for c, by inspecting
the source code of c in isolation. We prove the above
properties of our type system by showing that it has
principal typings. As well known, principal typings
support compositional analysis, whereby a collection of
classes can be safely linked together without further
inspection of the classes' code, provided that each
class has been typechecked in isolation
(intra-checking), and that the mutual class assumptions
are satisfied (inter-checking). We also develop an
algorithm for inter-checking, and prove it correct. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FTfJP04.pdf},
keywords = {types, components},
month = jun,
year = 2004
}
@inproceedings{AM-GPCE04,
author = {Ancona, D. and Moggi, E.},
title = {A {F}resh {C}alculus for {N}ame {M}anagement},
booktitle = {Generative {P}rogramming and {C}omponent {E}ngineering
({GPCE} 2004)},
editor = {Karsai, G. and Visser, E.},
volume = {3286},
series = {Lecture Notes in Computer Science},
pages = {206--224},
publisher = {Springer Verlag},
abstract = {We define a basic calculus for name management, which
is obtained by an appropriate combination of three
ingredients: extensible records (in a simplified form),
names (as in FreshML), computational types (to allow
computational effects, including generation of fresh
names). The calculus supports the use of symbolic names
for programming in-the-large, e.g. it subsumes Ancona
and Zucca's calculus for module systems, and for
meta-programming (but not the intensional analysis of
object level terms supported by FreshML), e.g. it
subsumes (and improves) Nanevski and Pfenning's
calculus for meta-programming with names and necessity.
Moreover, it models some aspects of Java's class
loaders.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FCNM.pdf},
keywords = {meta-programming, types, components},
year = 2004
}
@inproceedings{FZA-SAC04,
author = {S.~Fagorzi and E.~Zucca and D.~Ancona},
title = {Modeling Multiple Class Loaders by a Calculus for
Dynamic Linking},
booktitle = {S{AC} 2004 - {P}roceedings of the 2004 {ACM}
{S}ymposium on {A}pplied {C}omputing},
editor = {Haddad, H. and Omicini, A. and Wainwright, R. L. and
Liebrock, L. M.},
pages = {1281--1288},
publisher = {ACM Press},
abstract = {A recent paper proposes a calculus for modeling
dynamic linking independently of the details of a
particular programming environment. Here we use a
particular instantiation of this calculus to encode a
toy language, called MCL, which provides an abstract
view of the mechanism of dynamic class loading with
multiple loaders as in Java. The aim is twofold. On one
hand, we show the effectiveness of the calculus in
modeling existing loading and linking policies. On the
other hand, we provide a simple formal model which
allows a better understanding of Java-like loading
mechanisms and also shows an intermediate solution
between the rigid approach based only on the classpath
and that which allows arbitrary user-defined loaders,
which can be intricate and error-prone.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/SAC04.ps.gz},
keywords = {types, components},
year = 2004
}
@inproceedings{AZ-POPL04,
author = {D.~Ancona and E.~Zucca},
title = {Principal Typings for {J}ava-like languages},
booktitle = {P{OPL} 2004 - {T}he 31st {ACM} {SIGPLAN}-{SIGACT}
{S}ymposium on {P}rinciples of {P}rogramming
{L}anguages},
pages = {306--317},
publisher = {ACM Press},
abstract = {The contribution of the paper is twofold. First, we
provide a general notion of type system supporting
separate compilation and inter-checking, and a formal
definition of soundess and completeness of
inter-checking w.r.t. global compilation. These
properties are important in practice since they allow
selective recompilation. In particular, we show that
they are guaranteed when the type system has principal
typings and provides sound and complete entailment
relation between type environments and types. The
second contribution is more specific, and is an
instantiation of the notion of type system previously
defined for Featherweight Java [IgarashiEtAl99] with
method overloading and field hiding. The aim is to show
that it is possible to define type systems for
Java-like languages, which, differently from those used
by standard compilers, have principal typings, hence
can be used as a basis for selective recompilation.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/POPL04.ps.gz},
keywords = {types, objects},
year = 2004
}
@inproceedings{AFZ-TCS04,
author = {D.~Ancona and S.~Fagorzi and E.~Zucca},
title = {A Calculus with Lazy Module Operators},
booktitle = {I{FIP} 18th {W}orld {C}omputer {C}ongress, {TC}1 3rd
{I}nt. {C}onf. on {T}heoretical {C}omputer {S}cience
({TCS}2004)},
editor = {Levy, J.-J. and Mayr, E. W. and Mitchell, J. C.},
pages = {423-436},
publisher = {Kluwer Academic Publishers},
abstract = {Modern programming environments such as those of Java
and C\# support dynamic loading of software fragments.
More in general, we can expect that in the future
systems will support more and more forms of
interleaving of reconfiguration steps and standard
execution steps, where the software fragments composing
a program are dynamically changed and/or combined on
demand and in different ways. However, existing kernel
calculi providing formal foundations for module systems
are based on a static view of module manipulation, in
the sense that open code fragments can be flexibly
combined together, but all module operators must be
performed once for all before starting execution of a
program, that is, evaluation of a module component. The
definition of clean and powerful module calculi
supporting lazy module operators, that is, operators
which can be performed after the selection of some
module component, is still an open problem. Here, we
provide an example in this direction (the first at our
knowledge), defining DCMS, an extension of the Calculus
of Module Systems where module operators can be
performed at execution time and, in particular, are
executed on demand, that is, only when needed by the
executing program. In other words, execution steps, if
possible, take the precedence over reconfiguration
steps. The type system of the calculus, which is proved
to be sound, relies on a dependency analysis which
ensures that execution will never try to access module
components which cannot become available by performing
reconfiguration steps.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/TCS04.pdf},
keywords = {types, components},
year = 2004
}
@inproceedings{AMHB-AAMAS04,
author = {Ancona, D. and Mascardi, V. and H\"ubner, J.F. and
Bordini, R. H.},
title = {Coo-{A}gent{S}peak: {C}ooperation in {A}gent{S}peak
through {P}lan {E}xchange},
booktitle = {A{AMAS} 2004 ({I}nt. {C}onf. on {A}utonomous {A}gents
and {M}ultiagent {S}ystems)},
editor = {Jennings, N. R. and Sierra, C. and Sonenberg, L. and
Tambe, M.},
pages = {698--705},
publisher = {ACM press},
abstract = { This paper brings together two recent contributions
to the area of declarative agent-oriented programming,
made feasible in practice by the recent introduction of
an interpreter for a BDI programming language. The work
on CooBDI has proposed an approach to plan exchange
which applies to BDI agents in general. The other
contribution is the introduction of special
illocutionary forces for plan exchange between
AgentSpeak agents. This has been implemented in Jason,
an interpreter for an extended version of
AgentSpeak(L). Jason also provides mechanisms that
allow the specification of plan permissions, which are
important in the cooperation context. This paper shows
how elaborate plan exchange can take place between
AgentSpeak agents implemented with Jason. It also
discusses an application in which plan sharing is
essential.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/AAMAS04.pdf},
keywords = {agents},
year = 2004
}
@inproceedings{AM-DALT04,
author = {Ancona, D. and Mascardi, V.},
title = {Coo-{BDI}: {E}xtending the {BDI} {M}odel with
{C}ooperativity},
booktitle = {Declarative {A}gent {L}anguages and {T}echniques,
{F}irst {I}nternational {W}orkshop, {DALT} 2003,
{R}evised {S}elected and {I}nvited {P}apers},
editor = {Leite, J. and Omicini, A. and Sterling, L. and
Torroni, P.},
volume = {2990},
series = {Lecture Notes in Computer Science},
pages = {109--134},
publisher = {Springer Verlag},
abstract = {We define Coo-BDI, an extension of the BDI
architecture with the notion of cooperativity. Agents
can cooperate by exchanging and sharing plans in a
quite flexible way. As a main result Coo-BDI promotes
adaptivity and sharing of resources; as a by-product,
it provides a better support for dealing with agents
which do not possess their own procedural knowledge for
processing a given event. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/DALT03.ps.gz},
keywords = {agents},
year = 2004
}
@inproceedings{AFMZ-ICALP03,
author = {D. Ancona and S. Fagorzi and E. Moggi and E. Zucca},
title = {Mixin Modules and Computational Effects},
booktitle = {I{CALP} 2003 - {A}utomata, {L}anguages and
{P}rogramming},
editor = {Goos, G. and Hartmanis, J. and van Leeuwen, J.},
volume = {2719},
series = {Lecture Notes in Computer Science},
pages = {224--238},
publisher = {Springer Verlag},
abstract = {We define a calculus for investigating the
interactions between mixin modules and computational
effects, by combining the purely functional mixin
calculus CMS with a monadic metalanguage supporting the
two separate notions of simplification (local rewrite
rules) and computation (global evaluation able to
modify the store). This distinction is important for
smoothly integrating the CMS rules (which are all
local) with the rules dealing with the imperative
features. In our calculus mixins can contain mutually
recursive computational components which are explicitly
computed by means of a new mixin operator whose
semantics is defined in terms of a Haskell-like
recursive monadic binding. Since we mainly focus on the
operational aspects, we adopt a simple type system like
that for Haskell, that does not detect dynamic errors
related to bad recursive declarations involving
effects. The calculus serves as a formal basis for
defining the semantics of imperative programming
languages supporting first class mixins while
preserving the CMS equational reasoning.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ICALP03.ps.gz},
keywords = {types, components},
year = 2003
}
@inproceedings{AL-FTfJP03,
author = {D.~Ancona and G.~Lagorio},
title = {Stronger Typings for Separate Compilation of
{J}ava-like Languages ({E}xtended {A}bstract)},
booktitle = {5th Intl. Workshop on Formal Techniques for Java Programs 2003},
abstract = {We define and implement a formal system supporting
separate compilation for a small but significant
Java-like language. This system is proved to be
stronger than the standard compilation of both Java and
C\#, in the sense that it better supports software
reuse by avoiding unnecessary recompilation steps after
code modification which are usually performed by using
the standard compilers. This is achieved by introducing
the notion of local type assumption allowing the user
to specify weaker requirements on the source fragments
which need to be compiled in isolation. Another
important property satisfied by our system is
compositionality, which corresponds to the intuition
that if a set of fragments can be separately compiled
and such fragments are compatible, then it is possible
to compile all the fragments together as a unique
program and obtain the same result.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FTfJP03.ps.gz},
http = {http://www.disi.unige.it/person/AnconaD/Software/FJsc/},
keywords = {objects, types},
url = {http://www.cs.ru.nl/ftfjp/2003.html},
year = 2003
}
@inproceedings{AFZ-ICTCS03,
author = {D. Ancona and S. Fagorzi and E. Zucca},
title = {A Calculus for Dynamic Linking},
booktitle = {I{CTCS} 2003 - {T}heoretical {C}omputer {S}cience},
editor = {C. Blundo and C. Laneve},
volume = {2841},
series = {Lecture Notes in Computer Science},
pages = {284--301},
publisher = {Springer Verlag},
abstract = {We define a calculus for modeling dynamic linking
independently of the details of a particular
programming environment. The calculus distinguishes at
the language level the notions of software
configuration and execution, by introducing separate
syntactic notions of linkset expression and command,
respectively. A reduction step can be either a
simplification of a linkset expression, or the
execution of a command w.r.t. a specific underlying
software configuration denoted by a linkset expression;
because of dynamic linking, these two kinds of
reductions are interleaved. The type system of the
calculus, which is proved to be sound, relies on an
accurate dependency analysis for ensuring type safety
without losing the advantages offered by dynamic
linking.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ICTCS03.ps.gz},
keywords = {types, components},
year = 2003
}
@inproceedings{ALZ-PPDP02,
author = {D. Ancona and G. Lagorio and E. Zucca},
title = {True Separate Compilation of {J}ava Classes},
booktitle = {A{CM} {SIGPLAN} {C}onference on {P}rinciples and
{P}ractice of {D}eclarative {P}rogramming ({PPDP}'02)},
pages = {189--200},
publisher = {ACM Press},
abstract = {We define a type system modeling true separate
compilation for a small but significant Java subset, in
the sense that a single class declaration can be
intra-checked (following the Cardelli's terminology)
and compiled providing a minimal set of type
requirements on missing classes. These requirements are
specified by a local type environment associated with
each single class, while in the existing formal
definitions of the Java type system classes are typed
in a global type environment containing all the type
information on a closed program. We also provide formal
rules for static inter-checking and relate our approach
with compilation of closed programs, by proving that we
get the same results. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/TrueSepCompLong.ps.gz},
keywords = {objects, types},
year = 2002
}
@inproceedings{ALZ-ECOOP02,
author = {D. Ancona and G. Lagorio and E. Zucca},
title = {A Formal Framework for {J}ava Separate Compilation},
booktitle = {E{COOP} 2002 - {O}bject-{O}riented {P}rogramming},
editor = {B. Magnusson},
volume = {2374},
series = {Lecture Notes in Computer Science},
pages = {609--635},
publisher = {Springer Verlag},
abstract = {We define a formal notion, called compilation schema,
allowing to specify different possibilities for
performing the overall process of Java compilation,
which includes type-checking of source fragments with
generation of corresponding binary code, type-checking
of binary fragments, extraction of type information
from fragments and definition of dependencies among
them. We consider three compilation schemata of
interest for Java, that is, minimal, SDK and safe,
which correspond to a minimal set of checks, the checks
performed by the SDK implementation, and all the checks
needed to prevent run-time linkage errors,
respectively. In order to demonstrate our approach, we
define a kernel model for Java separate compilation and
execution, consisting in a small Java subset, and a
simple corresponding binary language for which we
provide an operational semantics including run-time
verification. We define a safe compilation schema for
this language and formally prove type safety.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ECOOP02.ps.gz},
keywords = {objects, types},
year = 2002
}
@inproceedings{AZ-ECOOP01,
author = {D. Ancona and E. Zucca},
title = {True Modules for {J}ava-like Languages},
booktitle = {E{COOP} 2001 - {O}bject-{O}riented {P}rogramming},
editor = {J.L. Knudsen},
volume = {2072},
series = {Lecture Notes in Computer Science},
pages = {354--380},
publisher = {Springer Verlag},
abstract = {We present JavaMod, a true module system constructed
on top of a Java-like language. More in detail, this
means that basic modules are collections of Java
classes and specify in their interface the imported and
exported classes with their types; furthermore, it is
possible to write structured module expressions by
means of a set of module operators and a type system at
the module level ensures type safety. In designing such
a type system, one has to face non trivial problems,
notably the fact that a module M which extends an
imported class C can be correctly combined only with
modules exporting a class C which, besides providing
the expected services, causes no interferences with its
subclasses defined in M. What we obtain is a module
language which is extremely flexible and allows to
express (without any need of enriching the syntax of
the core level, that is, the Java language), for
instance, generic types as in Pizza and GJ, mixin
classes (that is, subclasses parametric in the direct
superclass) and mutually recursive class definitions
split in independent modules. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ECOOP01.ps.gz},
keywords = {objects, types, components},
year = 2001
}
@inproceedings{ALZ-FTfJP01,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {Java separate type checking is not safe},
booktitle = {3rd Intl. Workshop on Formal Techniques for Java Programs 2001},
abstract = {Java supports separate type-checking in the sense that
compilation can be invoked on a single source fragment,
and this may enforce type-checking of other either
source or binary fragments existing in the environment.
However, the Java specification does not define precise
rules on how this process should be performed,
therefore the outcome of compilation may strongly
depend on the particular compiler implementation.
Furthermore, rules adopted by standard Java compilers,
as SDK and Jikes, can produce binary fragments whose
execution throws linking related errors. We introduce a
simple framework which allows to formally express the
process of separate compilation and the related formal
notion of type safety. Moreover, we define, for a small
subset of Java, a type system for separate compilation
which we conjecture to be safe.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ECOOPWS01.ps.gz},
keywords = {objects, types},
url = {http://www.informatik.fernuni-hagen.de/pi5/tagungen/ecopp_2001/workshop_papers.htm},
year = 2001
}
@inproceedings{AADDGZ-ICTCS01,
author = {D. Ancona and C. Anderson and F. Damiani and S.
Drossopoulou and P. Giannini and E. Zucca},
title = {An Effective Translation of {F}ickle into {J}ava},
booktitle = {I{CTCS} 2001 - {T}heoretical {C}omputer {S}cience},
editor = {Restivo, A. and Ronchi Della Rocca, S. and Roversi, L.},
volume = {2202},
series = {Lecture Notes in Computer Science},
pages = {215-234},
publisher = {Springer Verlag},
abstract = {We present a translation from Fickle (a Java-like
language allowing dynamic object re-classification,
that is, objects that can change their class at
run-time) into plain Java. The translation is proved to
preserve static and dynamic semantics; moreover, it is
shown to be effective, in the sense that the
translation of a Fickle class does not depend on the
implementation of used classes, hence can be done in a
separate way, that is, without having their sources,
exactly as it happens for Java compilation. The aim is
to demonstrate that an extension of Java supporting
dynamic object re-classification could be fully
compatible with the existing Java environment. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ICTCS01.ps.gz},
keywords = {objects, types},
year = 2001
}
@inproceedings{ALZ-OOPSLA01,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {A Core Calculus for {J}ava Exceptions},
booktitle = {A{CM} {C}onference on {O}bject-{O}riented
{P}rogramming, {S}ystems, {L}anguages, and
{A}pplications ({OOPSLA} 2001)},
series = {SIGPLAN Notices},
publisher = {ACM Press},
abstract = {In this paper we present a simple calculus (called
CJE) in order to fully investigate the exception
mechanism of Java, and in particular its interaction
with inheritance, which turns out to be non trivial.
Moreover, we show that the type system for the calculus
directly driven by the Java Language Specification
(called FULL) uses too many types, in the sense that
there are different types which provide exactly the
same information. Hence, we obtain from FULL a
simplified type system called MIN where equivalent
types have been identified. We show that this is useful
both for type-checking optimization and for clarifying
the static semantics of the language. The two type
systems are proved to satisfy the subject reduction
property.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/OOPSLA01.ps.gz},
keywords = {types, objects},
year = 2001
}
@inproceedings{ADZ-FOOL01,
author = {D.~Ancona and E.~Zucca and S.~Drossopoulou},
title = {Overloading and Inheritance},
booktitle = {The {E}ighth {I}nternational {W}orkshop on
{F}oundations of {O}bject-{O}riented {L}anguages
({FOOL}8)},
abstract = {Overloading allows several function definitions for
the same name, distinguished primarily through
different argument types; it is typically resolved at
compile-time. Inheritance allows subclasses to define
more special versions of the same function; it is
typically resolved at run-time. Modern object-oriented
languages incorporate both features, usually in a
type-safe manner. However, the combination of these
features sometimes turns out to have surprising, and
even counterintuitive, effects. We discuss why we
consider these effects inappropriate, and suggest
alternatives. We explore the design space by isolating
the main issues involved and analyzing their interplay
and suggest a formal framework describing static
overloading resolution and dynamic function selection,
abstracting from other language features. We believe
that our framework clarifies the thought process going
on at language design level. We introduce a notion of
soundness and completeness of an overloading resolution
policy w.r.t. the underlying dynamic semantics, and a
way of comparing the flexibility of different
resolution policies. We apply these concepts to some
non-trivial issues raised in concrete languages. We
also argue that the semantics of overloading and
inheritance is ``clean'' only if it can be understood
through a copy semantics, whereby programs are
transformed to equivalent programs without subclasses,
and the effect of inheritance is obtained through
copying. },
ftp = {http://www.cis.upenn.edu/~bcpierce/FOOL//FOOL8/Ancona.ps.gz},
keywords = {objects, types},
year = 2001
}
@inproceedings{ALZ-ECOOP00,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {{J}am: A Smooth Extension of {J}ava with Mixins},
booktitle = {E{COOP} 2000 - {O}bject-{O}riented {P}rogramming},
editor = {E. Bertino},
volume = {1850},
series = {Lecture Notes in Computer Science},
pages = {154--178},
publisher = {Springer Verlag},
abstract = {In this paper we present Jam, an extension of the Java
language supporting mixins, also called parametric heir
classes. A mixin declaration in Jam is similar to a
Java heir class declaration, apart that mixins do not
extend a fixed parent class, but simply specify the set
of fields and methods a generic parent should provide.
In this way, the same mixin can be instantiated on many
parent classes, producing different heir classes, thus
avoiding code duplication and largely improving
modularity and reuse. Moreover, as happens for classes
and interfaces, mixin names are reference types, and
all the classes obtained instantiating the same mixin
are considered subtypes of the corresponding type,
hence can be handled in a uniform way through the
common interface. This possibility allows a programming
style where different ingredients are "mixed" together
in defining a class; this paradigm is partly similar to
that based on multiple inheritance, but avoids its
complication. The language has been designed with the
main objective in mind to obtain, rather than a new
theoretical language, a working and smooth extension of
Java. That means, on the design side, that we have
faced the challenging problem of integrating the Java
overall principles and complex type system with this
new notion; on the implementation side, that we have
developed a Jam to Java translator which makes Jam
sources executable on every Java Virtual Machine. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ECOOP00.ps.gz},
keywords = {objects, types},
url = {http://www.disi.unige.it/person/LagorioG/jam/},
year = 2000
}
@inproceedings{ALZ-FTfJP00,
author = {D.~Ancona and G.~Lagorio and E.~Zucca},
title = {A Core Calculus for {J}ava Exceptions ({E}xtended
{A}bstract)},
booktitle = {2nd Intl. Workshop on Formal Techniques for Java Programs 2000},
abstract = {In this paper we present a simple calculus (called
CJE) corresponding to a small functional fragment of
Java supporting exceptions. We provide a reduction
semantics for the calculus together with two equivalent
type systems; the former corresponds to the standard
specication and its formalization, whereas the latter
can be considered an optimization of the former where
only the minimal type information about
classes/interfaces and methods are collected in order
to type-check a program. The two type systems are
proved to be equivalent and a subject reduction theorem
is given.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FTfJP00a.pdf},
keywords = {objects, types},
url = {http://www.informatik.fernuni-hagen.de/pi5/tagungen/ecoop_2000/workshop_papers.htm},
year = 2000
}
@inproceedings{AZD-FTfJP00,
author = {D.~Ancona and E.~Zucca and S.~Drossopoulou},
title = {Overloading and Inheritance in {J}ava ({E}xtended
{A}bstract)},
booktitle = {2nd Intl. Workshop on Formal Techniques for Java Programs 2000},
abstract = {The combination of overloading and inheritance in Java
introduces questions about function selection, and
makes some function calls ambiguous. We believe that
the approach taken by Java designers is
counterintuitive. We explore an alternative, and argue
that it is more intuitive and agrees with the Java
rules for the cases where Java considers the function
calls unambiguous, but gives meaning to more calls than
Java does.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FTfJP00b.pdf},
keywords = {objects, types},
url = {http://www.informatik.fernuni-hagen.de/pi5/tagungen/ecoop_2000/workshop_papers.htm},
year = 2000
}
@inproceedings{AM-AGP00,
author = {Ancona, D. and Mascardi, V.},
title = {Mixin-based modules for logic programming},
booktitle = {A{PPIA}-{GULP}-{PRODE} 2000. 2000 {J}oint {C}onference
on {D}eclarative {P}rogramming},
abstract = {In this paper we show how it is possible to define a
rather rich language of mixin modules suitable for
combining together large logic programs without
changing the underlying logic. The type and reduction
rules for the language are presented in a somehow
informal way, whereas more emphasis is given to the
usefulness of the constructs from the programming point
of view and to the comparison with other proposals for
modular logic programming found in the literature. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/AGP00.ps.gz},
keywords = {components, types},
year = 2000
}
@inproceedings{ACZ-WADT00,
author = {D. Ancona and M. Cerioli and E. Zucca},
title = {Extending {C}asl with Late Binding},
booktitle = {W{ADT}'99 - 14th {W}orkshop on {A}lgebraic
{D}evelopment {T}echniques - {S}elected {P}apers},
editor = {Bert, D. and Choppy, C.},
volume = {1827},
series = {Lecture Notes in Computer Science},
pages = {53--72},
publisher = {Springer Verlag},
abstract = {We define an extension of CASL, the standard language
for algebraic specification, with a late binding
mechanism. More precisely, we introduce a special kind
of functions called methods, for which, differently to
what happens for usual functions, overloading
resolution is delayed at evaluation time and not
required to be conservative. The extension consists, at
the semantic level, in the definition of an institution
LB supporting late binding which is defined on top of
the standard subsorted institution of CASL and, at the
linguistic level, in the enrichment of the CASL
language with appropriate constructs for dealing with
methods.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/DISI-TR-99-14.ps.gz},
keywords = {semantics, objects},
year = 2000
}
@inproceedings{Anc-AMAST00,
author = {D. Ancona},
title = {{MIX(FL)}: a kernel language of mixin modules},
booktitle = {A{MAST} 2000 - {A}lgebraic {M}ethodology and
{S}oftware {T}echnology},
editor = {T. Rus},
volume = {1816},
series = {Lecture Notes in Computer Science},
pages = {454--468},
publisher = {Springer Verlag},
abstract = {We define the language of mixin modules MIX(FL) with
the aim of providing foundations for the design of
module systems supporting mixins. Several working
examples are presented showing the benefits of the use
of mixins and overriding in module systems. The
language is strongly typed and supports separate
compilation. The denotational semantics of the language
is based on an algebraic approach and is parametric in
the semantics of the underlying core language. Hence,
even though the language is defined on top of a
specific core language, other kinds of core languages
could be considered as well.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/DISI-TR-96-23.ps.gz},
keywords = {components, semantics},
year = 2000
}
@inproceedings{AZ-PPDP99,
author = {D.~Ancona and E.~Zucca},
title = {A Primitive Calculus for Module Systems},
booktitle = {P{PDP}'99 - {I}nternational {C}onference of
{P}rinciples and {P}ractice of {D}eclarative
{P}rogramming},
editor = {G. Nadathur},
volume = {1702},
series = {Lecture Notes in Computer Science},
pages = {62--79},
publisher = {Springer Verlag},
abstract = {We present a simple and powerful calculus of modules
supporting mutual recursion and higher order features.
The calculus allows to encode a large variety of
existing mechanisms for combining software components,
including parameterized modules like ML functors,
extension with overriding of object-oriented
programming, mixin modules and extra-linguistic
mechanisms like those provided by a linker. As usual,
we first present an untyped version of our calculus and
then a type system which is proved sound w.r.t. the
reduction semantics; moreover we give a translation of
other primitive calculi. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/PPDP99.ps.gz},
keywords = {components, types},
url = {http://www.disi.unige.it/person/AnconaD/Software/Java/CMS.html},
year = 1999
}
@inproceedings{ACZ-FASE99,
author = {D. Ancona and M. Cerioli and E. Zucca},
title = {A formal framework with late binding},
booktitle = {F{ASE}'99 - {F}undamental {A}pproaches to {S}oftware
{E}ngineering},
editor = {Finance, J.-P.},
volume = {1577},
series = {Lecture Notes in Computer Science},
pages = {30--44},
publisher = {Springer Verlag},
abstract = {We define a specification formalism (formally, an
institution) which provides a notion of dynamic type
(the type which is associated to a term by a particular
evaluation) and late binding (the fact that the
function version to be invoked in a function
application depends on the dynamic type of one or more
arguments). Hence, it constitutes a natural formal
framework for modeling object-oriented and other
dynamically-typed languages and a basis for adding to
them a specification level. In this respect, the main
novelty is the capability of writing axioms related to
a given type which are not required to hold for
subtypes, hence can be ``overridden'' in further
refinements, thus lifting at the specification level
the possibility of reusing code which is offered by the
object-oriented approach. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/FASE99.ps.gz},
keywords = {semantics, objects},
year = 1999
}
@inproceedings{Anc-WADT99,
author = {D. Ancona},
title = {An Algebraic Framework for Separate Type-Checking},
booktitle = {W{ADT}'98 - 13th {W}orkshop on {A}lgebraic
{D}evelopment {T}echniques - {S}elected {P}apers},
editor = {J. Fiadeiro},
volume = {1589},
series = {Lecture Notes in Computer Science},
pages = {1--15},
publisher = {Springer Verlag},
abstract = {We address the problem of defining an algebraic
framework for modularization supporting separate
type-checking. In order to do that we introduce the
notions of abstract type system and logic of
constraints and we present a canonical construction of
a model part, on top of a logic of constraints. This
canonical construction works under reasonable
assumptions on the underlying type system (e.g.,
soundness of the system). We show that the framework is
suitable for defining the static and dynamic semantics
of module languages, by giving a concrete example of
construction on top of the type system of a simple
typed module language. As a result, the subtyping
relation between module interfaces is captured in a
natural way by the notion of signature morphism. },
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/WADT98.ps.gz},
keywords = {semantics, types},
year = 1999
}
@inproceedings{AZ-WADT98,
author = {D.~Ancona and E.~Zucca},
title = {An Algebra of Mixin Modules},
booktitle = {W{ADT}'97 - 12th {W}orkshop on {A}lgebraic
{D}evelopment {T}echniques - {S}elected {P}apers},
editor = {Parisi-Presicce, F.},
volume = {1376},
series = {Lecture Notes in Computer Science},
pages = {92--106},
publisher = {Springer Verlag},
abstract = {Mixins are modules which may contain deferred
components, i.e. components not defined in the module
itself, and allow definitions to be overridden. We give
an axiomatic definition of a set of operations for
mixin combination, corresponding to a variety of
constructs existing in programming languages (merge,
hiding, overriding, functional composition, ...). In
particular, we show that they can all be expressed in
terms of three primitive operations (namely, sum,
reduct and freeze), which are characterized by a small
set of axioms. We show that the given axiomatization is
sound w.r.t. to a model provided in some preceding
work. Finally, we prove the existence of anormal form
for mixin expressions.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/WADT97.ps.gz},
keywords = {components, semantics},
year = 1998
}
@inproceedings{AZ-PLILP97,
author = {D.~Ancona and E.~Zucca},
title = {Overriding Operators in a Mixin-Based Framework},
booktitle = {P{LILP} '97 - 9th {I}ntl. {S}ymp. on {P}rogramming
{L}anguages, {I}mplementations, {L}ogics, and
{P}rograms},
editor = {H.~Glaser and P.~Hartel and H.~Kuchen},
volume = {1292},
series = {Lecture Notes in Computer Science},
pages = {47--61},
publisher = {Springer Verlag},
abstract = {We show that many different overriding operators
present in programming languages can be expressed,
adopting a mixin-based framework, in terms of three
basic operators. In particular we propose two
orthogonal classifications: strong (the overridden
definition is canceled) or weak (the overridden
definition still remains significant, as in Smalltalk's
super feature), and preferential (priority to one of
the two arguments) or general. We formalize the
relation between all these versions. Our analysis and
results are not bound to a particular language, since
they are formulated within an algebraic framework for
mixin modules which can be instantiated over different
core languages.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/PLILP97.ps.gz},
keywords = {semantics, objects, components},
year = 1997
}
@inproceedings{AZ-ALP96,
author = {D.~Ancona and E.~Zucca},
title = {An Algebraic Approach to Mixins and Modularity},
booktitle = {A{LP} '96 - 5th {I}ntl. {C}onf. on {A}lgebraic and
{L}ogic {P}rogramming},
editor = {Hanus, M. and Rodr\'{\i}guez-Artalejo, M.},
volume = {1139},
series = {Lecture Notes in Computer Science},
pages = {179--193},
publisher = {Springer Verlag},
abstract = {We present an algebraic formalization of the notion of
mixin module, i.e. a module where the definition of
some components is deferred. Moreover, we define a set
of basic operators for composing mixin modules,
intended to be a kernel language with clean semantics
in which to express more complex operators of existing
modular languages, including variants of inheritance in
object oriented programming. The semantics of the
operators is given in an institution independent way,
i.e. is parameterized on the semantic framework
modeling features of the underlying core language.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/ALP96.ps.gz},
keywords = {semantics, components},
year = 1996
}
@inproceedings{AZ-AMAST96,
author = {D.~Ancona and E.~Zucca},
title = {A Formal Framework for Modules with State},
booktitle = {A{MAST} '96 - {A}lgebraic {M}ethodology and {S}oftware
{T}echnology},
editor = {M. Wirsing and M. Nivat},
volume = {1101},
series = {Lecture Notes in Computer Science},
pages = {148--162},
publisher = {Springer Verlag},
abstract = {We present a module algebra interpreted in the model
of dynamic data-types. A data-type with state, or
dynamic data type, is a data type in which the
interpretation of operation symbols is depending on the
internal state, which may change during the time. We
formalize the above notion by a new mathematical
structure, called object structure. From the point of
view of programming languages, an object structure is
the overall semantic value (the denotation) of a
software module in an imperative context: Ada packages,
Modula-2 modules and objects of object based languages
can be thought as syntactic counterparts of object
structures. Thus a first result of our approach is an
abstract and natural definition of the semantic value
of a whole module. A further result that we want to
achieve is this semantics to be truly compositional,
i.e. operations of composing modules to be interpreted
as operations of object structures at the semantic
level. We illustrate that by giving syntax and
semantics of a module language which is parametric in
the concrete syntax used for defining methods and
components of the state. The introduction of state
makes necessary to review the semantics of classical
operators as given in a standard algebraic setting. In
particular, we introduce a distinction between the
visible and the internal signature of an object
structure, which is essential for defining a reduct
operation, hence for modelling export/hiding operators.
Composition of visible signatures must be propagated to
internal signatures in order to keep unchanged hidden
components modulo renaming; this corresponds to
consider co-products of particular diagrams in the
category of signatures.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/AMAST96.ps.gz},
keywords = {semantics, components},
year = 1996
}
@inproceedings{AAZ-ISCORE93,
author = {D. Ancona and E. Astesiano and E. Zucca},
title = {Towards a Classification of Inheritance Relations},
booktitle = {Proc. {ISCORE} '93 ({I}nternational {W}orkshop on
{I}nformation {S}ystems - {C}orrectness and
{R}eusability)},
editor = {U.W. Lipeck and G. Koschorreck},
number = {01/93},
series = {Informatik-Berichte},
pages = {90--113},
publisher = {Universitaet Hannover},
abstract = {We address the problem of providing a rigorous formal
model for classes of objects and the variety of
inheritance relations. Classes are modelled by a new
structure, called d-oid, which corresponds to see
objects as data with state. The approach we take is a
rather abstract one and so we model representation
independent configurations of an object system by
algebras, object identities by so called tracking map,
and method calls as transformations of algebras. Seeing
classes as d-oids allows us to define a hierarchy of
inheritance relations, modelled by relations between
d-oids and corresponding to different liberty levels in
redefining methods. The classification we present
distinguish essentially three levels of inheritance:
minimal, regular and conservative.},
ftp = {ftp://ftp.disi.unige.it/pub/person/AnconaD/IWIS93.ps.gz},
keywords = {semantics, objects},
year = 1993
}
@inproceedings{BriolaMascardiAnconaIDC14,
author = {Briola, D. and
Mascardi, V. and
Ancona, D.},
title = {Distributed Runtime Verification of {JADE} Multiagent Systems},
booktitle = {Intelligent Distributed Computing {VIII} - Proceedings of the 8th
International Symposium on Intelligent Distributed Computing, {IDC}
2014, Madrid, Spain, September 3-5, 2014},
pages = {81--91},
year = {2014},
abstract = {{Verifying that agent interactions in a multiagent system (MAS) are compliant to a given global protocol is of paramount importance for most systems, and is mandatory for safety-critical applications. Runtime verification requires a proper formalism to express such a protocol, a possibly non intrusive mechanism for capturing agent interactions, and a method for verifying that captured interactions are compliant to the global protocol. Projecting the global protocol onto agents' subsets can improve efficiency and fault tolerance by allowing the distribution of the verification mechanism. Since many real MASs are based on JADE, a well known open source platform for MAS development, we implemented a monitor agent that achieves all the goals above using the "Attribute Global Types" (AGT) formalism for representing protocols. Using our JADE monitor we were able to verify FYPA, an extremely complex industrial MAS currently used by Ansaldo STS for allocating platforms and tracks to trains inside Italian stations, besides the Alternating Bit and the Iterated Contract Net protocols which are well known in the distributed systems and MAS communities. Depending on the monitored MAS, the performances of our monitor are either comparable or slightly worse than those of the JADE Sniffer because of the logging of the verification activities. Reducing the log files dimension, re-implementing the monitor in a way independent from the JADE Sniffer, and heavily exploiting projections are the three directions we are pursuing for improving the monitor's performances, still keeping all its features. }},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/IDC2014.pdf},
keywords = {runtime-verification, agents,behavioral-types}
}
@inproceedings{MascardiBriolaAnconaAIIA13,
author = {Mascardi, V. and
Briola, D. and
Ancona, D.},
title = {On the Expressiveness of Attribute Global Types: The Formalization
of a Real Multiagent System Protocol},
booktitle = {AI*IA 2013: Advances in Artificial Intelligence - XIIIth International
Conference of the Italian Association for Artificial Intelligence,
Turin, Italy, December 4-6, 2013. Proceedings},
pages = {300--311},
year = {2013},
abstract = {{Attribute global types are a formalism for specifying and dynamically verifying multi-party agents interaction protocols. They allow the multiagent system designer to easily express synchronization constraints among protocol branches and global constraints on sub-sequences of the allowed protocol traces. FYPA (Find Your Path, Agent!) is a multiagent system implemented in Jade currently being used by Ansaldo STS for allocating platforms and tracks to trains inside Italian stations. Since information on the station topology and on the current resource allocation is fully distributed, FYPA involves complex negotiation among agents to find a solution in quasi-real time. In this paper we describe the FYPA protocol using both AUML and attribute global types, showing that the second formalism is more concise than the first, besides being unambiguous and amenable for formal reasoning. Thanks to the Prolog implementation of the transition function defining the attribute global type semantic, we are able to generate a large number of protocol traces, and to manually inspect a subset of them to empirically validate that the protocol's formalization is correct. The integration of the Prolog verification mechanism into a Jade monitoring agent extending the Sniffer Agent is under way and will be used to verify the compliance of the actual conversation with the protocol. Keywords: multiagent systems, attribute global types, negotiation, dynamic verification of protocol compliance. }},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/AIIA2013.pdf},
keywords = {runtime-verification, agents,behavioral-types}
}
@inproceedings{AnconaCorradiFTfJP16,
author = {Ancona, D. and Corradi, A.},
title = {A Formal Account of SSA in Java-like Languages},
booktitle = {Proceedings of the 18th Workshop on Formal Techniques for Java-like Programs},
series = {FTfJP'16},
year = {2016},
pages = {2:1--2:8},
articleno = {2},
numpages = {8},
publisher = {ACM}
}
@inproceedings{AnconaCorradi16,
author = {Ancona, D. and
Corradi, A.},
title = {Semantic subtyping for imperative object-oriented languages},
booktitle = {{OOPSLA} 2016},
pages = {568--587},
year = {2016}
}
@inproceedings{AnconaDagninoZucca17,
author = {Ancona, D. and Dagnino, F. and Zucca, E.},
title = {Generalizing inference systems by coaxioms},
booktitle = {European Symposium on Programming, ESOP 2017},
year = {2017},
note = {To appear},
ftp = {ftp://ftp.disi.unige.it/person/AnconaD/esop17.pdf},
abstract = {{We introduce a generalized notion of inference system to support
structural recursion on non well-founded datatypes.
Besides axioms and inference rules with the usual meaning, a generalized inference system
allows coaxioms, which are, intuitively, axioms which can only be applied "at infinite depth" in a proof tree.
This notion nicely subsumes standard inference systems and their inductive and coinductive interpretation, while providing more flexibility.
Indeed, the classical results on the existence and constructive characterization of least and greatest fixed points can be extended to our generalized framework, interpreting recursive definitions as fixed points which are not necessarily the least, nor the greatest one. This allows formal reasoning in cases where the inductive and coinductive interpretation do not provide the intended meaning, or are mixed together.
}},
keywords = {{coinduction}}
}
@inproceedings{AnconaFerrandoMascardi17,
author = {Ancona, D. and
Ferrando, A. and
Mascardi, V.},
title = {Parametric Runtime Verification of Multiagent Systems},
booktitle = {Proceedings of the 16th Conference on Autonomous Agents and MultiAgent
Systems, {AAMAS} 2017, S{\~{a}}o Paulo, Brazil, May 8-12, 2017},
pages = {1457--1459},
year = {2017},
keywords = {runtime-verification, agents,behavioral-types},
abstract = {{
Parametricity is an important feature of a monitoring
system for making runtime verification (RV) more effective,
since, typically, correctness of traces depends on the specific
data values that are carried by the monitored events of the
trace, and that, in general, cannot be predicted statically.
Typically, the correctness of an interaction protocol may
depend on the values exchanged by agents; protocols may
also be parametric in the involved agents, and resources, and
this parametricity is naturally reflected on the data carried
by values.
In this work we propose parametric trace expressions, an
extension to trace expressions, expressly designed for
parametric RV of multiagent systems. Such an extension is
achieved by introducing variables in trace expressions that
are substituted with data values at runtime, when events are
matched during monitoring.
}},
http = {http://www.disi.unige.it/person/AnconaD/papers/AnconaFerrandoMascardiAAMAS17Parametric.pdf}
}
This file was generated by bibtex2html 1.98.