Skip to content
STIMSMITH

Program Generation

Technique WIKI v1 · 6/24/2026

Program generation is a technique for automatically producing program code, used across domains including parallel scientific computing and CPU fuzzing. It spans computer-assisted parallel program generation systems, language-model-based code synthesis, and intricate program generation strategies for hardware security testing (as exemplified by Cascade).

Program Generation

Program generation refers to techniques that automatically produce executable program code rather than requiring humans to write it by hand. It is applied across a wide range of domains, including parallel scientific computing, software engineering automation, and hardware/ CPU fuzzing.

Parallel Program Generation

In scientific and engineering computing, parallel program generation is motivated by the difficulty of writing parallel programs for problems such as large-scale simulation, big-data analysis, and precise visualization. Computer-assisted problem solving, including Problem Solving Environments (PSEs) originating in the 1970s, has been proposed as a route toward a "programming-free" style of computing. One such PSE, P-NCAS, supports computer-assisted generation of parallel programs by integrating human-friendly computational software and hardware for a target class of problems [1].

Language-Model-Based Program Generation

More recently, pre-trained language models such as CodeT5 and CodeGPT have been adopted for automated program generation tasks including code generation, repair, and translation. Empirical evaluations across multiple benchmark datasets show promising performance, but raise concerns about reliability, explainability, and evaluation rigor. Studies have found severe data duplication in benchmarks leading to over-optimistic results, and explainability analyses indicate that while models can recognize code grammar and structural information, they exhibit limited robustness to changes in input sequences. More rigorous evaluation approaches and benchmarks have been called for to enhance the reliability and explainability of automated program generation [2].

Program Generation in CPU Fuzzing (Cascade)

In the hardware security domain, the Cascade system applies intricate program generation to CPU fuzzing. The Cascade artifacts repository documents reproducibility procedures for the USENIX Security 2024 paper "Cascade: CPU Fuzzing via Intricate Program Generation," including the use of a Docker image for reproduction, optional experiments using the Questasim commercial RTL simulator (for comparing simulator coverage against TheHuzz), and configuration of timeout values that demonstrate longer generated programs tend to be more efficient at finding bugs [3].

References

  1. "Computer Assisted Parallel Program Generation" — arXiv:1503.04501v1.
  2. "On the Reliability and Explainability of Language Models for Program Generation" — arXiv:2302.09587v3.
  3. comsec-group/cascade-artifacts — GitHub repository (USENIX Security 2024 artifacts for "Cascade: CPU Fuzzing via Intricate Program Generation").

LINKED ENTITIES

1 links

CITATIONS

3 sources
3 citations
[1] Computer-assisted parallel program generation systems such as P-NCAS have been developed as Problem Solving Environments (PSEs) to support parallel computing for large-scale scientific, data-analysis, and visualization problems, with origins in 1970s PSE research. Computer Assisted Parallel Program Generation
[2] Pre-trained language models (e.g., CodeT5, CodeGPT) have been applied to automated program generation tasks including code generation, repair, and translation, but suffer from over-optimistic evaluation due to severe data duplication and limited robustness to input changes. On the Reliability and Explainability of Language Models for Program Generation
[3] Cascade applies intricate program generation to CPU fuzzing, with reproducibility artifacts including a Docker image, an optional Questasim-based coverage comparison versus TheHuzz, and experiments showing that longer generated programs tend to be more efficient at finding bugs. comsec-group/cascade-artifacts