paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Interactive Data Analysis with Lively Typed Tables

交互式数据分析:活类型化表格
OOPSLA 10(OOPSLA2)2026匹配度 2/10 · 该论文属于编程语言与类型系统方向,研究表格数据的渐进类型与实时编程环境,但未涉及用户核心关注的静态分析×ML/Agent、浮点程序分析、贝叶斯程序分析或LLM交叉等任何方向,也无LLM参与。引用 0 inbox
Alexander Bandukwala, Cyrus Omar
crossref: 2026-10-02

AI 速览

一句话:提出 Hazel Lab,将渐进类型的标签化元组表与 live typing、rich probes 结合,使表操作支持数据依赖的列模式并保留编辑器支持。

面向表格数据的编程系统(电子表格、计算 notebook)因缺少静态类型而限制了可提供的编辑器支持,尤其当代码组织为可复用函数时;而静态类型替代方案又难以表达列模式依赖数据的操作,如透视、unstack 与 one-hot 编码。本文提出 Hazel Lab,作为活渐进类型函数式环境 Hazel 的扩展:把表视为带标签元组的序列,引入若干渐进类型操作(含字段名与字符串互转),尽力做静态类型检查,无法静态确定模式时回退到 unknown 类型。为在回退时改进类型反馈与错误定位,作者提出 live typing,将运行时观察到的 unknown 类型实例化反馈给静态检查器,与既有 live probes 的动态反馈互补;并以带表格视图的 rich probes 支持通过直接操控编辑数据管道。基于 B2T2 基准,系统能合理表达全部示例;7 名参与者的实验室研究显示,表格操作可有效用于数据清洗与转换,live typing 有助于理解与调试现有分析。

问题
面向表格数据的编程系统普遍缺少静态类型,限制了编辑器支持;而静态类型方案又难以类型化列模式依赖数据的操作(透视、unstack、one-hot 编码等),难以兼顾表达力与编辑器支持。
方法
作为活渐进类型函数式环境 Hazel 的扩展构建 Hazel Lab,以带标签元组序列表示表并加入渐进类型操作,对无法静态确定的模式回退到 unknown 类型;引入 live typing 将动态观察到的类型实例化反馈给静态检查器,并提出带表格视图、支持直接操控的 rich probes。
评估
使用 Brown Benchmark For Table Types(B2T2)评估核心抽象的表达力,结果表明可合理表达每个示例;并对 7 名熟悉静态类型函数式编程的参与者开展实验室可用性研究,考察表格操作、live typing 与 rich probes 在数据清洗和分析任务中的可用性与有用性。
原文摘要(Abstract)

Programming systems tailored for working with tabular data ( tabular programming systems ), such as spreadsheets and computational notebooks, are essential tools in data science. However, widely adopted systems are limited by the absence of static typing, which restricts the editor support they can provide, particularly when code is organized into reusable functions. Statically typed alternatives are limited by the fact that many useful operations on tables produce results whose column schema is data-dependent, e.g. pivots, unstack operations, or one-hot encodings. This paper introduces Hazel Lab , a new tabular programming system built as an extension of Hazel, a live gradually typed functional programming environment. It aims to combine the expressivity of dynamically typed systems with the editor support of static typing by incorporating several novel mechanisms into Hazel. Tables are manipulated as sequences of labeled tuples, and we add several useful gradually typed operations on labeled tuples to increase expressiveness, including operations that convert field names to and from strings. These operations support best-effort static typing and fall back to the unknown type when a schema cannot be statically determined. We evaluate the expressiveness of these core abstractions using the Brown Benchmark For Table Types (B2T2), finding that Hazel Lab is able to reasonably express every example. In order to improve type-based feedback, including error localization, when the fallback to the unknown type is needed, we introduce live typing , which builds on the fact that Hazel is a maximally live programming environment, even when there are static errors in the code, to feed dynamically observed instantiations of statically unknown types back into the static type checker. This feedback is complementary to the dynamic feedback that Hazel already distinctively provides by way of its live probes. We introduce rich probes—an extension of live probes with domain-specific table views that allow users to edit their functional data pipelines through direct manipulation interactions. We evaluate the usability of our overall design by conducting a lab study with 7 participants, asking them to perform a variety of data cleaning and analysis tasks. The study evaluates the usability and usefulness of the proposed features for users already familiar with statically typed functional programming, rather than to assess transfer to data science workflows by scientists without that training. We find that participants could effectively use the table operations for data cleaning and transformation tasks, and that live typing helped them both understand and debug existing analyses. Most participants responded positively to adopting the evaluated features in their own programming environments, with none responding negatively.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot12159,
  title = {Interactive Data Analysis with Lively Typed Tables},
  author = {Alexander Bandukwala and Cyrus Omar},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {OOPSLA2},
  year = {2026},
  doi = {10.1145/3839501}
}