paper-with-me

홈 › Papers

Prompts Are Programs Too! Understanding How Developers Build Software Containing Prompts

2024-09-19 · Jenny T. Liang, Melissa Lin, Nikitha Rao, Brad A. Myers

Generative pre-trained models power intelligent software features used by millions of users controlled by developer-written natural language prompts. Despite the impact of prompt-powered software, little is known about its development process and its relationship to programming. In this work, we argue that some prompts are programs and that the development of prompts is a distinct phenomenon in programming known as "prompt programming". We develop an understanding of prompt programming using Straussian grounded theory through interviews with 20 developers engaged in prompt development across a variety of contexts, models, domains, and prompt structures. We contribute 15 observations to form a preliminary understanding of current prompt programming practices. For example, rather than building mental models of code, prompt programmers develop mental models of the foundation model (FM)'s behavior on the prompt by interacting with the FM. While prior research shows that experts have well-formed mental models, we find that prompt programmers who have developed dozens of prompts still struggle to develop reliable mental models. Our observations show that prompt programming differs from traditional software development, motivating the creation of prompt programming tools and providing implications for software engineering stakeholders.

📄 PDF Abstract BibTeX arXiv:2409.12447

Code (0)

등록된 구현이 없습니다.

Tasks

Prompt Engineering

Methods 이 논문이 사용한 방법론

Attention 설명 없음
Linear Layer A Linear Layer is a projection $\mathbf{XW + b}$.
Position-Wise Feed-Forward Layer 설명 없음
Label Smoothing Label Smoothing is a regularization technique that introduces noise for the labels. This accounts for the fact that datasets may have mistakes in them, so maximizing the…
BPE Byte Pair Encoding, or BPE, is a subword segmentation algorithm that encodes rare and unknown words as sequences of subword units. The intuition is that various word…
Absolute Position Encodings Absolute Position Encodings are a type of position embeddings for [Transformer-based models] where positional encodings are…
Softmax The Softmax output function transforms a previous layer's output into a vector of probabilities. It is commonly used for multiclass classification. Given an input vector $x$…
Layer Normalization Unlike batch normalization, Layer Normalization directly estimates the normalization statistics from the summed inputs…

Similar Papers 제목 키워드 기반

Understanding Prompt Programming Tasks and Questions

2025-07-23 · Jenny T. Liang, Chenyang Yang, Agnia Sergeyuk, Travis D. Breaux 외 arxiv

Prompting foundation models (FMs) like large language models (LLMs) have enabled new AI-powered software features (e.g., text summarization) that previously were only possible by fine-tuning FMs. Now, developers are embe…

Text Summarization

Showing LLM-Generated Code Selectively Based on Confidence of LLMs

2024-10-04 · Jia Li, Yuqi Zhu, Yongmin Li, Ge Li 외

Large Language Models (LLMs) have shown impressive abilities in code generation, but they may generate erroneous programs. Reading a program takes ten times longer than writing it. Showing these erroneous programs to dev…

Code Generation

AgentStepper: Interactive Debugging of Software Development Agents

2026-02-06 · Robert Hutter, Michael Pradel arxiv

Software development agents powered by large language models (LLMs) have shown great promise in automating tasks like environment setup, issue solving, and program repair. Unfortunately, understanding and debugging such …

Program Repair

Disrupting Test Development with AI Assistants

2024-11-04 · Vijay Joshi, Iver Band

Recent advancements in large language models, including GPT-4 and its variants, and Generative AI-assisted coding tools like GitHub Copilot, ChatGPT, and Tabnine, have significantly transformed software development. This…

TreeCaps: Tree-Structured Capsule Networks for Program Source Code Processing

2019-10-27 · Vinoj Jayasundara, Nghi Duy Quoc Bui, Lingxiao Jiang, David Lo

Program comprehension is a fundamental task in software development and maintenance processes. Software developers often need to understand a large amount of existing code before they can develop new features or fix bugs…

Articles