File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

Conference Paper: Distributive Disjoint Polymorphism for Compositional Programming

TitleDistributive Disjoint Polymorphism for Compositional Programming
Authors
Issue Date2019
PublisherSpringer.
Citation
Proceedings of the 28th European Symposium on Programming (ESOP 2019): Programming Languages and Systems, Prague, Czech Republic, 6–11 April 2019, p. 381-409 How to Cite?
AbstractPopular programming techniques such as shallow embeddings of Domain Specific Languages (DSLs), finally tagless or object algebras are built on the principle of compositionality. However, existing programming languages only support simple compositional designs well, and have limited support for more sophisticated ones. This paper presents the F+i calculus, which supports highly modular and compositional designs that improve on existing techniques. These improvements are due to the combination of three features: disjoint intersection types with a merge operator; parametric (disjoint) polymorphism; and BCD-style distributive subtyping. The main technical challenge is F+i ’s proof of coherence. A naive adaptation of ideas used in System F’s parametricity to canonicity (the logical relation used by F+i to prove coherence) results in an ill-founded logical relation. To solve the problem our canonicity relation employs a different technique based on immediate substitutions and a restriction to predicative instantiations. Besides coherence, we show several other important meta-theoretical results, such as type-safety, sound and complete algorithmic subtyping, and decidability of the type system. Remarkably, unlike F<: ’s bounded polymorphism, disjoint polymorphism in F+i supports decidable type-checking.
DescriptionPart of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019
Persistent Identifierhttp://hdl.handle.net/10722/301422
ISBN
ISI Accession Number ID
Series/Report no.Lecture Notes in Computer Science (LNCS) ; v. 11423

 

DC FieldValueLanguage
dc.contributor.authorBi, X-
dc.contributor.authorXie, N-
dc.contributor.authorDos Santos Oliveira, BC-
dc.contributor.authorSchrijvers, T-
dc.date.accessioned2021-07-27T08:10:50Z-
dc.date.available2021-07-27T08:10:50Z-
dc.date.issued2019-
dc.identifier.citationProceedings of the 28th European Symposium on Programming (ESOP 2019): Programming Languages and Systems, Prague, Czech Republic, 6–11 April 2019, p. 381-409-
dc.identifier.isbn9783030171834-
dc.identifier.urihttp://hdl.handle.net/10722/301422-
dc.descriptionPart of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019-
dc.description.abstractPopular programming techniques such as shallow embeddings of Domain Specific Languages (DSLs), finally tagless or object algebras are built on the principle of compositionality. However, existing programming languages only support simple compositional designs well, and have limited support for more sophisticated ones. This paper presents the F+i calculus, which supports highly modular and compositional designs that improve on existing techniques. These improvements are due to the combination of three features: disjoint intersection types with a merge operator; parametric (disjoint) polymorphism; and BCD-style distributive subtyping. The main technical challenge is F+i ’s proof of coherence. A naive adaptation of ideas used in System F’s parametricity to canonicity (the logical relation used by F+i to prove coherence) results in an ill-founded logical relation. To solve the problem our canonicity relation employs a different technique based on immediate substitutions and a restriction to predicative instantiations. Besides coherence, we show several other important meta-theoretical results, such as type-safety, sound and complete algorithmic subtyping, and decidability of the type system. Remarkably, unlike F<: ’s bounded polymorphism, disjoint polymorphism in F+i supports decidable type-checking.-
dc.languageeng-
dc.publisherSpringer.-
dc.relation.ispartofProceedings of the 28th European Symposium on Programming (ESOP 2019): Programming Languages and Systems-
dc.relation.ispartofseriesLecture Notes in Computer Science (LNCS) ; v. 11423-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.titleDistributive Disjoint Polymorphism for Compositional Programming-
dc.typeConference_Paper-
dc.identifier.emailDos Santos Oliveira, BC: bruno@cs.hku.hk-
dc.identifier.authorityDos Santos Oliveira, BC=rp01786-
dc.identifier.doi10.1007/978-3-030-17184-1_14-
dc.identifier.scopuseid_2-s2.0-85064935918-
dc.identifier.hkuros323715-
dc.identifier.spage381-
dc.identifier.epage409-
dc.identifier.isiWOS:000681669300014-
dc.publisher.placeCham-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats