From Articles to Code: On-Demand Generation of Core Algorithms from Scientific Publications
Cameron S. Movassaghi, Amanda Momenzadeh, Jesse G. Meyer

TL;DR
This paper demonstrates that large language models can generate reliable implementations of core algorithms directly from scientific publication descriptions, potentially replacing traditional software libraries and reducing maintenance costs.
Contribution
It introduces a method to use scientific articles as specifications for LLMs to generate code, showing promising results across multiple models and algorithms.
Findings
LLMs can reproduce core algorithms with performance comparable to traditional libraries.
Scientific publications can serve as effective standalone specifications for code generation.
On-demand code generation from articles could reduce software maintenance overhead.
Abstract
Maintaining software packages imposes significant costs due to dependency management, bug fixes, and versioning. We show that rich method descriptions in scientific publications can serve as standalone specifications for modern large language models (LLMs), enabling on-demand code generation that could supplant human-maintained libraries. We benchmark state-of-the-art models (GPT-o4-mini-high, Gemini Pro 2.5, Claude Sonnet 4) by tasking them with implementing a diverse set of core algorithms drawn from original publications. Our results demonstrate that current LLMs can reliably reproduce package functionality with performance indistinguishable from conventional libraries. These findings foreshadow a paradigm shift toward flexible, on-demand code generation and away from static, human-maintained packages, which will result in reduced maintenance overhead by leveraging published articles…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
