Synthesis is a productivity mechanism for developing software by which the implementation is generated rather than created manually.
This is true though this does not mention what "Synthesis in programming" really is. Programming Synthesis means dealing with the aspects of the software development process which can, at least in principle, be automated. Its goal is to mechanically synthesize correct and efficient computer code from declarative specifications. As stated by this article.
Basically it means that you specify a specification to, for example a synthesis machine, which will generate output (code) based on the specification you gave it.
The major difference between code synthesis and code generation is that code synthesis happens at runtime.