Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation 2019
DOI: 10.1145/3314221.3314630
|View full text |Cite
|
Sign up to set email alerts
|

Type-level computations for Ruby libraries

Abstract: Many researchers have explored ways to bring static typing to dynamic languages. However, to date, such systems are not precise enough when types depend on values, which often arises when using certain Ruby libraries. For example, the type safety of a database query in Ruby on Rails depends on the table and column names used in the query. To address this issue, we introduce CompRDL, a type system for Ruby that allows library method type signatures to include typelevel computations (or comp types for short). Co… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
3

Relationship

2
5

Authors

Journals

citations
Cited by 10 publications
(12 citation statements)
references
References 37 publications
0
12
0
Order By: Relevance
“…Following the approach of Kazerounian et al [2019], it would be interesting to study a version of our theory of refinement kinds that is applied to a real-world dynamically typed language by inserting run-time checks to ensure methods follow their specified types.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Following the approach of Kazerounian et al [2019], it would be interesting to study a version of our theory of refinement kinds that is applied to a real-world dynamically typed language by inserting run-time checks to ensure methods follow their specified types.…”
Section: Discussionmentioning
confidence: 99%
“…The example above contrasts with [Kazerounian et al 2019], where a related example is formulated such that the equivalent of our ColRecPreds type-level function actually queries a database for the appropriate table schema, whereas ColRecPreds can only inspect the "shape" of its type arguments to obtain the table schema (i.e. the types of records contained in the collection).…”
Section: Related Workmentioning
confidence: 99%
“…This is a core idea behind RDL [Foster et al 2018], a Ruby type checker on which InferDL and SimTyper are built. Finally, Kazerounian et al [2019] introduced the idea of type-level computations, which are also incorporated into SimTyper and greatly reduce the need for type casts in the presence of arrays, hashes, and Rails database queries.…”
Section: Related Workmentioning
confidence: 99%
“…Many researchers have explored ways to add static types to dynamic languages, aiming to provide the benefits of static typing while preserving the flexibility of the language [Aiken et al 1994;Cartwright and Fagan 1991;Flanagan and Felleisen 1997;Kazerounian et al 2019;Lerner et al 2013;Ren and Foster 2016;Siek and Taha 2006;Tobin-Hochstadt and Felleisen 2008;Vitousek et al 2014].…”
Section: Introductionmentioning
confidence: 99%
“…For brevity, our presentation only covers a small part of Spark's dataset interface, but the approach can be scaled to cover that interface in its entirety. The type safety of database queries is a canonical example and has been studied in many different settings [Chlipala 2010;Kazerounian et al 2019;Leijen and Meijer 1999;Meijer et al 2006].…”
Section: A Type-safe Database Interfacementioning
confidence: 99%