Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por HASLab

1999

Prototyping Processes

Autores
Barbosa, LS;

Publicação
1999 Joint Conference on Declarative Programming, AGP'99, L'Aquila, Italy, September 6-9, 1999

Abstract

1999

Constructor subtyping

Autores
Barthe, G; Frade, MJ;

Publicação
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
Constructor subtyping is a form of subtyping in which an inductive type s is viewed as a subtype of another inductive type t if t has more constructors than s. As suggested in [5,12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed ?-calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a well-behaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, including ?-expansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved. © Springer-Verlag Berlin Heidelberg 1999.

1999

Type-based termination of recursive definitions

Autores
BARTHE, G; FRADE, MJ; GIMNEZ, E; PINTO, L; UUSTALU, T;

Publicação
Mathematical Structures in Computer Science - Math. Struct. Comp. Sci.

Abstract

1999

Constructor subtyping

Autores
Barthe, G; Frade, MJ;

Publicação
PROGRAMMING LANGUAGES AND SYSTEMS

Abstract
Constructor subtyping is a form of subtyping in which an inductive type sigma is viewed as a subtype of another inductive type tau if tau has more constructors than sigma. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed lambda-calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a well-behaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, including eta-expansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved.

1999

Aliasing in object oriented systems

Autores
Noble, J; Vitek, J; Lea, D; Almeida, PS;

Publicação
OBJECT-ORIENTED TECHNOLOGY

Abstract
This chapter contains summaries of the presentations given at the Intercontinental Workshop on Aliasjng in Object-Oriented Systems (IWAOOS'99) at the European Conference on Object-Oriented Programming (ECOOP'99) which was held in Lisbon, Portugal on June 15, 1999.

1999

Type-checking balloon types

Autores
Almeida, PS;

Publicação
Electronic Notes in Theoretical Computer Science

Abstract
Current data abstraction mechanisms are not adequate to control sharing of state in the general case involving objects in linked structures. The pervading possibility of sharing is a source of errors and an obstacle to language implementation techniques. Balloon types, which we have introduced in [2], are a general extension to programming languages. They make the ability to share state a first class property of a data type. The balloon invariant expresses a strong form of encapsulation: no state reachable (directly or transitively) by a balloon object is referenced by any external object. In this paper we describe the checking mechanism for balloon types. It relies on a non-trivial static analysis, described as an abstract interpretation. Here we focus in particular on the design of the abstract domain which allows the checking mechanism to work under realistic assumptions regarding possible object aliasing. ©1999 Published by Elsevier Science B. V.

  • 256
  • 262