Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Viviana Bono is active.

Publication


Featured researches published by Viviana Bono.


Lecture Notes in Computer Science | 2003

The Klaim Project: Theory and Practice

Lorenzo Bettini; Viviana Bono; Rocco De Nicola; Gian Luigi Ferrari; Daniele Gorla; Michele Loreti; Eugenio Moggi; Rosario Pugliese; Emilio Tuosto; Betti Venneri

Klaim (Kernel Language for Agents Interaction and Mobility) is an experimental language specifically designed to program distributed systems consisting of several mobile components that interact through multiple distributed tuple spaces. Klaim primitives allow programmers to distribute and retrieve data and processes to and from the nodes of a net. Moreover, localities are first-class citizens that can be dynamically created and communicated over the network. Components, both stationary and mobile, can explicitly refer and control the spatial structures of the network. This paper reports the experiences in the design and development of Klaim. Its main purpose is to outline the theoretical foundations of the main features of Klaim and its programming model. We also present a modal logic that permits reasoning about behavioural properties of systems and various type systems that help in controlling agents movements and actions. Extensions of the language in the direction of object oriented programming are also discussed together with the description of the implementation efforts which have lead to the current prototypes.


european conference on object oriented programming | 1999

A Core Calculus of Classes and Mixins

Viviana Bono; Amit Patel; Vitaly Shmatikov

We develop an imperative calculus that provides a formal model for both single and mixin inheritance. By introducing classes and mixins as the basic object-oriented constructs in a λ-calculus with records and references, we obtain a system with an intuitive operational semantics. New classes are produced by applying mixins to superclasses. Objects are represented by records and produced by instantiating classes. The type system for objects uses only functional, record, and reference types, and there is a clean separation between subtyping and inheritance.


computer science logic | 1994

A Subtyping for the Fisher-Honsell-Mitchell Lambda Calculus of Objects

Viviana Bono; Luigi Liquori

Labeled types and a new relation between types are added to the lambda calculus of objects as described in [6]. This relation is a trade-off between the possibility of having a restricted form of width subtyping and the features of the delegation-based language itself. The original type inference system allows both specialization of the type of an inherited method to the type of the inheriting object and static detection of errors, such as ‘ message-not-understood’. The resulting calculus is an extension of the original one. Type soundness follows from the subject reduction property.


ifip international conference on theoretical computer science | 2008

On Traits and Types in a Java-like Setting

Viviana Bono; Ferruccio Damiani; Elena Giachino

Both single and multiple class-based inheritance are often inappropriate as a reuse mechanism, because classes play two competing roles. Namely, a class is both a generator of instances and a unit of reuse. Traits are composable pure units of behavior reuse, consisting only of methods, that have been proposed as an add-on to single class-based inheritance in order to improve reuse. However, adopting traits as an add-on to traditional class-based inheritance is not enough: classes, besides their primary role of generators of instances, still play the competing role of units of reuse. Therefore, a style of programming oriented to reuse is not enforced by the language, but left to the programmer’s skills. Traits have been originally proposed in the setting of dynamically typed language. When static typing is also taken into account, the role of unit of reuse and the role of type are competing, too.


Foundations and Trends in Programming Languages archive | 2016

Behavioral Types in Programming Languages

Davide Ancona; Viviana Bono; Mario Bravetti; Joana Campos; Giuseppe Castagna; Pierre-Malo Deniélou; Nils Gesbert; Elena Giachino; Raymond Hu; Einar Broch Johnsen; Francisco Martins; Viviana Mascardi; Fabrizio Montesi; Rumyana Neykova; Nicholas Ng; Luca Padovani; Vasco Thudichum Vasconcelos; Nobuko Yoshida

A recent trend in programming language research is to use behavioral type theory to ensure various correctness properties of large-scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their representation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to design and monitoring methodologies that take behaviors into account. Behavioral Types in Programming Languages provides the reader with the first comprehensive overview of the state of the art of these practical aspects, which are summarized as the pragmatics of behavioral types. Each section covers a particular programming paradigm or methodology, providing an ideal reference for programming languages researchers interested the topic, and in identifying the areas as yet unexplored.


european symposium on programming | 2011

Typing copyless message passing

Viviana Bono; Chiara Messa; Luca Padovani

We present a calculus that models a form of process interaction based on copyless message passing, in the style of Singularity OS. The calculus is equipped with a type system ensuring that well-typed processes are free from faults, leaks, and communication errors. The type system is essentially linear, but we show that linearity alone is inadequate. On the one hand, it is too strict when dealing with heap-allocated objects; on the other hand, it leaves room for scenarios where well-typed processes leak significant amounts of memory. We address these problems using dedicated types for keeping track of dereferenced pointers and by basing the type system upon an original variant of session types.


international conference on coordination models and languages | 2002

Coordinating Mobile Object-Oriented Code

Lorenzo Bettini; Viviana Bono; Betti Venneri

Standard class-based inheritance mechanisms, which are often used to implement distributed systems, do not seem to scale well to a distributed context with mobility. In this paper, a mixin-based approach is proposed for structuring mobile object-oriented code and it is shown to fit in the dynamic and open nature of a mobile code scenario. We introduce MoMi (Mobile Mixins), a coordination language for mobile processes that communicate and exchange object-oriented code in a distributed context. MoMi is equipped with a type system, based on polymorphism by subtyping, in order to guarantee safe code communications.


Logical Methods in Computer Science | 2012

Typing Copyless Message Passing

Viviana Bono; Luca Padovani

We present a calculus that models a form of process interaction based on copyless message passing, in the style of Singularity OS. The calculus is equipped with a type system ensuring that well-typed processes are free from memory faults, memory leaks, and communication errors. The type system is essentially linear, but we show that linearity alone is inadequate, because it leaves room for scenarios where well-typed processes leak significant amounts of memory. We address these problems basing the type system upon an original variant of session types.


Fundamenta Informaticae | 1999

A Subtyping for Extensible, Incomplete Objects

Viviana Bono; Michele Bugliesi; Mariangiola Dezani-Ciancaglini; Luigi Liquori

We extend the type system for the Lambda Calculus of Objects [16] with a mechanism of width subtyping and a treatment of incomplete objects. The main novelties over previous work are the use of subtype-bounded quantification to capture a new and more direct rendering of MyType polymorphism, and a uniform treatment for other features that were accounted for via different systems in subsequent extensions [7, 6] of [16]. The new system provides for (i) appropriate type specialization of inherited methods, (ii) static detection of errors, (iii) width subtyping compatible with object extension, and (iv) sound typing for partially specified objects.


mathematical foundations of computer science | 1996

A Lambda Calculus of Incomplete Objects

Viviana Bono; Michele Bugliesi; Luigi Liquori

This paper extends the Lambda Calculus of Objects as proposed in [5] with a new support for incomplete objects. Incomplete objects behave operationally as “standard” objects; their typing, instead, is different, as they may be typed even though they contain references to methods that are yet to be added. As a byproduct, incomplete objects may be typed independently of the order of their methods and, consequently, the operational semantics of the untyped calculus may be soundly defined relying on a permutation rule that treats objects as sets of methods. The new type system is a conservative extension of the system of [5] that retains the mytype specialization property for inherited methods peculiar to [5], as well as the ability to statically detect run-time errors such as message not understood.

Collaboration


Dive into the Viviana Bono's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michele Bugliesi

Ca' Foscari University of Venice

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge