NoviCode: Generating Programs from Natural Language Utterances by Novices
Asaf Achi Mordechai, Yoav Goldberg, Reut Tsarfaty

TL;DR
NoviCode introduces a new task of translating natural language descriptions by non-programmers into executable code, highlighting the challenges and proposing a hierarchical alignment approach to improve model performance.
Contribution
The paper presents NoviCode, a novel NL programming task and benchmark, demonstrating that hierarchical alignment significantly enhances code generation from non-technical instructions.
Findings
NoviCode is a challenging new task in code synthesis.
Hierarchical alignment improves LLM performance on this task.
Generating complex code from non-technical descriptions exceeds current Text-to-Code models.
Abstract
Current Text-to-Code models demonstrate impressive capabilities in generating executable code from natural language snippets. However, current studies focus on technical instructions and programmer-oriented language, and it is an open question whether these models can effectively translate natural language descriptions given by non-technical users and express complex goals, to an executable program that contains an intricate flow - composed of API access and control structures as loops, conditions, and sequences. To unlock the challenge of generating a complete program from a plain non-technical description we present NoviCode, a novel NL Programming task, which takes as input an API and a natural language description by a novice non-programmer and provides an executable program as output. To assess the efficacy of models on this task, we provide a novel benchmark accompanied by test…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Teaching and Learning Programming
MethodsFocus · ALIGN
