• DocumentCode
    838760
  • Title

    Volta: Developing Distributed Applications by Recompiling

  • Author

    Manolescu, Dragos ; Beckman, Brian ; Livshits, Benjamin

  • Author_Institution
    Microsoft Live Labs., Redmond, WA
  • Volume
    25
  • Issue
    5
  • fYear
    2008
  • Firstpage
    53
  • Lastpage
    59
  • Abstract
    Mainstream languages and tools are tailored for sequential, nondistributed applications, with support for distributed computing provided only in library APIs. Such programming environments force developers to make decisions early in the application life cycle about where the code should run, structuring the entire application around partitioning decisions. Performance measurement might reveal that the original partitioning was wrong, but redistributing the application is expensive because redistributing is restructuring. This article describes a new kind of tool suite that recompiles executables into a distributed form on the basis of declarative user annotations, inserting most of the necessary remoting and synchronization boilerplate code and facilitating post hoc instrumentation to drive quantitative redistribution. Because the tools operate on the intermediate language CIL (.NET common intermediate language), they´re compatible with a wide variety of .NET programming languages and eventual execution environments, even those that don´t support CIL directly, such as JavaScript.
  • Keywords
    Java; programming languages; software tools; .NET common intermediate language; JavaScript; Volta; declarative user annotations; distributed applications; distributed computing; mainstream languages; partitioning decisions; Computer languages; Data security; Debugging; Delay; Dictionaries; Instruments; Libraries; Logic; Programming profession; Prototypes; Ajax; Internet-based software engineering tools and techniques; code generation; distributed; distributed programming; measurements; refactoring; retargetable compilers;
  • fLanguage
    English
  • Journal_Title
    Software, IEEE
  • Publisher
    ieee
  • ISSN
    0740-7459
  • Type

    jour

  • DOI
    10.1109/MS.2008.131
  • Filename
    4602674