skip to main content
10.1145/1028664.1028754acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

RAIL: code instrumentation for .NET

Published: 23 October 2004 Publication History

Abstract

Code instrumentation is a mechanism that allows modules of programs to be completely rewritten at runtime. With the advent of virtual machines, this type of functionality is becoming more and more interesting because it allows the introduction of new functionality after an application has been deployed, easy implementation of aspect-oriented programming, performing security verifications, dynamic software upgrading, among others.
The Runtime Assembly Instrumentation Library (RAIL) is one of the first frameworks to implement code instrumentation in the.NET platform. It specifically addresses the limitations that exist between the reflection capabilities of.NET and its code emission functionalities. RAIL gives the programmer an object-oriented vision of the code of an application, allowing assemblies, modules, classes, references and even intermediate code to be easily manipulated.
This paper addresses the design of an implementation of RAIL along with the difficulties and lessons learnt in building a framework for code instrumentation in.NET.

References

[1]
Syme, D. ILX: Extending the.NET Common IL for Functional Language Interoperability, MS Research, Cambridge, September 2001. Available at: http://research.microsoft.com/projects/ilx.
[2]
Lam, J. Cross-Language Load-Time Aspect Weaving on Microsoft's Common Language Runtime. Demonstration at the AOSD2002, Netherlands, 2002.
[3]
Lafferty, D., and Cahill, V. Language-Independent Aspect-Oriented Programming. In Proc. OOPSLA 2003 <http://oopsla.acm.org/oopsla2003/>, Anaheim, USA, October 2003.
[4]
Dahm, M. Byte Code Engineering. In JIT '99, Düsseldorf, Germany, September 1999.
[5]
Cohen, G., Chase, J., and Kaminsky, D. Automatic Program Transformation with JOIE. In USENIX 1998 Annual Technical Conference, New Orleans, USA, 1998.
[6]
Chiba, S., and Nishizawa M. An Easy-to-Use Toolkit for Efficient Java Bytecode Translators <http://www.csg.is.titech.ac.jp/paper/chiba-gpce03.pdf>. In Proc. GPCE '03, LNCS 2830, Springer-Verlag, 2003.
[7]
Ferber, J. Computational Reflection in Class Based Object-Oriented Languages. In Proc. OOPSLA '89, New Orleans, USA, October 1989.
[8]
J. Malenfant, C. Dony, and P. Cointe. Behavioral Reflection in a Prototype-Based Language. In Proc. IMSA '92, Tokyo, 1992.
[9]
BCEL Project, Apache Software Foundation, 2003. Available at: http://jakarta.apache.org/bcel/projects.html.
[10]
Keller, R., and Hölzle, U., Binary Component Adaptation. In Proc. ECOOP '98, Brussels, Belgium, July 1998.

Cited By

View all
  • (2008)Software InstrumentationWiley Encyclopedia of Computer Science and Engineering10.1002/9780470050118.ecse386(1-11)Online publication date: 15-Sep-2008
  • (2006)A Framework of Multiple-Aspect Component-Testing for Trusted Collaboration in Mission-Critical Systems2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing10.1109/COLCOM.2006.361878(1-7)Online publication date: Nov-2006
  • (2006)Component Integrity Check and Recovery Against Malicious CodesProceedings of the 20th International Conference on Advanced Information Networking and Applications - Volume 0210.1109/AINA.2006.131(466-470)Online publication date: 18-Apr-2006

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
October 2004
348 pages
ISBN:1581138334
DOI:10.1145/1028664
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: 23 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. .NET platform
  2. code instrumentation

Qualifiers

  • Article

Conference

OOPSLA04
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2008)Software InstrumentationWiley Encyclopedia of Computer Science and Engineering10.1002/9780470050118.ecse386(1-11)Online publication date: 15-Sep-2008
  • (2006)A Framework of Multiple-Aspect Component-Testing for Trusted Collaboration in Mission-Critical Systems2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing10.1109/COLCOM.2006.361878(1-7)Online publication date: Nov-2006
  • (2006)Component Integrity Check and Recovery Against Malicious CodesProceedings of the 20th International Conference on Advanced Information Networking and Applications - Volume 0210.1109/AINA.2006.131(466-470)Online publication date: 18-Apr-2006

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