The Programmer's Assistant: Conversational Interaction with a Large Language Model for Software Development

02/14/2023
by   Steven I. Ross, et al.
0

Large language models (LLMs) have recently been applied in software engineering to perform tasks such as translating code between programming languages, generating code from natural language, and autocompleting code as it is being written. When used within development tools, these systems typically treat each model invocation independently from all previous invocations, and only a specific limited functionality is exposed within the user interface. This approach to user interaction misses an opportunity for users to more deeply engage with the model by having the context of their previous interactions, as well as the context of their code, inform the model's responses. We developed a prototype system – the Programmer's Assistant – in order to explore the utility of conversational interactions grounded in code, as well as software engineers' receptiveness to the idea of conversing with, rather than invoking, a code-fluent LLM. Through an evaluation with 42 participants with varied levels of programming experience, we found that our system was capable of conducting extended, multi-turn discussions, and that it enabled additional knowledge and capabilities beyond code generation to emerge from the LLM. Despite skeptical initial expectations for conversational programming assistance, participants were impressed by the breadth of the assistant's capabilities, the quality of its responses, and its potential for improving their productivity. Our work demonstrates the unique potential of conversational interactions with LLMs for co-creative processes like software development.

READ FULL TEXT

page 6

page 7

page 22

research
01/13/2023

A Case Study in Engineering a Conversational Programming Assistant's Persona

The Programmer's Assistant is an experimental prototype software develop...
research
05/01/2023

Designing Adaptive Developer-Chatbot Interactions: Context Integration, Experimental Studies, and Levels of Automation

The growing demand for software developers and the increasing developmen...
research
12/21/2021

Chat2Code: Towards conversational concrete syntax for model specification and code generation, the case of smart contracts

The revolutionary potential of automatic code generation tools based on ...
research
02/14/2020

Bacatá: Notebooks for DSLs, Almost for Free

Context: Computational notebooks are a contemporary style of literate pr...
research
08/31/2023

DevGPT: Studying Developer-ChatGPT Conversations

The emergence of large language models (LLMs) such as ChatGPT has disrup...
research
01/27/2021

In-IDE Code Generation from Natural Language: Promise and Challenges

A great part of software development involves conceptualizing or communi...
research
07/31/2023

A Composable Just-In-Time Programming Framework with LLMs and FBP

This paper introduces a computing framework that combines Flow-Based Pro...

Please sign up or login with your details

Forgot password? Click here to reset