سؤال

Currently I am reading a book about Software Development Engineering. In the chapter one of this book it says:

Synthesis is a productivity mechanism for developing software by which the implementation is generated rather than created manually.

It confuses me and I couldn't find any clear explanation about it in the Internet. So can anyone tell me a real world example for it in programming fields? And also if it is something like a code generator (e.g. Ruby on Rails command line for creating project directories and code files automatically); what is its difference with metaprogramming?

Thanks.

هل كانت مفيدة؟

المحلول

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.

نصائح أخرى

Program synthesis is a special form of automatic programming. Automatic programming you may consider in robotics where program is written using artificial intelligence in such a way that other tasks are carried out automatically. It means if you write a code for 1+2 it will give you 3. so you do not have to write special code for 5+6 to get 11.

For more info refer http://en.wikipedia.org/wiki/Program_synthesis

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top