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].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Batory, Don, Singhal, Vivek, Sirkin, Marty, and Thomas, Jeff: Scalable Software Libraries. Symposium on the Foundations of Software Engineering. Los Angeles, California (1993)
Baxter, I. D.: Design Maintenance Systems. Communications of the ACM, Vol. 55, No. 4 (1992) 73–89
Biggerstaff, Ted J.: Anticipatory Optimization in Domain Specific Translation. International Conference on Software Reuse Victoria, B. C., Canada (1998a) 124–133
Biggerstaff, Ted J.: A Perspective of Generative Reuse. Annals of Software Engineering, Baltzer Science Publishers, AE Bussum, The Netherlands (1998b)
Biggerstaff, Ted J.: Composite Folding in Anticipatory Optimization. Microsoft Research Technical Report, MSR-TR-98-22 (1998c)
Biggerstaff, Ted J.: Pattern Matching for Program Generation: A User Manual. Microsoft Research Technical Report MSR-TR-98-55 (1998d)
Biggerstaff, Ted J.: Fixing Some Transformation Problems. Automated Software Engineering Conference, Cocoa Beach, Florida (1999)
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)
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
Crew, R. F.: ASTLOG: A Language for Examining Abstract Syntax Trees. Proceedings of the USENIX Conference on Domain-Specific Languages, Santa Barbara, California (1997)
Czarnecki, Krzysztof and Eisenecker, Ulrich W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley (2000)
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
Fickas, Stephen F.: Automating the Transformational Development of Software. IEEE Transactions on Software Engineering, SE-11(11), (Nov. 1985) 1286–1277
Kant, Elaine: Synthesis of Mathematical Modeling Software. IEEE Software, (May, 1993)
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)
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)
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)
Neighbors, James M.: Software Construction Using Components. PhD Thesis, University of California at Irvine, (1980)
Neighbors, James M.: The Draco Approach to Constructing Software From Reusable Components. IEEE Transactions on Software Engineering, SE-10(5), (Sept. 1984) 564–573
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
Partsch, Helmut A.: Specification and Transformation of Programs. Springer-Verlag (1990)
Ritter, Gerhard X. and Wilson, Joseph N.: Handbook of Computer Vision Algorithms in the Image Algebra. CRC Press, (1996)
Sheard, Tim: Accomplishments and Research Challenges in Meta-Programming. SAIG 2001 Workshop, Florence, Italy (Sept., 2001)
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
Visser, Eclo: Strategic Pattern Matching. In: Rewriting Techniques and Applications (RTA’ 99), Trento, Italy. Springer-Verlag (July, 1999)
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)
Wadler, Philip: Deforestation: Transforming Programs to Eliminate Trees. Journal of Theoretical Computer Science, Vol. 73 (1990) 231–248
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)
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
Editor information
Editors and Affiliations
Rights 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