Network


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

Hotspot


Dive into the research topics where Lucília Figueiredo is active.

Publication


Featured researches published by Lucília Figueiredo.


principles and practice of declarative programming | 2004

Constraint-set satisfiability for overloading

Carlos Camarão; Lucília Figueiredo; Cristiano D. Vasconcellos

This article discusses the problem of constraint-set satisfiability (CSSAT) --- that is, the problem of determining whether a given constraint-set is satisfiable in a given typing context --- in the context of systems with support for overloading and parametric polymorphism. The paper reviews previous works on constraint-set satisfiability, showing that overloading policies used in order to guarantee decidability of CSSAT have been generally too restrictive. An algorithm is proposed that does not impose a severe restriction on possible overloadings and decides CSSAT in an expectedly vast majority of cases of practical interest. In cases for which satisfiability cannot be decided, a configurable limit on the number of iterations is used to guarantee termination.


international symposium on functional and logic programming | 1999

Type Inference for Overloading without Restrictions, Declarations or Annotations

Carlos Camarão; Lucília Figueiredo

This article presents a type system based on the Damas-Milner system [DM82], that supports overloading. Types of overloaded symbols are constrained polymorphic types. The work is related to Haskell type classes [Wad89,NP93,HHJW96], System O [OWW95] and other similar type systems [Kae88,Smi91,Jon94,DCO96]. Restrictions imposed in these systems with respect to overloading are eliminated. User-defined global and local overloading is supported without restrictions. There is no need for declarations or annotations of any sort. No language construct is added in order to cope with overloading. The type system uses a context-dependent overloading policy, specified by a predicate used in a single inference rule. Overloading of functions defined over different type constructors is supported, as done with Haskell’s constructor classes. No monomorphism restriction is required in order to solve ambiguity problems. The system uses an open-world approach, in which new overloaded definitions can be introduced with types automatically reflecting the new definitions. The article also presents a type inference algorithm for the system, which is proved to be sound and to compute principal typings.


Science of Computer Programming | 2016

Ambiguity and constrained polymorphism

Carlos Camarão; Lucília Figueiredo; Rodrigo Ribeiro

A precise characterization of overloading resolution and ambiguity.Discussion of the standard as well as Haskells open-world definitions of ambiguity.Definition and discussion of an approach for ambiguity detection that is delayed until after overloading resolution. This paper considers the problem of ambiguity in Haskell-like languages. Overloading resolution is characterized in the context of constrained polymorphism by the presence of unreachable variables in constraints on the type of the expression. A new definition of ambiguity is presented, where existence of more than one instance for the constraints on an expression type is considered only after overloading resolution. This introduces a clear distinction between ambiguity and overloading resolution, makes ambiguity more intuitive and independent from extra concepts, such as functional dependencies, and enables more programs to type-check as fewer ambiguities arise.The paper presents a type system and a type inference algorithm that includes: a constraint-set satisfiability function, that determines whether a given set of constraints is entailed or not in a given context, focusing on issues related to decidability, a constraint-set improvement function, for filtering out constraints for which overloading has been resolved, and a context-reduction function, for reducing constraint sets according to matching instances. A standard dictionary-style semantics for core Haskell is also presented.


Journal of the Brazilian Computer Society | 2013

Terminating constraint set satisfiability and simplification algorithms for context-dependent overloading

Rodrigo Ribeiro; Carlos Camarão; Lucília Figueiredo

Algorithms for constraint set satisfiability and simplification of Haskell type class constraints are used during type inference in order to allow the inference of more accurate types and to detect ambiguity. Unfortunately, both constraint set satisfiability and simplification are in general undecidable, and the use of these algorithms may cause non-termination of type inference. This paper presents algorithms for these problems that terminate on any given input, based on the use of a criterion that is tested on each recursive step. The use of this criterion eliminates the need of imposing syntactic conditions on Haskell type class and instance declarations in order to guarantee termination of type inference in the presence of multi-parameter type classes, and allows program compilation without the need of compiler flags for lifting such restrictions. Undecidability of the problems implies the existence of instances for which the algorithm incorrectly reports unsatisfiability, but we are not aware of any practical example where this occurs.


Brazilian Symposium on Programming Languages | 2016

Optional Type Classes for Haskell

Rodrigo Ribeiro; Carlos Camarão; Lucília Figueiredo; Cristiano D. Vasconcellos

This paper explores an approach for allowing type classes to be optionally declared by programmers, i.e. programmers can overload symbols without declaring their types in type classes.


Journal of the Brazilian Computer Society | 2013

Mechanized Metatheory for a λ-Calculus with Trust Types

Rodrigo Ribeiro; Lucília Figueiredo; Carlos Camarão

As computer programs become increasingly complex, techniques for ensuring trustworthiness of information manipulated by them become critical. In this work, we use the Coq proof assistant to formalise a


Journal of the Brazilian Computer Society | 2003

Mímico: a monadic combinator parser generator

Carlos Camarão; Lucília Figueiredo; Hermann Rodrigues


Electronic Notes in Theoretical Computer Science | 2003

Preface: Volume 84

Ruy J. G. B. de Queiroz; Elaine Pimentel; Lucília Figueiredo

\lambda


Electronic Notes in Theoretical Computer Science | 1998

A type system for context-dependent overloading.

Carlos Camarão; Lucília Figueiredo


Electronic Notes in Theoretical Computer Science | 1998

Towards Higher-Order Types

Carlos Camarão; Lucília Figueiredo

λ-calculus with trust types, originally formulated by Ørbæk and Palsberg. We give formal proofs of type soundness, erasure and simulation theorems and also prove decidability of the typing problem. As a result of our formalisation a certified type checker is derived.

Collaboration


Dive into the Lucília Figueiredo's collaboration.

Top Co-Authors

Avatar

Carlos Camarão

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Cristiano D. Vasconcellos

Universidade do Estado de Santa Catarina

View shared research outputs
Top Co-Authors

Avatar

Rodrigo Ribeiro

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Elaine Pimentel

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Hermann Rodrigues

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

João Nicola

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Ruy J. G. B. de Queiroz

Federal University of Pernambuco

View shared research outputs
Researchain Logo
Decentralizing Knowledge