Skip to main content

Control Localization in Domain Specific Translation

  • Conference paper
  • First Online:
Software Reuse: Methods, Techniques, and Tools (ICSR 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2319))

Included in the following conference series:

Abstract

Domain specific languages (DSLs) excel at programming productivity because they provide large-grain composite data structures (e.g., a graphics image) and large-grain operators for composition (e.g., image addition or convolution). As a result, extensive computations can be written as APL-like one-liners that are equivalent to tens or hundreds of lines of code (LOC) when written in a conventional language like Java. The problem with DSL specifications is that they de-localize the code components making un-optimized machine translations significantly slower than for the human optimized equivalent. Specifically, operations on DSL composites imply multiple control structures (e.g., loops) that process the individual elements of large-grain composites and those multiple, implicit control structures are distributed (i.e., de-localized) across the expression of operators and operands. Human programmers recognize the relation among these distributed control structures and merge them to minimize the redundancy of control. For example, merged control structures may perform several operations on several large-grain data structures in a single pass. This merging is the process of control localization. This paper discusses strategies for automating localization without large search spaces and outlines a domain specific example of transformation rules for localizing control. The example is based on the localization method in the Anticipatory Optimization Generator (AOG) system [3-8].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Batory, Don, Singhal, Vivek, Sirkin, Marty, and Thomas, Jeff: Scalable Software Libraries. Symposium on the Foundations of Software Engineering. Los Angeles, California (1993)

    Google Scholar 

  2. Baxter, I. D.: Design Maintenance Systems. Communications of the ACM, Vol. 55, No. 4 (1992) 73–89

    Article  Google Scholar 

  3. Biggerstaff, Ted J.: Anticipatory Optimization in Domain Specific Translation. International Conference on Software Reuse Victoria, B. C., Canada (1998a) 124–133

    Google Scholar 

  4. Biggerstaff, Ted J.: A Perspective of Generative Reuse. Annals of Software Engineering, Baltzer Science Publishers, AE Bussum, The Netherlands (1998b)

    Google Scholar 

  5. Biggerstaff, Ted J.: Composite Folding in Anticipatory Optimization. Microsoft Research Technical Report, MSR-TR-98-22 (1998c)

    Google Scholar 

  6. Biggerstaff, Ted J.: Pattern Matching for Program Generation: A User Manual. Microsoft Research Technical Report MSR-TR-98-55 (1998d)

    Google Scholar 

  7. Biggerstaff, Ted J.: Fixing Some Transformation Problems. Automated Software Engineering Conference, Cocoa Beach, Florida (1999)

    Google Scholar 

  8. Biggerstaff, Ted J.: A New Control Structure for Transformation-Based Generators. In: Frakes, William B. (ed.): Software Reuse: Advances in Software Reusability, Vienna, Austria, Springer (June, 2000)

    Google Scholar 

  9. Boyle, James M.: Abstract Programming and Program Transformation—An Approach to Reusing Programs. In: Biggerstaff, Ted and Perlis, Alan (eds.): Software Reusability, Addison-Wesley/ACM Press (1989) 361–413

    Google Scholar 

  10. Crew, R. F.: ASTLOG: A Language for Examining Abstract Syntax Trees. Proceedings of the USENIX Conference on Domain-Specific Languages, Santa Barbara, California (1997)

    Google Scholar 

  11. Czarnecki, Krzysztof and Eisenecker, Ulrich W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley (2000)

    Google Scholar 

  12. Elrad, Tzilla, Filman, Robert E., Bader, Atef (Eds.): Special Issue on Aspect-Oriented Programming. Communications of the ACM, Vol. 44, No. 10 (2001) 28–97

    Google Scholar 

  13. Fickas, Stephen F.: Automating the Transformational Development of Software. IEEE Transactions on Software Engineering, SE-11(11), (Nov. 1985) 1286–1277

    Google Scholar 

  14. Kant, Elaine: Synthesis of Mathematical Modeling Software. IEEE Software, (May, 1993)

    Google Scholar 

  15. Katz, M. D. and Volper, D.: Constraint Propagation in Software Libraries of Transformation Systems. International Journal of Software Engineering and Knowledge Engineering, 2,3 (1992)

    Google Scholar 

  16. Kiczales, Gregor, Lamping, John, Mendhekar, Anurag, Maede, Chris, Lopes, Cristina, Loingtier, Jean-Marc and Irwin, John: Aspect Oriented Programming. Tech. Report SPL97-08 P9710042, Xerox PARC (1997)

    Google Scholar 

  17. Kotik, Gordon B., Rockmore, A. Joseph, and Smith, Douglas R.: Use of Refine for Knowledge-Based Software Development. Western Conference on Knowledge-Based Engineering and Expert Systems (1986)

    Google Scholar 

  18. Neighbors, James M.: Software Construction Using Components. PhD Thesis, University of California at Irvine, (1980)

    Google Scholar 

  19. Neighbors, James M.: The Draco Approach to Constructing Software From Reusable Components. IEEE Transactions on Software Engineering, SE-10(5), (Sept. 1984) 564–573

    Google Scholar 

  20. Neighbors, James M.: Draco: A Method for Engineering Reusable Software Systems. In: Biggerstaff, Ted and Perlis, Alan (eds.): Software Reusability, Addison-Wesley/ACM Press (1989) 295–319

    Google Scholar 

  21. Partsch, Helmut A.: Specification and Transformation of Programs. Springer-Verlag (1990)

    Google Scholar 

  22. Ritter, Gerhard X. and Wilson, Joseph N.: Handbook of Computer Vision Algorithms in the Image Algebra. CRC Press, (1996)

    Google Scholar 

  23. Sheard, Tim: Accomplishments and Research Challenges in Meta-Programming. SAIG 2001 Workshop, Florence, Italy (Sept., 2001)

    Google Scholar 

  24. Smith, Douglas R.: KIDS-A Knowledge-Based Software Development System. In: Lowry, M. & McCartney, R., (eds.): Automating Software Design, AAAI/MIT Press (1991) 483–514

    Google Scholar 

  25. Visser, Eclo: Strategic Pattern Matching. In: Rewriting Techniques and Applications (RTA’ 99), Trento, Italy. Springer-Verlag (July, 1999)

    Google Scholar 

  26. Visser, Eclo: A Survey of Strategies in Program Transformation Systems. In: Gramlich, B. and Alba, S. L. (eds.): Workshop on Reduction Strategies in Rewriting and Programming (WRS’ 01), Utrecht, The Netherlands (May 2001)

    Google Scholar 

  27. Wadler, Philip: Deforestation: Transforming Programs to Eliminate Trees. Journal of Theoretical Computer Science, Vol. 73 (1990) 231–248

    Article  MATH  MathSciNet  Google Scholar 

  28. Wile, David S.: Popart: Producer of Parsers and Related Tools. USC/Information Sciences Institute Technical Report, Marina del Rey, California (1994) (http://www.isi.edu/software-sciences/wile/Popart/popart.html)

  29. Wile, David S.: Toward a Calculus for Abstract Syntax Trees. In: Bird, R. and Meertens, L. (eds.): Proceedings of a Workshop on Algorithmic Languages and Calculii. Alsac FR. Chapman and Hill (1997) 324–352

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Biggerstaff, T.J. (2002). Control Localization in Domain Specific Translation. In: Gacek, C. (eds) Software Reuse: Methods, Techniques, and Tools. ICSR 2002. Lecture Notes in Computer Science, vol 2319. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46020-9_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-46020-9_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43483-2

  • Online ISBN: 978-3-540-46020-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics