Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Parametric Subtyping for Structural Parametric Polymorphism
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 90, Pages 2700–2730https://doi.org/10.1145/3632932We study the interaction of structural subtyping with parametric polymorphism and recursively defined type constructors. Although structural subtyping is undecidable in this setting, we describe a notion of parametricity for type constructors and then ...
TASTyTruffle: Just-in-Time Specialization of Parametric Polymorphism
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA2Article No.: 277, Pages 1561–1588https://doi.org/10.1145/3622853Parametric polymorphism enables programmers to express algorithms independently of the types of values that they operate on. The approach used to implement parametric polymorphism can have important performance implications. One popular approach, ...
- articleMarch 2019
Using Structural and Parametric Polymorphism in the Creation of Digital Twins
Automatic Documentation and Mathematical Linguistics (SPADML), Volume 53, Issue 2Pages 81–84https://doi.org/10.3103/S0005105519020055This article considers digital twin creation based on structural and parametric polymorphism together with decision table ensembles. A new view of the concept of polymorphism applied to building digital models of physical objects is described. A new ...
On polymorphic gradual typing
Proceedings of the ACM on Programming Languages (PACMPL), Volume 1, Issue ICFPArticle No.: 40, Pages 1–29https://doi.org/10.1145/3110284We study an extension of gradual typing—a method to integrate dynamic typing and static typing smoothly in a single language—to parametric polymorphism and its theoretical properties, including conservativity of typing and semantics over both statically ...
- research-articleFebruary 2017
Polymorphic Manifest Contracts, Revised and Resolved
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 39, Issue 1Article No.: 3, Pages 1–36https://doi.org/10.1145/2994594Manifest contracts track precise program properties by refining types with predicates—for example, {x:Int∣ x > 0} denotes the positive integers. Contracts and polymorphism make a natural combination: programmers can give strong contracts to abstract ...
-
- research-articleOctober 2016
Call graphs for languages with parametric polymorphism
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 394–409https://doi.org/10.1145/2983990.2983991The performance of contemporary object oriented languages depends on optimizations such as devirtualization, inlining, and specialization, and these in turn depend on precise call graph analysis. Existing call graph analyses do not take advantage of the ...
Also Published in:
ACM SIGPLAN Notices: Volume 51 Issue 10 - research-articleOctober 2013
Miniboxing: improving the speed to code size tradeoff in parametric polymorphism translations
OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applicationsPages 73–92https://doi.org/10.1145/2509136.2509537Parametric polymorphism enables code reuse and type safety. Underneath the uniform interface exposed to programmers, however, its low level implementation has to cope with inherently non-uniform data: value types of different sizes and semantics (bytes, ...
Also Published in:
ACM SIGPLAN Notices: Volume 48 Issue 10 - research-articleMay 2012
Precise static analysis for generic programs in object oriented languages
ACM SIGSOFT Software Engineering Notes (SIGSOFT), Volume 37, Issue 3Pages 1–6https://doi.org/10.1145/2180921.2180937Genericity enriched with multiple data types and classes is becoming a common feature of object oriented languages. Therefore, static analysis of such generic programs is gaining importance. Unfortunately such work does not exist. In this work, we ...
- research-articleSeptember 2011
A hierarchy of mendler style recursion combinators: taming inductive datatypes with negative occurrences
ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programmingPages 234–246https://doi.org/10.1145/2034773.2034807The Mendler style catamorphism (which corresponds to weak induction) always terminates even for negative inductive datatypes. The Mendler style histomorphism (which corresponds to strong induction) is known to terminate for positive inductive datatypes. ...
Also Published in:
ACM SIGPLAN Notices: Volume 46 Issue 9 - research-articleSeptember 2011
Balanced trees inhabiting functional parallel programming
ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programmingPages 117–128https://doi.org/10.1145/2034773.2034791Divide-and-conquer is an important technique in parallel programming. However, algebraic data structures do not fit divide-and-conquer parallelism. For example, the usual pointer-based implementation of lists cannot efficiently be divided at their ...
Also Published in:
ACM SIGPLAN Notices: Volume 46 Issue 9 - research-articleMay 2011
Separating different responsibilities into parallel hierarchies
C3S2E '11: Proceedings of The Fourth International C* Conference on Computer Science and Software EngineeringPages 63–72https://doi.org/10.1145/1992896.1992905The Tease Apart Inheritance is a big refactoring technique used to separate different responsibilities tangled along a class hierarchy. This refactorization associates two parallel hierarchies through their roots in order to use one from the other. The ...
- ArticleMarch 2011
Polymorphic contracts
Manifest contracts track precise properties by refining types with predicates--e.g., {x:Int | x > 0} denotes the positive integers. Contracts and polymorphism make a natural combination: programmers can give strong contracts to abstract types, precisely ...
- ArticleDecember 2010
The Implementation of Polymorphic Many-Dorted Type System for Logic Programming Language Gödel
GCIS '10: Proceedings of the 2010 Second WRI Global Congress on Intelligent Systems - Volume 01Pages 102–106https://doi.org/10.1109/GCIS.2010.131Gödel is a declarative logic programming language succeeded to prolog. One of its important characteristics is polymorphic many-sorted type system. In this paper, we first introduce a notion of typed first order language. Then give the definitions of ...
- articleSeptember 2010
A Nominal Relational Model for Local Store
Electronic Notes in Theoretical Computer Science (ENTCS) (ENTCS), Volume 265Pages 403–421https://doi.org/10.1016/j.entcs.2010.08.024The theory of nominal sets is a theory for names, freshness and binders. It has recently been suggested as a framework for modelling local store because it allows for a more elementary development than the traditional presheaf models. However, when ...
- research-articleSeptember 2008
Lightweight monadic regions
Haskell '08: Proceedings of the first ACM SIGPLAN symposium on HaskellPages 1–12https://doi.org/10.1145/1411286.1411288We present Haskell libraries that statically ensure the safe use of resources such as file handles. We statically prevent accessing an already closed handle or forgetting to close it. The libraries can be trivially extended to other resources such as ...
Also Published in:
ACM SIGPLAN Notices: Volume 44 Issue 2 - ArticleJune 2008
Typed Normal Form Bisimulation for Parametric Polymorphism
LICS '08: Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer SciencePages 341–352https://doi.org/10.1109/LICS.2008.26This paper presents a new bisimulation theory for parametric polymorphism which enables straight forward co-inductive proofs of program equivalences involving existential types. The theory is an instance of typed normal form bisimulation and ...
- research-articleJanuary 2008
Closing the stage: from staged code to typed closures
PEPM '08: Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulationPages 147–157https://doi.org/10.1145/1328408.1328430Code generation lets us write well-abstracted programs without performance penalty. Writing a correct code generator is easier than building a full-scale compiler but still hard. Typed multistage languages such as MetaOCaml help in two ways: they ...
- ArticleOctober 2007
Lightweight scalable components
GPCE '07: Proceedings of the 6th international conference on Generative programming and component engineeringPages 145–154https://doi.org/10.1145/1289971.1289996One limitation of the well-known family polymorphism approach is that each "family" will be a large monolithic program. In this paper, we introduce a minimal lightweight set of language features that treat each member of a family as a reusable ...
- articleApril 2007
Relational Parametricity for Control Considered as a Computational Effect
Electronic Notes in Theoretical Computer Science (ENTCS) (ENTCS), Volume 173Pages 295–312https://doi.org/10.1016/j.entcs.2007.02.040This paper investigates parametric polymorphism in the presence of control operators. Our approach is to specialise a general type theory combining polymorphism and computational effects, by extending it with additional constants expressing control. By ...
- ArticleMarch 2007
Variadic templates for C++
SAC '07: Proceedings of the 2007 ACM symposium on Applied computingPages 1101–1108https://doi.org/10.1145/1244002.1244243Generic functions and classes accepting a variable number of type arguments have proven to be a very useful, but missing, feature of C++. Numerous foundational libraries rely on clever template and preprocessor tricks to emulate such variadic templates. ...