|
|
Go to: [[internet:view_switcher|Tool Homepage]] - [[internet:view_switcher:download|Downloads]] - [[internet:view_switcher:user_guide|User Guide]] - [[internet:view_switcher:examples|Examples]]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
====== Examples of transformations supported by our tool ======
|
|
|
|
|
|
**Warning**: the most up-to-date versions are available for download at the bottom of this page.
|
|
|
===== Evaluator example based on the expression problem =====
|
|
|
|
|
|
We take the classical example of evaluator coming with the expression problem and we show that we can switch from one view to another with our tool.
|
|
|
|
|
|
* A [[internet:view_switcher:examples:expression_problem|first implementation of this example]] (version 0.1) where each single refactoring operation appears in the transformation script.
|
|
|
* A [[internet:view_switcher:examples:expression_problem_chains_0_3|second implementation]] (version 0.3) where the script does not depend on the data-type, and some chains of operations are grouped into a single View Switcher instruction.
|
|
|
* A [[internet:view_switcher:examples:expression_problem_scenario_0_3|scenario of evolution]] with several extensions and maintenance operations.
|
|
|
|
|
|
===== Parnas' KWIC program (from Griswold's description). =====
|
|
|
We re-implement Griswold's example of program restructuring in order to change the primary axis of modularity (example coming form Parnas).
|
|
|
|
|
|
See the [[internet:view_switcher:examples:KWIC|page for this example]].
|
|
|
|
|
|
Reference : W. G. Griswold, "Program Restructuring as an Aid to Software Maintenance", Ph.D. Thesis, Technical Report 91-08-04, Department of Computer Science and Engineering, University of Washington, July 1991.
|
|
|
|
|
|
===== A more complete example : Augustsson's lambda-cube. =====
|
|
|
|
|
|
We apply our tool to a program available on the HackageDB public repository : the lambda cube.
|
|
|
See the [[internet:view_switcher:examples:lambda_cube|page for this example]] (the archive given below on this page is currently more up-to-date than the description page).
|
|
|
|
|
|
====== Example Downloads ======
|
|
|
|
|
|
^ ^ v0.1c ^ v0.2b ^ v0.3 (Apr. 2011)^
|
|
|
| Expression Problem (with a fold iterator, all steps explicit) | {{:internet:view_switcher:expression_problem_0.6-0.1c.tgz|expr_prob_0.1c.tgz}} | {{:internet:view_switcher:expression_problem_0.2b.tgz|expr_prob_0.2b.tgz}} (use ''transfo_pfun_to_pdata-fold.el'' and ''transfo_pdata-fold_to_pfun.el'') | {{:internet:view_switcher:expr_prob_fold_adhoc_0.3a.tgz|}} |
|
|
|
| Expression Problem (with a fold iterator, generic chains of operations) | | | {{:internet:view_switcher:expr_prob_fold_chains_0.3a.tgz|}} |
|
|
|
| Expression Problem (without iterator) | |{{:internet:view_switcher:expression_problem_0.2b.tgz|expr_prob_0.2b.tgz}} (use ''transfo_pfun_to_pdata-dispatch-skeleton_adhoc.el'' and ''transfo_pdata-dispatch-skeleton_to_pfun.el'')| same as for v0.2 |
|
|
|
| Scenario of Evolution on the Expression Problem | | | {{:internet:view_switcher:expr_prob_scenario_0.3b.tgz|}}|
|
|
|
| KWIC | {{:internet:view_switcher:kwic_0.6-0.1c.tgz|kwic_0.1c.tgz}}| {{:internet:view_switcher:kwic_0.6-0.2a.tgz|kwic_0.2a.tgz}}| {{:internet:view_switcher:kwic_0.3a.tgz|}}|
|
|
|
| Lambda-Cube (without iterator, all steps explicit) | {{:internet:view_switcher:lambdacube_0.6-0.1b.tgz|lambdacube_0.1b.tgz}}| {{:internet:view_switcher:lambdacube_0.6-0.2a.tgz|lambdacube_0.2a.tgz}}| same as for v0.2| |