Network


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

Hotspot


Dive into the research topics where José Nuno Fonseca Oliveira is active.

Publication


Featured researches published by José Nuno Fonseca Oliveira.


Formal Aspects of Computing | 1990

A Reification Calculus for Model-Oriented Software Specification

José Nuno Fonseca Oliveira

This paper presents a transformational approach to the derivation of implementations from model-oriented specifications of abstract data types.The purpose of this research is to reduce the number of formal proofs required in model refinement, which hinder software development. It is shown to be applicable to the transformation of models written in META-IV (the specification language of VDM) towards their refinement into, for example, Pascal or relational DBMSs. The approach includes the automatic synthesis of retrieve functions between models, and data-type invariants.The underlying algebraic semantics is the so-calledfinal semantics “à la Wand”: a specification “is” amodel (heterogeneous algebra) which is the final object (up to isomorphism) in the category of all its implementations.The transformational calculus approached in this paper follows from exploring the properties of finite, recursively defined sets.This work extends the well-known strategy of program transformation to model transformation, adding to previous work on a transformational style for operation-decomposition in META-IV. The model-calculus is also useful for improving model-oriented specifications.


Electronic Notes in Theoretical Computer Science | 2003

State-based Components Made Generic

Luís Soares Barbosa; José Nuno Fonseca Oliveira

Genericity is a topic which is not sufficiently developed in state-based systems modelling, mainly due to a myriad of approaches and behaviour models which lack unification. This paper adopts coalgebra theory to propose a generic notion of a state-based software component, and an associated calculus, by quantifying over behavioural models specified as strong monads. This leads to the pointfree, calculational reasoning style which is typical of the so-called Bird-Meertens school.


Science of Computer Programming | 2013

Typing linear algebra: A biproduct-oriented approach

Hugo Daniel Macedo; José Nuno Fonseca Oliveira

Interested in formalizing the generation of fast running code for linear algebra applications, the authors show how an index-free, calculational approach to matrix algebra can be developed by regarding matrices as morphisms of a category with biproducts. This shifts the traditional view of matrices as indexed structures to a type-level perspective analogous to that of the pointfree algebra of programming. The derivation of fusion, cancellation and abide laws from the biproduct equations makes it easy to calculate algorithms implementing matrix multiplication, the central operation of matrix algebra, ranging from its divide-and-conquer version to its vectorization implementation. From errant attempts to learn how particular products and coproducts emerge from biproducts, not only blocked matrix algebra is rediscovered but also a way of extending other operations (e.g. Gaussian elimination) blockwise, in a calculational style, is found. The prospect of building biproduct-based type checkers for computer algebra systems such as Matlab(TM) is also considered.


formal methods | 2006

Type-safe two-level data transformation

Alcino Cunha; José Nuno Fonseca Oliveira; Joost Visser

A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. Examples of two-level data transformations include XML schema evolution coupled with document migration, and data mappings used for interoperability and persistence. We provide a formal treatment of two-level data transformations that is type-safe in the sense that the well-formedness of the value-level transformations with respect to the type-level transformation is guarded by a strong type system. We rely on various techniques for generic functional programming to implement the formalization in Haskell. The formalization addresses various two-level transformation scenarios, covering fully automated as well as user-driven transformations, and allowing transformations that are information-preserving or not. In each case, two-level transformations are disciplined by one-step transformation rules and type-level transformations induce value-level transformations. We demonstrate an example hierarchical-relational mapping and subsequent migration of relational data induced by hierarchical format evolution.


formal methods | 2006

Transposing partial components: an exercise on coalgebraic refinement

Luís Soares Barbosa; José Nuno Fonseca Oliveira

A partial component is a process which fails or dies at some stage, thus exhibiting a finite, more ephemeral behaviour man expected. Partiality--which is the rule rather than exception in formal modelling--can be treated mathematically via totalization techniques. In the case of partial functions, totalization involves error values and exceptions.In the context of a coalgebraic approach to component semantics, this paper argues that the behavioural counterpart to such functional techniques should extend behaviour with try-again cycles preventing from component collapse, thus extending totalization or transposition from the algebraic to the coalgebraic context.We show that a refinement relationship holds between original and totalized components which is reasoned about in a coalgebraic approach to component refinement expressed in the pointfree binary relation calculus.As part of the pragmatic aims of this research, we also address the factorization of every such totalized coalgebra into two coalgebraic components--the original one and an added front-end--which cooperate in a client-server style.


mathematics of program construction | 2004

Transposing Relations: from Maybe Functions to Hash Tables

José Nuno Fonseca Oliveira; César Jesus Rodrigues

Functional transposition is a technique for converting relations into functions aimed at developing the relational algebra via the algebra of functions.


Archive | 1992

Software reification using the SETS calculus

José Nuno Fonseca Oliveira

SETS is an emerging reification calculus for the derivation of implementations of model-oriented specifications of abstract data types.


Formal Aspects of Computing | 2012

Towards a linear algebra of programming

José Nuno Fonseca Oliveira

The algebra of programming (AoP) is a discipline for programming from specifications using relation algebra. Specification vagueness and nondeterminism are captured by relations. (Final) implementations are functions. Probabilistic functions are half way between relations and functions: they express the propensity, or likelihood of ambiguous, multiple outputs. This paper puts forward a basis for a linear algebra of programming (LAoP) extending standard AoP towards probabilistic functions. Because of the quantitative essence of these functions, the allegory of binary relations which supports the AoP has to be extended. We show that, if one restricts to discrete probability spaces, categories of matrices provide adequate support for the extension, while preserving the pointfree reasoning style typical of the AoP.


principles and practice of declarative programming | 2008

'Galculator': functional prototype of a Galois-connection based proof assistant

Paulo Silva; José Nuno Fonseca Oliveira

Galculator is the name of the prototype of a proof assistant of a special brand: it is solely based on the algebra of Galois connections. When combined with the pointfree transform and tactics such as the indirect equality principle, Galois connections offer a very powerful, generic device to tackle the complexity of proofs in program verification. The paper describes the architecture of the current Galculator prototype, which is implemented in Haskell in order to steer types as much as possible. The prospect of integrating the Galculator with other proof assistants such as e.g. Coq is also discussed


formal methods | 2009

An Integrated Formal Methods Tool-Chain and Its Application to Verifying a File System Model

Miguel Ferreira; José Nuno Fonseca Oliveira

Tool interoperability as a mean to achieve integration is among the main goals of the international Grand Challenge initiative. In the context of the Verifiable file system mini-challenge put forward by Rajeev Joshi and Gerard Holzmann, this paper focuses on the integration of different formal methods and tools in modelling and verifying an abstract file system inspired by the Intel

Collaboration


Dive into the José Nuno Fonseca Oliveira's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Joost Visser

Radboud University Nijmegen

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