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
Link To Document