![]() Most of the time, the problem would beĮasily solved in a maintainable and robust way if only the rightĪlthough some transformation systems work directly on text, in Status of dark magic, with the result that no other team memberĭears touch the stuff. Solutions turn out to be brittle, overly complicated and acquire a Almost equally often, their ad-hoc, text-based Magic, and that simple regular expression hacks solve the problem Opinion that software transformation is overly complicated dark Low-level programs can be reverse engineered into high-levelĪll too often, Real Programmers facing such problems are of the Programs can be generated from domain-specific languages Sources programs can be specialized to known inputs application Understanding a program can be automatically derived from its Knowledge of the application domain documentation for For example, programs can be synthesizedįrom high-level specifications programs can be optimized using ![]() There are many other kinds of processes that canīe applied to programs. Order to make it executable, is the standard processing techniqueĪpplied to get running programs out of source code. Compilation, the translation of a program to machine code in The application domain and improving program understanding byĪnalysing sources are also favoured topics among softwareīut who uses software transformation, anyway? People with aĪre. To improve performance, optimization using domain knowledge from Specialization of a program to known inputs in order People to recover lost design and architecture from legacy codeĪnd by reverse-engineers to obtain high-level, readable code fromīinary files after somebody accidentally misplaced a stack ofīackup tapes. Generating programs from high-level specifications, by forgetful Transformation has been used by the mathematically inclined for , but they are certainly not the only ones. The compilation, documentation generation and source-code analysisĪre all examples of software transformations Lint (C/C++) or FindBugs (Java) to weed out Or, whileĬolleagues are not looking, you can secretly invoke tools like On the source, to generate structured documentation. Inclined, you may also run a documentation generator like Javadoc ![]() Provisions about syntactial and semantical correctness). ![]() They are still not theĪward-winning, executable program you are aiming for, but byĪpplying a compiler to them, you can generate one (with some minor If you are still with us, consider these files theīlueprints for your software. Unreasonable prospect for you, stop reading and pick another Imagine finding yourself in a situation where you have aĬollection of files containing source code. Debugging Techniques for Stratego/XT 30.1. Building Parse Tables, Tree Grammars and Stratego Signatures 29.5. Building Stand-alone Stratego Applications 29.4. Building and Deploying Stratego Programs 29.1. Transformation Tool Composition with XTC 28.1. Check arbitrary conditions on output 27.5. Observations about Concrete Syntax Specifications 19.3. Idioms and Library Strategies for Traversal 17.5. ![]() Running Programs Interactively with the Stratego Shell 11.5. Pretty-Printing and Term Visualization Tools (todo: imported) III. Creating a Subset of a Regular Tree Grammar 8.4. Explicit versus Implicit Ambiguities 7.5. Advanced Topics in Syntax Definition (*) 7.1. Examples: Defining Context-Free Syntax 6.5. From Concepts to Practice: Generating a Parser 6. Concepts: Grammars, Parse Trees, and Abstract Syntax Trees 5.2. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |