4 research outputs found
Standard Type Soundness for Agents and Artifacts
Formal models, core calculi, and type systems, are important tools for rigorously stating the more subtle details of a language, to characterise and study its features and the correctness properties of its programs. In this paper we present {FsimpAL} (FsimpaALlong), a formal calculus modelling the agent and artifact program abstractions provided by the simpA{} agent framework. The formalisation is largely inspired by textsc{Featherweight Java}. It is based on reduction rules applied at certain evaluation contexts, properly adapted to the concurrency nature of simpA{}. On top of this calculus we introduce a standard type system and prove its soundness, so as to guarantee that the execution of a well-typed program does not get stuck. Namely, all primitive mechanisms of agents (activity execution), artifacts (field/property access and step execution), and their interaction (observation and invocation) are guaranteed to be used in a way that is structurally compliant with the corresponding definitions: hence, there will not be run-time errors due to {FsimpAL} distinctive primitives
On Re-classification and Multi-threading
this paper we consider re-classification in the presence of multi-threading. To this aim we define a multi-threaded extension of the language MT . We define an operational semantics and a type and e#ect system for the language. Each method signature carries the information on the possible e#ects of the method execution. The type and e#ect system statically checks this information. The operational semantics uses this information in order to delay the execution of some threads when this could cause access to non-existing members of objects. We show that in the execution of a well-typed expression such delays do not produce deadloc