Automatic programmingis a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level.
Program synthesisis the task to construct a program that provably satisfies a given high-level formal specification.
Program slicingis the computation of the set of program statements, the program slice, that may affect the values at some point of interest, referred to as a slicing criterion.
Abstract syntax tree (AST)is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language.
Code property graph (CPG)is a computer program representation that captures syntactic structure, control flow, and data dependencies in a property graph.
Control-flow graph (CFG)is a representation, using graph notation, of all paths that might be traversed through a program during its execution.
Program dependence graph (PDG)is a representation, using graph notation, that makes data dependencies and control dependencies explicit.
Feature-oriented programmingis a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs.