Program transformation in Programming Languages

Automatic program transformation and generative programming aimed at increasing programmer productivity by automating the programming tasks using some sort of automatic program generation or transformation, such as code generation from a domain-specific language, aspect weaving, optimization, specialization or a generic program in a specific context. Key to achieving this goal is the construction of tools to automate transformations do. If generative programming has become a staple part of the process of software engineering, the construction of generative instrument themselves become automated as possible. It requires an infrastructure with support for common tasks in the construction of the transformation of the system. The top is actually changing systems such as compilers and language extensions, static analysis tools, and aspect weavers. These functions are implemented as tool compositions from the lower layers expanded to include part of the implementation of certain transformation in question.
Syntactic transformation is the syntactic transformation that provides addresses displayed address to be generated at runtime consists of a list of symbols. Transformation is designed to provide the program code as a new symbol is added to the front of the list, when the stack is expanded to change. This transformation has two main parts: First, change every function definition so that the function takes one argument, the address. Secondly, every function application to change the current address is extended with a unique symbol (syntactic) application recognized within the program and gives it as an argument changed address is used as the function.
·        The development program is largely responsible that the development offers the prospect of semantics-based program manipulation instrument change its data as may be considered and thus automatically manipulated. Progresses have been made in some areas, such as slightly evaluation and unfold / fold transformation and application procedures such as program slicing and staging transformations. But we must push state-of-the-art so-semantic-based transformation tools can play a full role the process of software development.
·        Program transformations are used algorithm design integration program development. This will lead to a better understanding of some known algorithms and the discovery of new algorithms. The next step is to program transformation technology will gradually develop good execution of the known data structures.
·        Program transformations allow us to replace some of the other programs. For these healthy it is important to maintain transformations semantics of the original program. We also need strategies to have directed the application of the rule changes to achieve goals such as efficiency improvements, higher levels of parallelism, better modularity etc.
·        Traditionally, the program transformations used to improve the efficiency of the programs on a single machine. When the program complex parallel and distributed systems, we need tools for automated mapping program architecture. Sophisticated transformations are required to improve the performance of the entire system; there may even be such transformations must be dynamic by which to apply the adjustment program a constantly changing environment.