Skip to main content

Showing 1–6 of 6 results for author: Oliveira, B C D S

.
  1. arXiv:2407.00941  [pdf, ps, other

    cs.PL

    Full Iso-recursive Types

    Authors: Litao Zhou, Qianyong Wan, Bruno C. d. S. Oliveira

    Abstract: There are two well-known formulations of recursive types: iso-recursive and equi-recursive types. Abadi and Fiore [1996] have shown that iso- and equi-recursive types have the same expressive power. However, their encoding of equi-recursive types in terms of iso-recursive types requires explicit coercions. These coercions come with significant additional computational overhead, and complicate reas… ▽ More

    Submitted 7 July, 2024; v1 submitted 30 June, 2024; originally announced July 2024.

    Comments: This work has been conditionally accepted to OOPSLA 2024

  2. Direct Foundations for Compositional Programming

    Authors: Andong Fan, Xue**g Huang, Han Xu, Yaozhu Sun, Bruno C. d. S. Oliveira

    Abstract: The recently proposed CP language adopts Compositional Programming: a new modular programming style that solves challenging problems such as the Expression Problem. CP is implemented on top of a polymorphic core language with disjoint intersection types called Fi+. The semantics of Fi+ employs an elaboration to a target language and relies on a sophisticated proof technique to prove the coherence… ▽ More

    Submitted 12 May, 2022; originally announced May 2022.

    Comments: the extended version of Direct Foundations for Compositional Programming to appear in ECOOP 2022

  3. arXiv:2010.06216  [pdf, other

    cs.PL cs.LO

    Resolution as Intersection Subty** via Modus Ponens

    Authors: Koar Marntirosian, Tom Schrijvers, Bruno C. d. S. Oliveira, Georgios Karachalias

    Abstract: Resolution and subty** are two common mechanisms in programming languages. Resolution is used by features such as type classes or Scala-style implicits to synthesize values automatically from contextual type information. Subty** is commonly used to automatically convert the type of a value into another compatible type. So far the two mechanisms have been considered independently of each other.… ▽ More

    Submitted 15 October, 2020; v1 submitted 13 October, 2020; originally announced October 2020.

    Comments: 43 pages, 20 figures; typos corrected, link to artifact added

  4. Kind Inference for Datatypes: Technical Supplement

    Authors: Ningning Xie, Richard A. Eisenberg, Bruno C. d. S. Oliveira

    Abstract: In recent years, languages like Haskell have seen a dramatic surge of new features that significantly extends the expressive power of their type systems. With these features, the challenge of kind inference for datatype declarations has presented itself and become a worthy research problem on its own. This paper studies kind inference for datatypes. Inspired by previous research on type-inferenc… ▽ More

    Submitted 11 November, 2019; originally announced November 2019.

    Comments: Technical supplement for POPL2020 paper Kind Inference for Datatypes

  5. Separating Use and Reuse to Improve Both

    Authors: Hrshikesh Arora, Marco Servetto, Bruno C. D. S. Oliveira

    Abstract: Context: Trait composition has inspired new research in the area of code reuse for object oriented (OO) languages. One of the main advantages of this kind of composition is that it makes possible to separate subty** from subclassing; which is good for code-reuse, design and reasoning. However, handling of state within traits is difficult, verbose or inelegant. Inquiry: We identify the this-leaki… ▽ More

    Submitted 1 February, 2019; originally announced February 2019.

    Journal ref: The Art, Science, and Engineering of Programming, 2019, Vol. 3, Issue 3, Article 12

  6. arXiv:1203.4499  [pdf, ps, other

    cs.PL

    Extended Report: The Implicit Calculus

    Authors: Bruno C. d. S. Oliveira, Tom Schrijvers, Wontae Choi, Wonchan Lee, Kwangkeun Yi

    Abstract: Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combine two features: 1) a special type of interfaces; and 2) implicit instantiation of implementations of those interfaces. Scala implicits are a GP language mechanism, inspired by type classes, that break with the traditio… ▽ More

    Submitted 20 March, 2012; originally announced March 2012.

    Comments: 13 pages, extended report of paper accepted at PLDI 2012