User-Centered Programming Language Design in the Obsidian Smart Contract Language

12/10/2019
by   Michael Coblenz, et al.
0

Programming language designers commonly guess what language designs would be best for their users and create languages accordingly. The outcome of this is languages that are difficult to use and error-prone. In particular, blockchain programs have been plagued by serious bugs. Although techniques from the theory of programming languages can detect many of these kinds of bugs, languages that use these techniques have been too difficult for programmers to use effectively. We have developed Obsidian, which integrates a strong, static type system that detects many of these bugs, using a new user-centered design approach. In this paper, we describe the formative and summative methods we have developed for user-centered design of programming languages and how we have applied them to create Obsidian. This includes a usability study, which demonstrates the effectiveness of our design methods to obtain a usable language.

READ FULL TEXT
research
11/15/2020

User-Centered Programming Language Design: A Course-Based Case Study

Recently, user-centered methods have been proposed to improve the design...
research
12/10/2019

Usability Methods for Designing Programming Languages for Software Engineers

Programming language design requires making many usability-related desig...
research
10/11/2021

User-driven Design and Evaluation of Liquid Types in Java

Bugs that are detected earlier during the development lifecycle are easi...
research
10/07/2021

Toward a Theory of Programming Language and Reasoning Assistant Design: Minimizing Cognitive Load

Current approaches to making programming languages and reasoning assista...
research
10/04/2019

Trading off Complexity for Expressiveness in Programming Languages: Visions and Preliminary Experiences

When programming resource-scarce embedded smart devices, the designer of...
research
03/27/2020

An Empirical Study of Ownership, Typestate, and Assets in the Obsidian Smart Contract Language

Some blockchain programs (smart contracts) have included serious securit...
research
01/05/2023

The Usability of Advanced Type Systems: Rust as a Case Study

Advanced type systems that enforce various correctness and safety guaran...

Please sign up or login with your details

Forgot password? Click here to reset