Grounded copilot: How programmers interact with code-generating models
Powered by recent advances in code-generating models, AI assistants like Github Copilot
promise to change the face of programming forever. But what is this new face of …
promise to change the face of programming forever. But what is this new face of …
Animated Vega-Lite: Unifying animation with a grammar of interactive graphics
We present Animated Vega-Lite, a set of extensions to Vega-Lite that model animated
visualizations as time-varying data queries. In contrast to alternate approaches for specifying …
visualizations as time-varying data queries. In contrast to alternate approaches for specifying …
Obsidian: Typestate and assets for safer blockchain programming
Blockchain platforms are coming into use for processing critical transactions among
participants who have not established mutual trust. Many blockchains are programmable …
participants who have not established mutual trust. Many blockchains are programmable …
How to Evaluate Blame for Gradual Types, Part 2
L Lazarek, B Greenman, M Felleisen… - Proceedings of the ACM …, 2023 - dl.acm.org
Equipping an existing programming language with a gradual type system requires two major
steps. The first and most visible one in academia is to add a notation for types and a type …
steps. The first and most visible one in academia is to add a notation for types and a type …
Notational programming for notebook environments: A case study with quantum circuits
We articulate a vision for computer programming that includes pen-based computing, a
paradigm we term notational programming. Notational programming blurs contexts: certain …
paradigm we term notational programming. Notational programming blurs contexts: certain …
Reflecting on random generation
H Goldstein, S Frohlich, M Wang… - Proceedings of the ACM on …, 2023 - dl.acm.org
Expert users of property-based testing often labor to craft random generators that encode
detailed knowledge about what it means for a test input to be valid and interesting …
detailed knowledge about what it means for a test input to be valid and interesting …
Can advanced type systems be usable? an empirical study of ownership, assets, and typestate in obsidian
Some blockchain programs (smart contracts) have included serious security vulnerabilities.
Obsidian is a new typestate-oriented programming language that uses a strong type system …
Obsidian is a new typestate-oriented programming language that uses a strong type system …
Garbage collection makes rust easier to use: A randomized controlled trial of the bronze garbage collector
Rust is a general-purpose programming language that is both type-and memory-safe. Rust
does not use a garbage collector, but rather achieves these properties through a …
does not use a garbage collector, but rather achieves these properties through a …
A Case for Feminism in Programming Language Design
F Hermans, A Schlesinger - Proceedings of the 2024 ACM SIGPLAN …, 2024 - dl.acm.org
Two critical and interrelated questions regarding the design and study of programming
languages are: 1) What does it mean to design a programming language? and 2) Why does …
languages are: 1) What does it mean to design a programming language? and 2) Why does …
Using Reactive Synthesis: An End-to-End Exploratory Case Study
Reactive synthesis is an automated procedure to obtain a correct-by-construction reactive
system from its temporal logic specification. Despite its attractiveness and major research …
system from its temporal logic specification. Despite its attractiveness and major research …