Home

D: A Language Framework for Distributed Programming


Author(s) : Karl Lieberherr Advisor Prof Cristina Videira Lopes Co-advisor Gregor Kiczales, 
Publisher : N/A
Publication Date : 1997
ISSN : N/A
Abstract : This thesis proposal outlines the design and implementation of a programming language framework-- D-- for a representative class of distributed systems. In D, some important distribution issues are identified and made programmable externally to the implementation of the application's functionality. D provides for syntactic separation of distribution concerns, such as creation and coordination of threads, and communication between execution spaces. The goal of D is to make distributed programming easier, faster and less prone to programming errors by making use of such separation. The identification and separation of the different distribution issues is consolidated by making them explicit components of the framework-- the aspects. An aspect is a property of a system which has an effect on the computation that doesn't necessarily align with "functional " modules. Each of the aspects is addressed by one aspect-specific language that allows the programmers to control strategies without exposing the details of the implementation. The different aspect languages join at specific constructs, with a precise semantics. The aspect programs are then composed together in order to produce the desired distributed behavior. The composition occurs at the join points of the languages, and it is done through a compile-time tool called aspect weaver^TM which "weaves " the intentions of the aspect programs along the code of the functionality program. In my thesis I propose to show that D, once it's completed, advances the state-ofthe-art in the following way: using a model of computation that is natural for software practitioners, D program texts are simpler and more reusable that their equivalents in any of the major programming languages in use today and they don't perform worse; D solves some important software problems and establishes the grounds for analyzing distributed programs in a way that cannot be done with general purpose programming languages.,