Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1101908.1101931acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Clearwater: extensible, flexible, modular code generation

Published: 07 November 2005 Publication History

Abstract

Distributed applications typically interact with a number of heterogeneous and autonomous components that evolve independently. Methodical development of such applications can benefit from approaches based on domain-specific languages (DSLs). However, the evolution and customization of heterogeneous components introduces significant challenges to accommodating the syntax and semantics of a DSL in addition to the heterogeneous platforms on which they must run. In this paper, we address the challenge of implementing code generators for two such DSLs that are flexible (resilient to changes in generators or input formats), extensible (able to support multiple output targets and multiple input variants), and modular (generated code can be re-written). Our approach, Clearwater, leverages XML and XSLT standards: XML supports extensibility and mutability for in-progress specification formats, and XSLT provides flexibility and extensibility for multiple target languages. Modularity arises from using XML meta-tags in the code generator itself, which supports controlled addition, subtraction, or replacement to the generated code via XML-weaving. We discuss the use of our approach and show its advantages in two non-trivial code generators: the Infopipe Stub Generator (ISG) to support distributed flow applications, and the Automated Composable Code Translator to support automated distributed application deployment. As an example, the ISG accepts as input an XML description and generates output for C, C++, or Java using a number of communications platforms such as sockets and publish-subscribe.

References

[1]
Arasu, A., Babcock, B., Babu, S., Cieslewicz, J., Datar, M., Ito, K., Motwani, R., Srivastava, U., and Widom, J., STREAM: The Stanford data stream management system. In Data Stream Management: Processing High-Speed Data Streams. Garofalakis, M., Gehrke, J., and Rastogi, R., eds. To appear 2006. Springer
[2]
Arasu, A., Cherniack, M., Galvez, E., Maier, D., Maskey, A., Ryvkina, E., Stonebraker, M., and Tibbetts, R., Linear Road: A Stream Data Management Benchmark. In Proceedings of the 30th International Conference on Very Large Data Bases (VLDB), August, 2004.
[3]
Barreto, L., Douence, R., Muller, G., and Südholt, M., Programming OS schedulers with domain-specific languages and aspects: new approaches for OS kernel engineering. International Workshop on Aspects, Components, and Patterns for Infrastructure Software at AOSD, April 2002.
[4]
Birrell, A., and Nelson, B. Implementing Remote Procedure Calls. ACM Trans. on Computer Systems, 2, 1 (Feb. 1984), 39--59. Also appeared in Proceedings of SOSP'83.
[5]
Black, P., Huang, J., Koster, R., Walpole, J., and Pu, C. Infopipes: an abstraction for multimedia streaming. ACM Multimedia Systems Journal, 8(5): 406--419, 2002.
[6]
Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., Yergeau, F., and Cohan, J., eds. Extensible Markup Language. http://www.w3.org/TR/xml11. World Wide Web Consortium (W3C). 2004.
[7]
Cai, Y., Grundy, J., and Hosking, J. Experiences Integrating and Scaling a Performance Test Bed Generator with an Open Source CASE Tool. ASE 2004.
[8]
Clark, J. ed. XSL Transformations. http://www.w3.org/TR/xslt. World Wide Web Consortium (W3C). 1999.
[9]
Clark, J., and De Rose, S., eds. XML Path Language http://www.w3.org/TR/xpath. World Wide Web Consortium (W3C). 1999.
[10]
DVSL. http://jakarta.apache.org/velocity/dvsl/
[11]
Eide, E., Frei, K., Ford, B., Lepreau, J., and Lindstrom, G. Flick: a flexible, optimizing IDL compiler. In Proceedings of the 1997 SIGPLAN Conference on Programming Language Design and Implementation (PLDI '97) (Las Vegas, NV, Jun 15-18, 1997).
[12]
Eisenhauer, G., Bustamente, F., and Schwan, K. A middleware toolkit for client-initiated service specialization. Proceedings of the PODC Middleware Symposium - (Portland Oregon, July 18-20, 2000).
[13]
Grundy, J., Cai, Y., and Liu, A. SoftArch/MTE: generating distributed system test-beds from high-level software architecture descriptions. In the Proceedings of ASE 2001: The 16th IEEE Conference on Automated Software Engineering. (Coronado, CA, November 26-29, 2001).
[14]
Karsai, G. Why XML is not suitable for semantic translation. Research note, Nashville, TN, April, 2000.
[15]
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., and Irwin, J. Aspect-oriented programming. In the Proceedings of European Conference on Object-Oriented Programming, Aspect-Oriented Programming Workshop (ECOOP '97). (Jyvä skylä, Finland, June 10, 1997.)
[16]
Le Hégaret, P., DOM Activity Lead. Document Object Model (DOM). http://www.w3.org/DOM/. World Wide Web Consortium (W3C).
[17]
Lieberherr, K. Adaptive Object Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996.
[18]
Nystrom, N., Clarkson, M. R., and Myers, A. C. Polyglot: an extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction (Warsaw, Poland, April 2003). Springer-Verlag LNCS 2622, 138--152.
[19]
Pu, C., Schwan, K., and Walpole, J. Infosphere project: system support for information flow applications. ACM SIGMOD Record, 30, 1 (Mar. 2001), 25-34.
[20]
Pu, C., and Swint, G. DSL weaving for distributed information flow systems (Invited Keynote). Proceedings of the 2005 Asia Pacific Web Conference. (APWeb05). (Shanghai, China. March 29 - April 1, 2005.) Springer-Verlag LNCS. 2005.
[21]
Sahai, A., Pu, C., Jung, G., Wu, Q., Yan, W., and Swint, G. Towards automated deployment of built-to-Order systems. In Proceedings of the 16th IFIP/IEEE Distributed Systems: Operations and Management (DSOM '05) (Barcelona, Spain. October 24-26, 2005). To appear.
[22]
Sahai, A., Joshi, R., Singhal, S., and Machiraju, V. Automated policy based resource construction in utility computing environments. In the Proceedings of the 2004 IEEE/IFIP Network Operations & Management Symposium (NOMS 2004). (Seoul, Korea. April 19-24, 2004.)
[23]
Salle, M., Sahai, A., Bartolini, C., and Singhal, S. A business-driven approach to closed-loop management. HP Labs Technical Report HPL-2004-205, November 2004.
[24]
Sarkar, S. Model driven programming using XSLT: an approach to rapid development of domain-specific program generators. www.XML-JOURNAL.com. August 2002.
[25]
Swint, G., Jung, G., and Pu, C. Event-based QoS for a distributed continual query system. The 2005 IEEE International Conference on Information Reuse and Integration (IRI 2005) (Las Vegas, Nevada. August 14-17, 2005).
[26]
Swint, G., and Pu, C. Code generation for WSLAs using AXpect. Proceedings of 2004 IEEE International Conference on Web Services (ICWS 2004) (San Diego, California. July 6-9, 2004).
[27]
Swint, G., Pu, C., Koh, Y., Liu, L., Yan, W., Consel, C., Moriyama, K., and Walpole, J. Infopipes: The ISL/ISG Implementation Evaluation. Proceedings of the 3rd IEEE Network Computing and Application Symposium 2004 (IEEE NCA04). (Cambridge, Massachusetts. August 30 - September 2, 2004.)
[28]
Swint, G., Pu, C., and Moriyama, K., Infopipes: Concepts and ISG Implementation. The 2nd IEEE Workshop on Software Technologies for Embedded and Ubiquitous Computing Systems, Vienna, Austria, 2004.

Cited By

View all
  • (2020)GOOL: a generic object-oriented languageProceedings of the 2020 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3372884.3373159(45-51)Online publication date: 20-Jan-2020
  • (2019)Reuse and Customization for Code Generators: Synergy by Transformations and TemplatesModel-Driven Engineering and Software Development10.1007/978-3-030-11030-7_3(34-55)Online publication date: 1-Feb-2019
  • (2015)Specifying model transformations by direct manipulation using concrete visual notations and interactive recommendationsJournal of Visual Languages and Computing10.1016/j.jvlc.2015.02.00528:C(195-211)Online publication date: 1-Jun-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering
November 2005
482 pages
ISBN:1581139934
DOI:10.1145/1101908
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 November 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. AXpect
  2. DSL
  3. ISG
  4. clearwater
  5. code generation
  6. infopipes

Qualifiers

  • Article

Conference

ASE05

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2020)GOOL: a generic object-oriented languageProceedings of the 2020 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3372884.3373159(45-51)Online publication date: 20-Jan-2020
  • (2019)Reuse and Customization for Code Generators: Synergy by Transformations and TemplatesModel-Driven Engineering and Software Development10.1007/978-3-030-11030-7_3(34-55)Online publication date: 1-Feb-2019
  • (2015)Specifying model transformations by direct manipulation using concrete visual notations and interactive recommendationsJournal of Visual Languages and Computing10.1016/j.jvlc.2015.02.00528:C(195-211)Online publication date: 1-Jun-2015
  • (2012)Health-connect: An ontology-based model-driven information integration framework and its application to integrating clinical databases2012 IEEE 13th International Conference on Information Reuse & Integration (IRI)10.1109/IRI.2012.6303036(393-400)Online publication date: Aug-2012
  • (2012)ExpertusProceedings of the 2012 IEEE Fifth International Conference on Cloud Computing10.1109/CLOUD.2012.98(115-122)Online publication date: 24-Jun-2012
  • (2012)Code generation for a family of executable modelling notationsSoftware and Systems Modeling (SoSyM)10.1007/s10270-010-0176-611:2(251-272)Online publication date: 1-May-2012
  • (2011)Variations in Performance and Scalability When Migrating n-Tier Applications to Different CloudsProceedings of the 2011 IEEE 4th International Conference on Cloud Computing10.1109/CLOUD.2011.43(73-80)Online publication date: 4-Jul-2011
  • (2010)From a domain analysis to the specification and detection of code and design smellsFormal Aspects of Computing10.1007/s00165-009-0115-x22:3(345-361)Online publication date: 1-May-2010
  • (2008)A domain analysis to specify design defects and generate detection algorithmsProceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering10.5555/1792838.1792864(276-291)Online publication date: 29-Mar-2008
  • (2008)A model-driven approach to manage evolving clinical and translational data in relational databases2008 IEEE International Conference on Bioinformatics and Biomeidcine Workshops10.1109/BIBMW.2008.4686217(109-110)Online publication date: Nov-2008
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media