Real software systems are open and evolving. It is a constant challenge in such environments to ensure that software components are safely composed in the face of changing dependencies and incomplete knowledge. To address this problem, we propose a new kind of type system which allows us to infer not only the type provided by a software component in an open system, but also the type it requires of its environment, subject to certain constraints. The contractual type we infer for components can then be statically checked when components are composed. To illustrate our approach, we introduce the form calculus, a calculus of explicit environments, and we present a type system that infers types for form expressions
This dissertation introduces executable refinement types, a type system with the expressivity of pro...
Being a successful technique in software practice, Object Orientation (OO) is a hot topic in academi...
Behavioural type systems, usually associated to concurrent or distributed computations, encompass co...
The need to use position-dependent parameters often hampers the definition of flexible, extensible, ...
Abstract. The need to use position-dependent parameters often hampers the definition of flexible, ex...
The development of flexible and reusable programming abstractions has suffered from the inherent pro...
A software component has a contract that specifies its properties and thus define conditions for its...
AbstractWe present a simple module calculus modeling software composition in an open environment, wh...
Abstraction and composition are the fundamental issues in making model checking viable for software....
There is considerable current interest in the design and construction of directly executable modelin...
Present-day applications are increasingly required to be flexible, or "open" in a variety of ways. B...
Many competing definitions of software components have been proposed over the years, but still today...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
The aim of this article is to support component-based software engineering by modelling exclusive an...
This dissertation introduces executable refinement types, a type system with the expressivity of pro...
Being a successful technique in software practice, Object Orientation (OO) is a hot topic in academi...
Behavioural type systems, usually associated to concurrent or distributed computations, encompass co...
The need to use position-dependent parameters often hampers the definition of flexible, extensible, ...
Abstract. The need to use position-dependent parameters often hampers the definition of flexible, ex...
The development of flexible and reusable programming abstractions has suffered from the inherent pro...
A software component has a contract that specifies its properties and thus define conditions for its...
AbstractWe present a simple module calculus modeling software composition in an open environment, wh...
Abstraction and composition are the fundamental issues in making model checking viable for software....
There is considerable current interest in the design and construction of directly executable modelin...
Present-day applications are increasingly required to be flexible, or "open" in a variety of ways. B...
Many competing definitions of software components have been proposed over the years, but still today...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
The aim of this article is to support component-based software engineering by modelling exclusive an...
This dissertation introduces executable refinement types, a type system with the expressivity of pro...
Being a successful technique in software practice, Object Orientation (OO) is a hot topic in academi...
Behavioural type systems, usually associated to concurrent or distributed computations, encompass co...