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

Please sign up or login with your details

Forgot password? Click here to reset