Ubiquitous Computing refers to the situation in which computing facilities are embedded or integrated into everyday objects and activities. Networks are large-scale, including both hardware devices and software agents. The systems are highly mobile and dynamic: programs or devices may move and often execute in networks owned and operated by others; new devices or software pieces may be added; the operating environment or the software requirements may change. The systems are also heterogeneous and open: the pieces that form a system may be quite different from each other, built by different people or industries, even using different infrastructures or programming languages; the constituents of a system only have a partial knowledge of the overall system, and may only know, or be aware of, a subset of the entities that operate on the system.
A prominent recent phenomenon in Computer Science is the emerging of interaction and communication as key architectural and programming concepts. This is especially visible in ubiquitous systems. Complex distributed systems are being thought of and designed as structured composition of computational units, usually referred to as components. These components are supposed to interact with each other and such interactions are supposed to be orchestrated into conversations and dialogues. In the remainder, we will write CBUS for Component-Based Ubiquitous Systems.
In CBUS, the systems are complex. In the same way as for complex systems in other disciplines, such as physics, economics, biology, so in CBUS theories are needed that allow us to understand the systems, design or program them, analyse them.
Focus investigates the semantic foundations for CBUS. The foundations are intended as instrumental to formalizing and verifying important computational properties of the systems, as well as to proposing linguistic constructs for them. Prototypes are developed to test the implementability and usability of the models and the techniques. Throughout our work, `interaction' and 'component' are central concepts.
The members of the project have a solid experience in algebraic and logical models of computation, and related techniques, and this is the basis for our study of ubiquitous systems. The use of foundational models inevitably leads to opportunities for developing the foundational models themselves, with particular interest for issues of expressiveness and for the transplant of concepts or techniques from a model to another one.
Jacopo Mauro's PhD thesis, entitled "Constraints meet concurrency", has been awarded a price as the best dissertation for the two years 2010 and 2011 by the Italian Association for Logic Programming (GULP).
The objective of Focus is to develop concepts, techniques, and possibly also tools, that may contribute to the analysis and synthesis of CBUS. Fundamental to these activities is modeling. Therefore designing, developing and studying computational models appropriate for CBUS is a central activity of the project. The models are used to formalize and verify important computational properties of the systems, as well as to propose new linguistic constructs.
The models we study are in the process
calculi (e.g., the
The sections below provide some more details on why
process
calculi,
The main application domain for Focus are ubiquitous systems, broadly systems whose distinctive features are: mobility, high dynamicity, heterogeneity, variable availability (the availability of services offered by the constituent parts of a system may fluctuate, and similarly the guarantees offered by single components may not be the same all the time), open-endedness, complexity (the systems are made by a large number of components, with sophisticated architectural structures). In Focus we are particularly interested in the following aspects.
Linguistic primitives for programming dialogues among components.
Contracts expressing the functionalities offered by components.
Adaptability and evolvability of the behaviour of components.
Verification of properties of component systems.
Bounds on component resource consumption (e.g., time and space consumed).
Today the component-based methodology often refers to Service Oriented Computing. This is a specialized form of component-based approach. According to W3C, a service-oriented architecture is “a set of components which can be invoked, and whose interface descriptions can be published and discovered”. In the early days of Service Oriented Computing, the term services was strictly related to that of Web Services. Nowadays, it has a much broader meaning as exemplified by the XaaS (everything as a service) paradigm: based on modern virtualization technologies, Cloud computing offers the possibility to build sophisticated service systems on virtualized infrastructures accessible from everywhere and from any kind of computing device. Such infrastructures are usually examples of sophisticated service oriented architectures that, differently from traditional service systems, should also be capable to elastically adapt on demand to the user requests.
A Software Product Line is a set of software systems that together address a particular market segment or fulfill a particular mission. Today, Software Product Lines are successfully applied in a range of industries, including telephony, medical imaging, financial services, car electronics, and utility control . Customization and integration are keywords in Software Product Lines: a specific system in the family is constructed by selecting its properties (often technically called “features”), and, following such selection, by customizing and integrating the needed components and deploying them on the required platform.
Members of Focus have developed
Jolie
(Java
Orchestration Language Interpreter Engine,
see http://
In 2012 the development of Jolie has continued. The main activities have been:
We have enhanced the correlation mechanism in Jolie to handle multiparty sessions with concurrent interactions with multiple participants.
We have developed a compiler that projects choreography-based
programs in Chor (http://
We have developed a new website for Jolie (using Jolie itself), significantly updating its documentation.
We have improved Jolie's compatibility with the Java RMI technology.
We have developed a first experimental implementation of a monitoring layer for Jolie services.
As last year, so in 2012 Jolie has been used for teaching, in a master course at the IT University of Copenhagen (ITU, Denmark) and in a master course at the Technical University of Denmark (DTU, Denmark).
Below we list some sofwtare that has been developed, or is under development, in Focus.
IntML is a functional programming language guaranteeing sublinear space bounds for all programs . See the Activity Reports of previous years (in particular 2010) for more details. During 2012 no substantial modifications have been made.
Lideal (http://
We have implemented a technique for the deadlock analysis of a concurrent object oriented language (ABS, designed within the European project HATS). The technique consists of
an inference system for contracts to be associated to methods. Contracts are terms that retain information about resource dependencies;
a fixpoint algorithm for solving contract definitions, which are recursive and may introduce new resource names.
The release of the software is planned for early 2013.
Croll-pi Interpreter (http://
We used the interpreter to test the expressive power of croll-pi on various problems, including the 8-queen problem, error handling in an automotive scenario from the EU project Sensoria, and constructs for distributed error handling such as stabilizers.
For other software, such as PiDuce, see the activity reports for Focus of previous years.
In the context of Service-Oriented Architectures (SOAs), the integration of services is an important aspect that is usually addressed by using specific tools, such as Enterprise Service Bus (ESB). Although widely used these ad-hoc solutions do not exploit the possibility of using a mechanism of interface extension to foster the rapid prototyping and deployment of in-the-middle entities that compose services abstracting from the order in which they exchange messages. We have proposed a framework to perform service integration, based on the extension of service interfaces, capturing a class of service integrators that are decoupled from the services they integrate in an SOA. We also provide a reference implementation for the primitive of service integration by extending the Jolie language, thus allowing for the experimentation with real SOA scenarios. We have shown how our methodology differs from the standard practice with ESB.
Contracts are descriptions of the functionalities offered by a component or a service, and of the way these functionalities may be accessed by clients. A contract may include a description of the component capabilities, place constraints on their usage, as well as declare preferences, entitlements and credentials. When a client wants to use one of the functionalities offered, it engages a dialogue (e.g., a sequence of interactions) with the servers; this is usually called a session.
Contracts specify the expected dialogue in a session and they can be expressed as types, usually called session types in this context.
A session type describes communication by specifying type and direction of data exchanged between two parties. When session types and session primitives are added to the syntax of the types and terms of a language, they give rise to additional separate syntactic categories. As a consequence, there may be duplication of efforts in the theory: the proofs of properties must be checked both on ordinary types and on session types. We have shown that this duplication is not necessary, by exhibiting an encoding of (dyadic) session types into ordinary types. Using the encoding, the properties of session types are derived as straightforward corollaries.
We have also studied the problem of handling unexpected or unwanted conditions in sessions, that may change the default execution of distributed communication protocols. We have proposed a global escape mechanism; it can handle such events while preserving compatibility of multiparty conversations. This flexibility enables us to model complex exceptions such as criss-crossing global interactions and error handling for distributed cooperating threads. Guided by multiparty session types, our semantics is proven to provide a termination algorithm for global escapes, as well as further safety properties, such as progress within the session and atomicity of escapes with respect to the subset of involved participants.
We have continued the study of reversibility started in the past years, aimed at developing programming abstractions for reliable distributed systems. We have shown preliminary results on the interplay between reversibility and compensations, which are a main ingredient in many existing techniques for reliability, in particular long running transactions.
We have then
applied
our reversibility theory to
We study primitives for adaptable and evolving components both in an abstract algebraic setting and in a more concrete setting based on the ABS object-oriented language.
We have defined adaptable processes, a concurrent higher-order calculus where processes have a location, and are sensible to actions of update at runtime. This allows us to express a wide range of evolvability patterns. We have also defined a temporal logic over adaptable processes, with examples of the expressiveness of the logic and of its significance in relation to the calculus of adaptable processes.
A different direction has focused on ABS, a concurrent object-oriented language based on futures for asynchronous method invocations and on object groups for concurrency control. We have given an overview of the architectural aspects of ABS: a feature-driven development workflow, a formal notion of deployment components for specifying environmental constraints, and a dynamic component model that is integrated into the language. We have employed an industrial case study to demonstrate how the various aspects work together in practice. In we have focused on the component model and studied techniques allowing safe dynamic reconfiguration. Our approach adds to ABS: i) output ports to represent variability points, ii) critical sections to control when updates of the software can be made and iii) hierarchy to model locations and distribution. These different notions work together to allow dynamic and safe update of a system.
The cloud is a relevant application domain for FOCUS. We have considered the problem of deploying and (re)configuring resources in a cloud setting, where interconnected software components and services can be deployed on clusters of heterogeneous (virtual) machines that can be created and connected on-the-fly. We introduce a component model to capture similar scenarii from realistic cloud deployments, and instrument automated planning of day-to-day activities such as software upgrade planning, service deployment, elastic scaling, etc. We formalize the model and characterize the feasibility and complexity of configuration achievability.
Delta-oriented programming (DOP) provides a technique for implementing Software Product Lines based on modifications (add, remove, modify) to a core program. Unfortunately, such modifications can introduce errors into a program, especially when type signatures of classes are modified in a non-monotonic fashion. To deal with this problem in we have designed a type system for delta-oriented programs based on row polymorphism. This exercise elucidates the close correspondence between delta-oriented programs and row polymorphism.
In we have studied the notion of conflict for a variant of DOP without features, separating out the notions of hard and soft conflict. Specifically, we have defined a language for this subset of DOP and give a precise, formal definition of these notions. We have then extended the type system in to ensure that the computation of a well-typed product will always succeed and has an unambiguous result.
In Focus, we study both foundations and methodologies for controlling the amount of resources programs and processes make use of. The employed techniques mainly come from the world of type theory and proof theory, and as such have been used extensively in the context of sequential computation. Interesting results have been obtained recently indicating that those techniques can be quite useful in the concurrent context too, thus being potentially interesting for CBUS.
During 2012, we have continued our work on intensionally complete techniques for the complexity analysis of functional programs. In a relatively complete type system from which complexity of call-by-name terms has been introduced, while in the same approach is used in a call-by-value setting. The introduced methodology allows us to reduce the problem at hand to the verification of a set of first-order proof-obligations. No information is lost along the reduction.
The interpretation method has been the object of a couple of investigations. On the one hand, we have proved a necessary condition for a first-order program to admit a quasi-interpretation : it must be blind, namely it must be somehow insensible to its argument value, but only sensible to their length. Moreover, we have introduced a new methodology for the complexity analysis of higher-order programs based on an higher-order generalizations of ordinary polynomial interpretations and quasi-interpretations .
Among the most foundational works in this area, we should also mention those about invariance results on cost models , : we proved that in many different cases, the number of beta-reduction steps is an adequate cost-model for the lambda calculus. These results are potentially useful for complexity analysis, in that they show that a natural and quite intuitive cost model is indeed reasonable, meaning that evaluation can be simulated by finer-grained models of computation within a polynomial overhead.
Finally, some of our works have to do with the semantics of various sorts of lambda calculi with linearity constraints: a non-deterministic extension of the call-by-value lambda calculus, which corresponds to the additive fragment of the linear-algebraic lambda-calculus ; a lambda calculus with constructors that decomposes the pattern matching à la ML into some atomic rules ; a categorical approach to model the programming language SlPCF that has been conceived in order to program only linear functions between Coherence Spaces .
We have also continued our work on techniques for ensuring termination of
programs, studying
how to transport techniques initially devised for
processes onto sequential higher-order languages with imperative
features (e.g.,
Extensional refers to properties that have to do with behavioral descriptions of a system (i.e., how a system looks like from the outside). Examples of such properties include classical functional correctness and deadlock freedom. A substantial amount of the work carried out this year has to do with the transfer of techniques from the area of concurrency theory to the investigation of properties in adaptable systems, obiect-oriented concurrent systems, and systems based on specific synchronization mechanisms.
We mentioned earlier the process calculus of adaptable processes and the related temporal logic . In the same papers, we have addressed the (un)decidability of two safety properties related to error occurrence, and we have explained how the proof techniques in can be extended to prove (un)decidability results for the temporal logic.
We have considered concurrent object-oriented languages with futures and cooperative scheduling. Verification of deadlock in such systems is a nontrivial task due to the dynamic and unbounded creation of futures. We have introduced a technique to prove deadlock freedom for such systems by translating a concrete program to an abstract version of the program, and then encoding such abstract program into a Petri net. Deadlock can be detected on Petri nets via checking the reachability of a distinct marking: absence of deadlocks in the Petri net constitutes deadlock freedom of the concrete system.
We have investigated the impact of node and communication failures on the decidability and complexity of parametric verification of a formal model of ad hoc networks, in which finite state processes communicate via selective broadcast. We have considered three possible kinds of node failures –intermittence, restart, and crash– and three cases of communication failures –nondeterministic message loss, message loss due to conflicting emissions, and detectable conflicts. Interestingly, we have proved that the considered decision problem (reachability of a control state) is decidable for node intermittence and message loss (either nondeterministic or due to conflicts) while it turns out to be undecidable for node restart/crash, and conflict detection. The conclusion is that verification is decidable only when processes are unaware of the occurrence of a failure.
In another line of work, we have studied the impact of
dualities and symmetries in
synchronization primitives for
message-passing processes .
We have shown that in languages where
input and output are dualisable (e.g., variants of the
Induction is a pervasive tool in Computer Science and Mathematics for defining structures and reasoning on them. Coinduction is the dual of induction, and as such it brings in tools that are quite different from those provided by induction. The best known instance of coinduction is bisimulation, mainly employed to define and prove equalities among potentially infinite objects: processes, streams, non-well-founded sets, and so on. Sangiorgi has completed , two comprehensive textbooks on bisimulation and coinduction (in , Sangiorgi is an editor, and author of two chapter contributions , ). The books explain the fundamental concepts and techniques, and the duality with induction. A special emphasis is put on bisimulation as a behavioural equivalence for processes. Thus the books also serve as an introduction to models for expressing processes, and to the associated techniques of operational and algebraic analysis.
Expressiveness refers to the study of the expressive power of computational models.
We have studied the expressiveness of an actor-based language similar to the language ABS developed in Hats. We have identified the presence/absence of fields as a relevant feature: the dynamic creation of names in combination with fields gives rise to Turing completeness. On the other hand, restricting to stateless actors gives rise to systems for which properties such as termination are decidable. Such decidability result holds in actors with states when the number of actors is finite and the state is read-only.
Our other study of expressiveness has been made on Constraint Handling
Rules (CHR), a committed-choice declarative language originally
designed for writing constraint solvers and that is nowadays a general
purpose language. The study of CHR is interesting within Focus as
this kind of languages, having both constraint solving and concurrency
features, allow us to express in a natural way quantitative aspects
related to resources. Moreover, constraints may be used to describe
dynamic adaptation and evolution of systems. CHR programs consist of
multi-headed guarded rules which allow one to rewrite constraints into
simpler ones until a solved form is reached. Many empirical evidences
suggest that multiple heads augment the expressive power of the
language (somehow, it can be considered similar to multiple
synchronization gathering
AEOLUS (Mastering the Cloud Complexity) is an ANR-ARPEGE project started on 1st December 2010 and with a 40-month duration. AEOLUS studies the problem of installation, maintenance and update of package-based software distributions in cloud-based distributed systems. The problem consists of representing the distribution and the dependencies of packages, in such a way that modification plans can be (semi)automatically synthesized when packages should be updated or the system should be reconfigured. Main persons involved: Gabbrielli, Mauro, Sangiorgi, Zavattaro.
ETERNAL (Interactive Resource Analysis) is an Inria-ARC project which started on January 1st, 2011 and will end on December 31st, 2012. ETERNAL aims at putting together ideas from Implicit Computational Complexity and Interactive Theorem Proving, in order to develop new methodologies for handling quantitative properties related to program resource consumption, like execution time and space. People involved: Dal Lago, Gaboardi, Martini, Petit.
REVER (Programming Reversible Recoverable Systems) is an ANR project that started on 1st December 2011 and with a 48-month duration. REVER aims to study the possibility of defining semantically well-founded and composable abstractions for dependable computing on the basis of a reversible programming language substrate, where reversibility means the ability to undo any distributed program execution, possibly step by step. The critical assumption behind REVER is that by adopting a reversible model of computation, and by combining it with appropriate notions of compensation and modularity, one can develop systematic and composable abstractions for recoverable and dependable systems. Main persons involved: Giachino, Lienhardt, Lanese, Laneve, Zavattaro.
The ANR project PACE (Processus non-standard: Analyse, Coinduction, et Expressivité) has been recently accepted but will start only in 2013. The project targets three fundamental ingredients in theories of concurrent processes, namely coinduction, expressiveness and analysis techniques. The project aims at processes that are beyond the realm of "traditional" processes. Specifically, the models studied exhibit one or more of the following features: probabilities, higher-order, quantum, constraints, knowledge, and confidentiality. These models are becoming increasingly more important for today's applications. Coinduction is intended to play a pivotal role. Indeed, the approaches to expressiveness and the analysis techniques considered in the project are based on coinductive equalities. Main persons involved: Hirschkoff (project coordinator), Dal Lago, Lanese, Sangiorgi, Zavattaro.
Hats (Highly Adaptable and Trustworthy Software using Formal Models) is an EU Integrated Project from FP7, started March 2009 and with a 4 year duration. Hats studies formal methods for obtaining high adaptability combined with trustworthiness in the setting of object-oriented languages and software product lines. Most Focus members are involved.
PLATFORM (Practical Light Types for Resource Consumption) is a Marie Curie IOF project from FP7, started July 2011 with a three-year span. It involves one Focus member (Gaboardi) in research work at University of Pennsylvania and in Bologna. Project aim is the development of a practical programming language with information, in the form of dependent types, about the resources needed by programs during their execution, and where type checking a program will naturally corresponds to exhibit a certification of its resource consumption.
The ICT COST Action BETTY (Behavioural Types for Reliable Large-Scale Software Systems), initiated in October 2012 and with a four-year duration, will use behavioural type theory as the basis for new foundations, programming languages, and software development methods for communication-intensive distributed systems. Behavioural type theory encompasses concepts such as interfaces, communication protocols, contracts, and choreography. Main persons involved: Bravetti, Giachino, Lanese, Laneve, Sangiorgi, Zavattaro.
The EIT activity "Intelligent Services for Digital Cities" in the context of the Digital Cities Action Line, has been approved, with funding to be spent in 2013. Main persons involved: Gabbrielli.
We list here the cooperations and contacts with other groups, without repeating those already listed in previous sections.
ENS Lyon (on concurrency models and resource control). Contact person(s) in Focus: Dal Lago, Gaboardi, Martini, Sangiorgi. Several visit exchanges during the year, in both directions. One joint PhD supervision (J.-M. Madiot).
Inria EPI Sardes (on models and languages for components, reversibility). Contact person(s) in Focus: Lanese, Sangiorgi. A number of visits in both directions. One joint PhD supervision (C. Mezzina).
Laboratoire d'Informatique, Université Paris Nord, Villetaneuse (on implicit computational complexity). Contact person(s) in Focus: Dal Lago, Gaboardi, Martini. An Italian PhD student (Marco Solieri) is working on his PhD thesis with joint supervision (Martini, Guerrini).
Institut de Mathématiques de Luminy, Marseille (on lambda-calculi, linear logic and semantics). Contact person(s) in Focus: Dal Lago, Martini. One joint PhD supervision (Michele Alberti).
Team PPS, University of Paris-Diderot Paris 7 (on logics for processes, resource control). Contact person(s) in Focus: Dal Lago, Gaboardi, Martini, Sangiorgi. Various short visits in both directions during the year.
IRILL Lab, Paris (on models for the representation of dependencies in distributed package based software distributions). Contact person(s) in Focus: Zavattaro. Various short visits in both directions during the year.
University of Innsbruck (on resource control and termination). Contact person(s) in Focus: Dal Lago. A few short visits during 2012.
Inria EPI Indes, (on orchestration and programming languages). A common meeting was organised in Bologna, January 2012, where 4 people from Indes and almost everybody from Focus participated.
EPI Carte, Inria-Nancy Grand Est and LORIA (on implicit computational complexity). Contact person(s) in Focus: Dal Lago,Gaboardi. A few short visits during 2012.
LMU Munich (M. Hofmann) (on Implicit computational complexity and IntML). Contact person(s) in Focus: Dal Lago.
IMDEA Software, Madrid (G. Barthe) (on Implicit computational complexity for cryptography). Contact person(s) in Focus: Dal Lago.
Facultad de Informatica, Universidad Complutense de Madrid (on web services). Contact person(s) in Focus: Bravetti. Bravetti is an external collaborator in the Spanish Ministry of Science and Education project TESIS (advanced methodologies and tools for TESting and web servIceS).
Department of Computer and Information Science, University of Pennsylvania. There has been several collaborations in the past. Presently M. Gaboardi is a long-term visiting researcher in the programming language group, working on resource control and programming languages.
Among the visits below, we note 2 long-term visits: the 6-month visit of Matias Lee (paid by a EADIC II - Erasmus Mundus scholarship); and the sabbatical year of Xian Xu, from East China University of Science and Technology, Shanghai (paid a scholarship from the Chinese Science Foundation).
Peter Hofner, Nicta, Sydney, Australia. 1 week end of January. Topic: Formal Methods for Wireless Networks.
Martin Avanzini, Institute of Compute Science, University of Innsbruck, Austria. 23 to 27 April, 2012. Topic: order-theoretic approaches to complexity analysis of functional programs.
Marco Carbone, IT University of Copenhagen. A week in May/June 2012. Topic: faults and compensations in choreography languages.
Raju Halder, Macquarie University, Australia. 2 days in May 2012. Topic: Abstract Interpretation and concurrency.
Luca Fossati, Imperial College London.
A week in May 2012. Topic: Liveness properties by means of types in
the
Xian Xu has began in May a year sabbatical in Focus. He is lecturer at the East China University of Science and Technology in Shanghai.
Matias David Lee. Currently PhD student at Universidad Nacional de Córdoba, Argentina, has spent 5 months during 2012, from January to May (having arrived in November 2011), for a long-term visit.
Bertrand Meyer, ETH Zurich. One day in September 2012. Topic: Concurrent Object-Oriented Programming.
Mariangiola Dezani, Univ. Turin, Italy. 4 days October 2012. Topic: Session Types.
Clement Aubert, LIPN Université Paris 13. From 5 to 16 November 2012. Topic: implicit complexity and the geometry of interaction.
Matthieu Perrinel, LIP ENS Lyon. From 17 to 21 December 2012. Topic: context semantic and decideable criteria for complexity analysis.
M. Bravetti: Program Committee member of the following conferences: ESOCC 2012: European Conference on Service-Oriented and Cloud Computing; SITIS 2012 (IBCS): The 8th International Conference On Signal-Image Technology and Internet-Based Systems, Track on Internet-Based Computing and Systems; WS-FMDS 12: 2nd Workshop on Formal Methods in the Development of Software; CLOUD 2012: 5th IEEE International Conference on Cloud Computing; ICST 2012: 5th IEEE International Conference on Software Testing, Verification, and Validation; IADIS: International Conference on Applied Computing 2012; PLACES 2012: 5th Int. Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software; WS-FM 2012: 9th International Workshop on Web Services and Formal Methods.
Member of the editorial board of the journal J.UCS Journal of Universal Computer Science.
M. Dalla Preda: Program Committee member of the following conferences: 5th IEEE international conference Malware 2012; Software Security and Protection Workshop 2012; Workshop on Program Protection and Reverse Engineering 2012.
U. Dal Lago: Program Committee member of the following conferences: 39th International Colloquium on Automata, Languages and Programming (ICALP 2012); Third International Workshop on Developments in Implicit Complexity (DICE 2012).
Invited speaker at Second International Workshop on Linearity, Tallin, Estonia, 1 April, 2012. Guest Editors of a special number of Theoretical Computer Science devoted to DICE 2012.
Member of the organising committee of the “Logic and interactions 2012” weeks, Marseille 30 January – 2 March 2012.
M. Gaboardi: Program Committee member for the Third Workshop on Developments in Implicit Computational Complexity
Invited speaker at the ASL meeting special session on Structural Proof Theory and Computing April 2-3, 2012, Madison, USA.
I. Lanese: Program Committee member of the following conferences: 9th International Workshop on Web Services and Formal Methods (WS-FM 2012); 5th Interaction and Concurrency Experience (ICE 2012).
Co-chair of the Service Oriented Architectures and Programming track of the 27th Annual ACM Symposium on Applied Computing (SAC 2012). Workshop Co-Chair of ESOCC 2012, the European Conference on Service-Oriented and Cloud Computing 19-21 September 2012, Bertinoro, Italy.
Member of the organising committee of the 5th Interaction and Concurrency Experience (ICE 2012).
C. Laneve: Program Committee member of the following conferences: 23rd International Conference on Concurrency Theory (CONCUR); 22nd European Symposium on Programming (ESOP).
Invited speaker at 7th International Symposium on Trustworthy Global Computing Newcastle upon Tyne, UK, 7-8 September 2012.
M.Gabbrielli: Member of the editorial board of the Int'l Journal Theory and Practice of Logic Programming. Member of the program committee of the 9th International Workshop on Constraint Handling Rules; Fifteenth International Symposium on Practical Aspects of Declarative Languages (PADL'13).
Expert Committee member for 2012 EAPLS Best Ph.D. Dissertation award.
Organizer of the 2012 Bertinoro school for Ph.D. students in computer science (BISS 2012).
S. Martini: Program Committee member of the Second International Workshop on Linearity (FOPARA), Tallinn, Estonia.
Invited speaker at Pisa Summer Workshop on Proof Theory, Pisa, Italy.
D. Sangiorgi: Member of the editorial board of the journals: Logical Methods in Computer Science, Acta Informatica, and Distributed Computing, Foundations and Trends in Programming Languages.
Program Committee member of the conferences: 38th International Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM); Twenty-Seventh Annual ACM/IEEE Symposium on Logic in Computer Science (LICS 2012); 39th International Colloquium on Automata, Languages and Programming (ICALP 2012),
Invited speaker at the Milner Symposium, 15-18 April 2012, Edimburgh UK, 2012 Microsoft Summer School on Concurrency, August 22-29 2012, St. Petersburg, Russia.
Co-director of the International School HATS-FMCO on Formal Models for Components and Objects, 24-28 September 2012 University Residential Center of Bertinoro, Italy.
G. Zavattaro: Program Committee member of the following conferences: 6th International Workshop on Reachability Problems; 9th International Symposium on Formal Aspects of Component Software (FACS); 4th Fourth International Conferences on Advanced Service Computing (SERVICE COMPUTATION 2012); 6th IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE); 5th IEEE International Conference on Cloud Computing (CLOUD 2012).
Invited speaker at 3rd International Workshop on Interactions between Computer Science and Biology (CS2Bio'12), 16 June 2012, Stockholm, Sweden.
Member of the Editorial Board of the Journal of Software (JSW), Academy Publisher.
General Chair of ESOCC 2012, the European Conference on Service-Oriented and Cloud Computing 19-21 September 2012, Bertinoro, Italy.
Simone Martini has carried out extended work of scientific divulgation:
member of the technical committee of Olimpiadi del Problem Solving (at Italian Ministry of Education);
consultant of the Minister of Education on admission tests for high school professorship admission;
the talks “Quello che i calcolatori possono e non possono fare”, MassaScienza, Massa Carrara; Lingua universalis: Calcolo, informatica e linguaggio, workshop T4T, Turin; Alan Turing pioniere dell'era digitale, ScienzaGiovane, Bologna; Calcolo e simboli: la scienza digitale, Accademia delle Scienze di Bologna and Accademia di Agricoltura Scienze e Lettere di Verona;
Ugo Dal Lago and Simone Martini have given short presentations at “Scienzagiovane”, a forum of science popularisation in Bologna mainly targeting high-school students.
Below are the teaching activities of the Focus members during 2011.
Mario Bravetti
Undergraduate: “Tecnologie Web”, 46 hours, 3rd year, University of Bologna, Italy.
Master: “Tecnologie Web Avanzate”, 46 hours, 1st or 2nd year, University of Bologna, Italy.
Ugo Dal Lago
Undergraduate: “Introduction to Programming in Python”, 20 hours, 1st year, University of Bologna, Italy.
Undergraduate: “Optimization”, 36 hours, 2nd year, University of Bologna, Italy.
Maurizio Gabbrielli
Undergraduate: “Programming languages”, 40 hours, 2nd year, University of Bologna, Italy.
Master: “Artificial Intelligence”, 60 hours, 2nd year, University of Bologna, Italy.
Marco Gaboardi
Master: “Advanced Programming”, 40 hours. 1st or 2nd year. University of Pennsylvania, USA.
Ivan Lanese
Undergraduate: “Programmazione”, 40 hours, 1st year, University of Bologna, Italy.
Cosimo Laneve
Undergraduate: “Programmazione”, 90 hours, 1st year, University of Bologna, Italy.
Master: “Analisi di Programmi”, 42 hours, 1st year, University of Bologna, Italy.
Simone Martini
Undergraduate: “Introduction to programming in Python”, 58 hours, 1st year, University of Bologna, Italy.
Undergraduate: “Computer abilities for biologists”, 8 hours, 1st year, University of Bologna, Italy.
Master: “Types and programming languages”, 40 hours, 1st year, University of Bologna, Italy.
Master: “Basic Computability”, 12 hours, 1st year and 2nd year, University of Bologna, Italy.
Master: “Logical foundations of computer science”, 40 hours, 1st year, University of Bologna, Italy.
Davide Sangiorgi
Undergraduate: “Operating Systems”, 110 hours, 2nd year, University of Bologna, Italy.
Master: “Models for concurrency”, 15 hours, 2nd year, University of Bologna, Italy.
Gianluigi Zavattaro
Master: “Informatica Teorica”, 72 hours, 1st year, University of Bologna, Italy.
Master: “Linguaggi di Programmazione”, 48 hours, 2nd year, University of Bologna, Italy.
Jacopo Mauro
Undergraduate: “Algoritmi e strutture dati”, 20 hours, 1st year, University of Bologna, Italy.
Giulio Pellitta
Undergraduate: “Laboratorio di Operating Systems”, 40 hours, 2nd year, University of Bologna, Italy.
Undergraduate: “Attivita' di supporto alla didattica universitaria di Informatica nell'ambito della Piattaforma di e-learning A3”, 130 hours, 1st year, University of Bologna, Italy.
Undergraduate: “Laboratorio Informatica 1”, 60 hours, 1st year, University of Bologna, Italy.
Elena Giachino
Undergraduate: “Programmazione”, 40 hours, 1st year, University of Bologna, Italy.
Completed Phd thesis:
Jacopo Mauro, “Constraints meet concurrency”. Dottorato di Ricerca in Informatica, University of Bologna, April 2012 Supervisors: M. Gabbrielli.
Claudio Mezzina, “Réversibilité dans le pi calcul d'ordre supérieur”, April 2012, University of Grenoble and University of Bologna, Supervisors: Jean-Bernard Stefani and Davide Sangiorgi.
Below are the details on the PhD students in Focus: starting date, topic or provisional title of the thesis, supervisor(s). These are all PhDs in progress.
Ornela Dardha, january 2011, Types for processes, D. Sangiorgi.
Ferdinanda Camporesi, january 2009, Analysis of system biology, R. Cousot (Ecole Normale, Paris) and M. Gabbrielli
Tudor Alexandru Lascu, january 2011, Formal methods for modelling and analyzing concurrent systems, C. Laneve and G. Zavattaro
Jean-Marie Madiot, september 2011, Types, proofs and proof techniques for process calculi, D. Hirschkoff and D. Sangiorgi.
Giulio Pellitta, january 2011, Implementations of geometry of interaction, S. Martini.
Paolo Parisen Toldin, january 2010, Implicit computational complexity for probabilistic classes, S. Martini.
Michele Alberti, december 20111; Separation results in the algebraic lambda-calculus; L. Regnier (Marseille) and S. Martini
Marco Solieri, december 20111; Complexity of reduction in sharing graphs, S. Guerrini (Paris Nord) and S. Martini.
A few other PhD students are (co)-supervised by members of Focus, but currently are not in the Focus team (some of them might be added in 2013):
Sara Zuppiroli (Bologna), january 2010; models for quantum computing; U. Dal Lago.
Roberto Amadini (Bologna), january 2012, Constraint Programming, M. Gabbrielli.
Alessandro Rioli (Bologna), january 2012; bisimulation equivalence in quantum lambda calculi; U. Dal Lago.
D. Sangiorgi has been rapporteur and member of the evaluation committee of the “Habilitation a Diriger des Recherche” (HDR) of Ludovic Henrio, Université de Nice, and Daniele Varacca, Université Paris 7.
U. Dal Lago has been rapporteur and member of the PhD jury for Antoine Madet, Université Paris 7.