Generative programming is an approach that focuses on automatic software synthesis using a high-level specification. The user can provide this specification in the form of sample outputs or user-defined examples. Generally, by using such input, it is possible to generate images, sequences, time series, or transformation programs that convert input into the desired output. This approach solves multiple problems compared to neural networks, which are trained only for one task.