A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language
@inproceedings{Kambhatla2019APS, title={A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language}, author={Gauri Kambhatla and Michael J. Coblenz and Reed Oei and Joshua Sunshine and Jonathan Aldrich and Brad A. Myers}, booktitle={PLATEAU@UIST}, year={2019} }
Although blockchains have been proposed for building systems that execute critical transactions, security vulnerabilities have plagued programs that are deployed on blockchain systems. The programming language Obsidian was developed with the purpose of statically preventing some of the more common of these security risks, specifically the loss of resources and improper manipulation of objects. The question then is whether Obsidian’s novel features impact the usability of the language. In this…
Tables from this paper
3 Citations
User-Centered Programming Language Design in the Obsidian Smart Contract Language
- Computer ScienceArXiv
- 2019
This paper describes the formative and summative methods developed for user-centered design of programming languages and how they have applied to create Obsidian, which integrates a strong, static type system that detects many of these bugs in blockchain programs.
User-Centered Design of Principled Programming Languages
- Computer Science
- 2021
This thesis argues that fusing formal methods for reasoning about programming languages with user-centered design methods is a practical approach to designing languages that make programmers more effective, and designers can create safer languages that are more effective for programmers than existing languages.
PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design
- Computer ScienceACM Trans. Comput. Hum. Interact.
- 2021
This work adapted both formative and summative HCI methods to make them more suitable for programming language design, and integrated these methods into a new process, PLIERS, for designing programming languages in a user-centered way.
References
SHOWING 1-10 OF 11 REFERENCES
A User Study to Inform the Design of the Obsidian Blockchain DSL
- Computer Science
- 2017
The approach to the design of a user study is discussed, as well as the preliminary findings of the development of a blockchain-based programming language called Obsidian, with the goal of minimizing the risk of common security vulnerabilities.
Smart Contract Design Meets State Machine Synthesis: Case Studies
- Computer ScienceArXiv
- 2019
This work considers program synthesis techniques in which the specification is used to generate correct-by-construction programs and shows how FSM synthesis can be applied to the problem of automatic smart contract generation.
Obsidian: A Safer Blockchain Programming Language
- Computer Science2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C)
- 2017
A new programming language, Obsidian, is proposed to make it easier for programmers to write correct programs on blockchain systems, because bugs in Solidity programs have recently been exploited to steal money.
Faith, hope, and love: an essay on software science's neglect of human factors
- Computer ScienceSPLASH 2010
- 2010
This paper argues for appropriate research methods in programming language research that rely on studies of developers -- and argues that the introduction of corresponding empirical methods not only requires a new understanding of research but also a different view on how to teach software science to students.
Learning and Teaching Programming: A Review and Discussion
- Computer ScienceComput. Sci. Educ.
- 2003
This paper identifies general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and object-oriented versus procedural programming and topics relating to novice teaching and learning.
Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools
- Computer ScienceComputer
- 2016
Five Web extras describe HANDS, a new programming system that emphasizes usability by building on children's and beginning programmers' natural problem-solving tendencies and Graphite, an Eclipse plug-in offering active code completion, a simple but powerful technique that integrates useful code-generation tools directly into the editor.
How do program understanding tools affect how programmers understand programs?
- Computer ScienceProceedings of the Fourth Working Conference on Reverse Engineering
- 1997
This study explores the question of whether program understanding tools enhance or change the way that programmers understand programs, and describes how these tools supported or hindered the diverse comprehension strategies used.
Active learning for problem solving in programming in a computer studies method course
- Education, Computer Science
- 2012
This paper presents an implementation of active-learning-based teaching model for teaching a topic on programming techniques in an undergraduate computer science education course which prepares…
Self-efficacy and mental models in learning to program
- PsychologyITiCSE '04
- 2004
The results show that self-efficacy for programming is influenced by previous programming experience and increases as a student progresses through an introductory programming course, and that both the mental model and self- efficacy affect course performance.
Programmers Are Users Too: HumanCentered Methods for Improving Programming
- Tools. Computer,
- 2016