Filters








141,380 Hits in 9.4 sec

Abstracting extensible data types: or, rows by any other name

J. Garrett Morris, James McKinna
2019 Proceedings of the ACM on Programming Languages (PACMPL)  
We present a novel typed language for extensible data types, generalizing and abstracting existing systems of row types and row polymorphism.  ...  We propose a new approach to row types for extensible data types, based on two key ideas. The first is a monoidal account of rows and row extension.  ...  Other applications of rows. We have considered rows solely in the context of extensible data types. Row types have been used to capture similar ideas of extensibility in several other contexts.  ... 
doi:10.1145/3290325 fatcat:c6rd5izb55en3h7oxhivzrje7y

Dependent type providers

David Raymond Christiansen
2013 Proceedings of the 9th ACM SIGPLAN workshop on Generic programming - WGP '13  
Because these dependent type providers use the ordinary abstraction mechanisms of the type system, they preserve its safety properties.  ...  Type providers [16] , pioneered in the F# programming language, are a practical and powerful means of gaining the benefits of a modern static type system when working with data schemas that are defined  ...  Acknowledgments This work was performed as part of the Actulus project, which is generously supported by the Danish Advanced Technology Foundation (017-2010-3).  ... 
doi:10.1145/2502488.2502495 dblp:conf/icfp/Christiansen13 fatcat:dd4v6wvhyffjvcgweubbp6nvli

Type directed compilation of row-typed algebraic effects

Daan Leijen
2017 Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages - POPL 2017  
We give an effective type inference algorithm based on extensible effect rows using scoped labels, and a direct operational semantics.  ...  Finally, we show an efficient compilation scheme to common runtime platforms (such as JavaScript, the JVM, or .NET) using a type directed selective CPS translation.  ...  A problem with many effect systems is that the inferred types become large or difficult to understand -we have extensive experience with large effectful programs that suggests that the row-type approach  ... 
doi:10.1145/3009837.3009872 fatcat:ytps3xv3qzeblewdae474wkwoq

Type directed compilation of row-typed algebraic effects

Daan Leijen
2017 SIGPLAN notices  
We give an effective type inference algorithm based on extensible effect rows using scoped labels, and a direct operational semantics.  ...  Finally, we show an efficient compilation scheme to common runtime platforms (such as JavaScript, the JVM, or .NET) using a type directed selective CPS translation.  ...  A problem with many effect systems is that the inferred types become large or difficult to understand -we have extensive experience with large effectful programs that suggests that the row-type approach  ... 
doi:10.1145/3093333.3009872 fatcat:zsiubfvgizhcnixyty6rvy7ahq

Typing record concatenation for free

Didier Rémy
1992 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '92  
We obtain a type system for a language with record concatenation by composing the translation with typechecking in a language with record extension.  ...  We apply this method to a version of ML with record extension and obtain an extension of ML with either asymmetric or symmetric concatenation.  ...  Though records are data, they should be typed as if there were abstractions over an input row of elds that they modify.  ... 
doi:10.1145/143165.143202 dblp:conf/popl/Remy92 fatcat:3umdwqsshng5fopnttwxdh6bym

Dependently typed programming with singletons

Richard A. Eisenberg, Stephanie Weirich
2013 SIGPLAN notices  
Although the ideas are inspired by dependently typed programs, the code looks significantly different.  ...  As a result, GHC implementors have responded with extensions to Haskell's type system, such as GADTs, type families, and datatype promotion.  ...  We next define rows in our database: data Row :: Schema → * where EmptyRow :: [Int ] → Row (Sch '[ ]) ConsRow :: El u → Row (Sch s) → Row (Sch ((Attr name u) ': s)) The Row datatype has two constructors  ... 
doi:10.1145/2430532.2364522 fatcat:mefegjoeurhadls6dvt2qhvmgm

Dependently typed programming with singletons

Richard A. Eisenberg, Stephanie Weirich
2012 Proceedings of the 2012 symposium on Haskell symposium - Haskell '12  
Although the ideas are inspired by dependently typed programs, the code looks significantly different.  ...  As a result, GHC implementors have responded with extensions to Haskell's type system, such as GADTs, type families, and datatype promotion.  ...  We next define rows in our database: data Row :: Schema → * where EmptyRow :: [Int ] → Row (Sch '[ ]) ConsRow :: El u → Row (Sch s) → Row (Sch ((Attr name u) ': s)) The Row datatype has two constructors  ... 
doi:10.1145/2364506.2364522 dblp:conf/haskell/EisenbergW12 fatcat:g75xxbtvhjhsbes3csizbug3u4

Row-based effect types for database integration

Sam Lindley, James Cheney
2012 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation - TLDI '12  
We present CORELINKS, a call-by-value variant of System F with row polymorphism, row-based effect types, and implicit subkinding, which forms the basis for the Links web programming language.  ...  We focus on extensions to CORELINKS for database programming.  ...  F [18] , and Nicolas Oury for helpful discussions about encoding row types.  ... 
doi:10.1145/2103786.2103798 dblp:conf/tldi/LindleyC12 fatcat:62ezdw6dw5azlah7o6wwunwjbe

Strongly typed heterogeneous collections

Oleg Kiselyov, Ralf Lämmel, Keean Schupke
2004 Proceedings of the ACM SIGPLAN workshop on Haskell - Haskell '04  
A heterogeneous collection is a datatype that is capable of storing data of different types, while providing operations for look-up, update, iteration, and others.  ...  We describe HLIST -a Haskell library for strongly typed heterogeneous collections including extensible records. We illustrate HLIST's benefits in the context of type-safe database access in Haskell.  ...  Type-indexed rows Shield and Meijer have studied the type theory of extensible records and variants starting from a more basic principle, namely typeindexed rows (TIRs) [31] .  ... 
doi:10.1145/1017472.1017488 dblp:conf/haskell/KiselyovLS04 fatcat:uw2w676ht5hdhckjzrqoh4unwu

Gradual Typing for Extensibility by Rows [article]

Taro Sekiyama, Atsushi Igarashi
2019 arXiv   pre-print
and, conversely, projecting the dynamic row type to any static row type.  ...  To simplify our technical development for row polymorphism, we adopt scoped labels, which are employed by the language Koka and are also emerging in the context of effect systems.  ...  This work was supported in part by: JSPS KAKENHI Grant Number JP17H01723 (Igarashi); and JSPS KAKENHI Grant Number JP19K20247 and ERATO HASUO Metamathematics for Systems Design Project (JPMJER1603), JST  ... 
arXiv:1910.08480v2 fatcat:oaau3iwd5becpofxwyryblsk6m

Typing Component-Based Communication Systems [chapter]

Michael Lienhardt, Claudio Antares Mezzina, Alan Schmitt, Jean-Bernard Stefani
2009 Lecture Notes in Computer Science  
These errors are typically not captured by classical type systems of host programming languages such as Java or ML.  ...  We thus propose an extension of the ADL approach with a type analysis devised to deal with a class of data manipulation errors that occur in ill-formed communication systems assemblages.  ...  We are currently trying to generalize the notion of tagged types in order to apply to concurrent functional languages, and to extend our approach to deal with reconfiguration errors in dynamically evolving  ... 
doi:10.1007/978-3-642-02138-1_11 fatcat:6p42x5wh35h3rgzffauvuc2nya

Polymorphic typed defunctionalization and concretization

François Pottier, Nadji Gauthier
2006 Higher-Order and Symbolic Computation  
We show that defunctionalization can be viewed as a type-preserving transformation of an extension of System F with guarded algebraic data types into itself.  ...  One eliminates Rémy-style polymorphic records; the other eliminates the dictionary records introduced by the standard compilation scheme for Haskell's type classes.  ...  The data constructor (or, in other words, the closure's tag) is m, the unique label that was assigned to this λ-abstraction.  ... 
doi:10.1007/s10990-006-8611-7 fatcat:r6omxzehqrcjbitauem564ae7y

Type Safe Extensible Programming [article]

Wonseok Chae
2009 arXiv   pre-print
Sometimes they evolve by adding new features, and sometimes by either fixing bugs or replacing outdated implementations with new ones.  ...  Such extensibility mechanisms, furthermore, should not compromise any existing functionality during extension.  ...  Row types are either the empty row ( ), a typed label followed by another row type (l :τ ,ρ), a row type variable (α) or a row arrow applied to a row type variable and a type (α τ ).  ... 
arXiv:0910.2654v1 fatcat:kx3hvde5cvblvkuthkjuluczii

Between Types and Tables [chapter]

Bas Lijnse, Rinus Plasmeijer
2011 Lecture Notes in Computer Science  
Since each new information system requires the same kind of operations, but for different types of data, much of this effort consists of repetitive programming work.  ...  The presented approach uses Object Role Models to systematically derive both the relational model of a database, and the types of the data structures that represent entities in that database.  ...  In our generic mapping we do not try to map all abstract data types to a representation as a relational model, nor do we try to just map a relational model of a database to abstract data types.  ... 
doi:10.1007/978-3-642-24452-0_15 fatcat:jq75l33difccbefqqwnmvqvtam

Scopes as types

Hendrik van Antwerpen, Casper Bach Poulsen, Arjen Rouvoet, Eelco Visser
2018 Proceedings of the ACM on Programming Languages (PACMPL)  
of type safety proofs.  ...  In this paper, we show that viewing scopes as types enables us to model the internal structure of types in a range of non-simple type systems (including structural records and generic classes) using the  ...  This research was funded by the NWO VICI Language Designer's Workbench project (639.023.206).  ... 
doi:10.1145/3276484 fatcat:eeqoingozvb4hocvbw5ivwcafa
« Previous Showing results 1 — 15 out of 141,380 results