[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2162049.2162076acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Reusing non-functional concerns across languages

Published: 25 March 2012 Publication History

Abstract

Emerging languages are often source-to-source compiled to mainstream ones, which offer standardized, fine-tuned implementations of non-functional concerns (NFCs)-including persistence, security, transactions, and testing. Because these NFCs are specified through metadata such as XML configuration files, compiling an emerging language to a mainstream one does not include NFC implementations. Unable to access the mainstream language's NFC implementations, emerging language programmers waste development effort reimplementing NFCs. In this paper, we present a novel approach to reusing NFC implementations across languages by automatically translating metadata. To add an NFC to an emerging language program, the programmer declares metadata, which is then translated to reuse the specified NFC implementation in the source-to-source compiled mainstream target language program. By automatically translating metadata, our approach eliminates the need to reimplement NFCs in the emerging language. As a validation, we add unit testing and transparent persistence to X10 by reusing implementations of these NFCs in Java and C++, the X10 backend compilation targets. The reused persistence NFC is efficient and scalable, making it possible to checkpoint and migrate processes, as demonstrated through experiments with third-party X10 programs. These results indicate that our approach can effectively reuse NFC implementations across languages, thus saving development effort.

References

[1]
AspectJ Team. The AspectJ 5 development kit developer's notebook. http://eclipse.org/aspectj/doc/next/adk15notebook/.
[2]
Charles Nutter, Thomas Enebo, Ola Bini and Nick Sieger. JRuby. http://www.jruby.org/.
[3]
CodeSynthesis. ODB: C+ Object-Relational Mapping. http://www.codesynthesis.com/products/odb/.
[4]
C. Csallner and Y. Smaragdakis. JCrasher: An automatic robustness tester for Java. Softw. Pract. Exper., 2004.
[5]
T. Devadithya, K. Chiu, and W. Lu. C+ reflection for high performance problem solving environments. In Proceedings of the spring simulation multiconference, 2007.
[6]
C. J. Godby, D. Smith, and E. Childress. Two paths to interoperable metadata. In DCMI: Proceedings of the international conference on Dublin Core and metadata applications, 2003.
[7]
P. Godefroid, N. Klarlund, and K. Sen. Dart: directed automated random testing. In PLDI: Proceedings of the ACM SIGPLAN conference on Programming language design and implementation, 2005.
[8]
P. Hamill. Unit test frameworks. O'Reilly, first edition, 2004.
[9]
M. A. Hernández, P. Papotti, and W. C. Tan. Data exchange with data-metadata translations. Proc. VLDB Endow., 2008.
[10]
JBoss. JBoss AOP. http://www.jboss.org/jbossaop/.
[11]
Jython Project. Jython: Python for the Java Platform. http://www.jython.org/.
[12]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwing. Aspect-oriented programming. In ECOOP: Proceedings of the 11th European Conference on Object-Oriented Programming, 1997.
[13]
J. Kienzle and R. Guerraoui. AOP: Does It Make Sense? The Case of Concurrency and Failures. In ECOOP: Proceedings of the 16th European Conference on Object-Oriented Programming, 2002.
[14]
I. Lashuk, A. Chandramowlishwaran, H. Langston, T.-A. Nguyen, R. Sampath, A. Shringarpure, R. Vuduc, L. Ying, D. Zorin, and G. Biros. A massively parallel adaptive fast-multipole method on heterogeneous architectures. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis, 2009.
[15]
Maven. Security Annotation Framework. http://safr.sourceforge.net/.
[16]
B. Milosavljević, M. Vidaković, and Z. Konjović. Automatic code generation for database-oriented web applications. In Proceedings of the second workshop on Intermediate representation engineering for virtual machines, 2002.
[17]
J. Milthorpe, V. Ganesh, A. P. Rendell, and D. Grove. X10 as a parallel language for scientific computation: Practice and experience. In IPDPS: Proceedings of the IEEE International Parallel & Distributed Processing Symposium, 2011.
[18]
K. Morik and M. Scholz. The miningmart approach to knowledge discovery in databases. In Intelligent Technologies for Information Analysis, 2003.
[19]
N. Nystrom and V. Saraswat. An annotation and compiler plugin system for X10. Technical report, IBM TJ Watson Research Center, 2007.
[20]
M. Odersky, P. Altherr, V. Cremet, B. Emir, S. Maneth, S. Micheloud, N. Mihaylov, M. Schinz, E. Stenman, and M. Zenger. An overview of the Scala programming language. Technical report, EPFL.
[21]
L. Popa, Y. Velegrakis, M. A. Hernández, R. J. Miller, and R. Fagin. Translating web data. In VLDB: Proceedings of the international conference on Very Large Data Bases, 2002.
[22]
T. Ruotsalo and E. Hyvönen. An event-based approach for semantic metadata interoperability. In Proceedings of the 6th international semantic web conference, 2007.
[23]
V. Saraswat, B. Bloom, I. Peshansky, O. Tardieu, and D. Grove. X10 Language Specification Version 2.1. Technical report, IBM TJ Watson Research Center, 2011.
[24]
E. Tilevich and M. Song. Reusable enterprise metadata with pattern-based structural expressions. In AOSD: Proceedings of the 9\superscriptth International Conference on Aspect-Oriented Software Development, 2010.
[25]
C. A. White and M. Head-Gordon. Derivation and efficient implementation of the fast multipole method. The Journal of Chemical Physics, 1994.

Cited By

View all
  • (2013)Source-to-Source Translation and Software EngineeringJournal of Software Engineering and Applications10.4236/jsea.2013.64A00506:04(30-40)Online publication date: 2013
  • (2012)Metadata invariants: Checking and inferring metadata coding conventions2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227148(694-704)Online publication date: Jun-2012

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
AOSD '12: Proceedings of the 11th annual international conference on Aspect-oriented Software Development
March 2012
286 pages
ISBN:9781450310925
DOI:10.1145/2162049
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

In-Cooperation

  • AOSA: Aspect-Oriented Software Association

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 March 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. C++
  2. X10
  3. enterprise applications
  4. java
  5. metadata
  6. non-functional concerns
  7. source-to-source compilation
  8. transparent persistence
  9. unit testing

Qualifiers

  • Research-article

Conference

AOSD '12
AOSD '12: Aspect-oriented Software Development
March 25 - 30, 2012
Potsdam, Germany

Acceptance Rates

AOSD '12 Paper Acceptance Rate 20 of 79 submissions, 25%;
Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2013)Source-to-Source Translation and Software EngineeringJournal of Software Engineering and Applications10.4236/jsea.2013.64A00506:04(30-40)Online publication date: 2013
  • (2012)Metadata invariants: Checking and inferring metadata coding conventions2012 34th International Conference on Software Engineering (ICSE)10.1109/ICSE.2012.6227148(694-704)Online publication date: Jun-2012

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media