Types for Tables: A Language Design BenchmarkEditors’ AwardVol. 6
Context Tables are ubiquitous formats for data. Therefore, techniques for writing correct programs over tables, and debugging incorrect ones, are vital. Our specific focus in this paper is on rich types that articulate the properties of tabular operations. We wish to study both their expressive power and diagnostic quality.
Inquiry There is no “standard library” of table operations. As a result, every paper (and project) is free to use its own (sub)set of operations. This makes artifacts very difficult to compare, and it can be hard to tell whether omitted operations were left out by oversight or because they cannot actually be expressed. Furthermore, virtually no papers discuss the quality of type error feedback.
Approach We combed through several existing languages and libraries to create a “standard library” of table operations. Each entry is accompanied by a detailed specification of its “type,” expressed independent of (and hence not constrained by) any type language. We also studied and categorized a corpus of (student) program edits that resulted in table-related errors. We used this to generate a suite of erroneous programs. Finally, we adapted the concept of a datasheet to facilitate comparisons of different implementations.
Knowledge Our benchmark creates a common ground to frame work in this area. Language designers who claim to support typed programming over tables have a clear suite against which to demonstrate their system’s expressive power. Our family of errors also gives them a chance to demonstrate the quality of feedback. Researchers who improve one aspect—especially error reporting—without changing the other can demonstrate their improvement, as can those who engage in trade-offs between the two. The net result should be much better science in both expressiveness and diagnostics. We also introduce a datasheet format for presenting this knowledge in a methodical way.
Grounding We have generated our benchmark from real languages, libraries, and programs, as well as personal experience conducting and teaching data science. We have drawn on experience in engineering and, more recently, in data science to generate the datasheet.
Importance Claims about type support for tabular programming are hard to evaluate. However, tabular programming is ubiquitous, and the expressive power of type systems keeps growing. Our benchmark and datasheet can help lead to more orderly science. It also benefits programmers trying to choose a language.
Mon 11 AprDisplayed time zone: Lisbon change
06:00 - 09:00 | |||
06:00 15mOther | Conference Opening G: Ademar Aguiar FEUP, Universidade do Porto, A: Emma Söderberg Lund University, S: Guido Salvaneschi University of St. Gallen | ||
06:15 25mResearch paper | Type Checking Extracted MethodsVol. 6 Research Papers Link to publication | ||
06:40 25mResearch paper | Types for Tables: A Language Design BenchmarkEditors’ AwardVol. 6 Research Papers Kuang-Chen Lu Brown University, USA, Ben Greenman Brown University, Shriram Krishnamurthi Brown University, United States Link to publication | ||
07:05 25mResearch paper | Continuation-Passing Style, Defunctionalization, Accumulations, and AssociativityReviewers’ AwardVol. 6 Research Papers Jeremy Gibbons Department of Computer Science, University of Oxford Link to publication | ||
07:30 25mResearch paper | The Art of the Meta Stream Protocol: Torrents of StreamsVol. 6 Research Papers Christophe De Troyer Vrije Universiteit Brussel, Jens Nicolay Vrije Universiteit Brussel, Wolfgang De Meuter Vrije Universiteit Brussel Link to publication |