• DocumentCode
    2569318
  • Title

    Encapsulating Software Platform Logic by Aspect-Oriented Programming: A Case Study in Using Aspects for Language Portability

  • Author

    Kats, Lennart C L ; Visser, Eelco

  • Author_Institution
    Software Eng. Res. Group, Delft Univ. of Technol., Delft, Netherlands
  • fYear
    2010
  • fDate
    12-13 Sept. 2010
  • Firstpage
    147
  • Lastpage
    156
  • Abstract
    Software platforms such as the Java Virtual Machine or the CLR. NET virtual machine have their own ecosystem of a core programming language or instruction set, libraries, and developer community. Programming languages can target multiple software platforms to increase interoperability or to boost performance. Introducing a new compiler backend for a language is the first step towards targeting a new platform, translating the language to the platform´s language or instruction set. Programs written in modern languages generally make extensive use of APIs, based on the runtime system of the software platform, introducing additional portability concerns. They may use APIs that are implemented by platform-specific libraries. Libraries may perform platform-specific operations, make direct native calls, or make assumptions about performance characteristics of operations or about the file system. This paper proposes to use aspect weaving to invasively adapt programs and libraries to address such portability concerns, and identifies four classes of aspects for this purpose. We evaluate this approach through a case study where we retarget the Stratego program transformation language towards the Java Virtual Machine.
  • Keywords
    Java; application program interfaces; aspect-oriented programming; data encapsulation; instruction sets; logic programming; program compilers; software libraries; software portability; virtual machines; API; CLR. NET virtual machine; Java Virtual Machine; Stratego program transformation language; aspect weaving; aspect-oriented programming; core programming language; developer community; instruction set; interoperability; language compiler backend; language portability; program adaptation; runtime system; software library; software platform logic encapsulation; Java; Libraries; Programming; Runtime; Software; Weaving; Java; Spoofax; Stratego; aspect-oriented programming; compilers; programming languages;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2010 10th IEEE Working Conference on
  • Conference_Location
    Timisoara
  • Print_ISBN
    978-1-4244-8655-7
  • Type

    conf

  • DOI
    10.1109/SCAM.2010.11
  • Filename
    5601821