Montages --- Engineering of Computer Languages. Kutter, P. W. Ph.D. Thesis, ETH Zürich, Zürich, Switzerland, 2004. Diss. ETH No. 15421
abstract   bibtex   
In this thesis we elaborate a language description formalism called Montages. The Montages formalism can be used to engineer domain specific languages (DSLs), which are computer languages specially tailored and typically restricted to solve problems of specific domains. We focus on DSLs which have some algorithmic flavor and are intended to be used in corporate environments where main-stream state-based programming and modeling formalisms1 prevail. For engineering such DSLs it is important that the designs of the existing, well known general purpose languages (GPLs) can be described as well, and that this descriptions are easily reused as basic building blocks to design new DSLs. Using the Montages tool support Gem-Mex, such a new designs can be composed in an integrated semantics environment, and from the descriptions an interpreter and a specialized visual debugger is generated for the new language. We restrict our research to sequential languages and the technical part of the thesis tries to contribute to the improvement of the DSL design process by focusing on ease of specification and ease of reuse for programming language constructs from well known GPL designs. For the sake of shortness we do not present detailed case studies for DSLs and refer the reader to the literature. Finally, we mainly look at exact reuse of specification modules, and we have not elaborated the means for incremental design by reusing specifications in the sense of object oriented programming. Of course these means are needed as well and we assume the existence of such reuse features without formalizing them. The technical part of the thesis provides the basic specification patterns for introducing all features of an object oriented style of reuse, and applying these patterns to Montages in order to make it an object-oriented specification formalism is left for future work. The focus and contribution of this thesis is the design and elaboration of a language engineering discipline based on widely-spread state-based intuition of algorithms and programming. This approach opens the possibility to apply DSL technology in typical corporate environments, where the beneficial properties of smaller, and therefore by nature more secure and more focused computer languages are most leveraged. The thesis does not cover the equally important topic how to formalize these beneficial properties by means of declarative formalisms and how to apply mechanized reasoning and formal software engineering to DSLs. The thesis is structured in three parts. In the first part the requirements for a language engineering approach are analyzed and the language definition formalism Montages is introduced. In the second part the formal semantics and system architecture of Montages is given. The third part consists of a number of small example languages, each of them designed to show the Montages solution for specifying a well-known feature of main-stream object oriented programming languages such as Java. The single description modules of these example languages can be used to assemble a full object-oriented language, or a small subset of them can be combined with some high-level domain-specific features into a DSL. In the following we summarize for each part and its chapters their content and relation to each other.
@phdthesis{ kut04,
  author = {Philipp W. Kutter},
  title = {Montages --- Engineering of Computer Languages},
  school = {{ETH Zürich}},
  year = {2004},
  address = {Zürich, Switzerland},
  note = {Diss. ETH No. 15421},
  uri = {ftp://ftp.tik.ee.ethz.ch/pub/people/thiele/paper/KutterDiss.pdf},
  abstract = {In this thesis we elaborate a language description formalism called Montages. The Montages formalism can be used to engineer domain specific languages (DSLs), which are computer languages specially tailored and typically restricted to solve problems of specific domains. We focus on DSLs which have some algorithmic flavor and are intended to be used in corporate environments where main-stream state-based programming and modeling formalisms1 prevail. For engineering such DSLs it is important that the designs of the existing, well known general purpose languages (GPLs) can be described as well, and that this descriptions are easily reused as basic building blocks to design new DSLs. Using the Montages tool support Gem-Mex, such a new designs can be composed in an integrated semantics environment, and from the descriptions an interpreter and a specialized visual debugger is generated for the new language. We restrict our research to sequential languages and the technical part of the thesis tries to contribute to the improvement of the DSL design process by focusing on ease of specification and ease of reuse for programming language constructs from well known GPL designs. For the sake of shortness we do not present detailed case studies for DSLs and refer the reader to the literature. Finally, we mainly look at exact reuse of specification modules, and we have not elaborated the means for incremental design by reusing specifications in the sense of object oriented programming. Of course these means are needed as well and we assume the existence of such reuse features without formalizing them. The technical part of the thesis provides the basic specification patterns for introducing all features of an object oriented style of reuse, and applying these patterns to Montages in order to make it an object-oriented specification formalism is left for future work. The focus and contribution of this thesis is the design and elaboration of a language engineering discipline based on widely-spread state-based intuition of algorithms and programming. This approach opens the possibility to apply DSL technology in typical corporate environments, where the beneficial properties of smaller, and therefore by nature more secure and more focused computer languages are most leveraged. The thesis does not cover the equally important topic how to formalize these beneficial properties by means of declarative formalisms and how to apply mechanized reasoning and formal software engineering to DSLs. The thesis is structured in three parts. In the first part the requirements for a language engineering approach are analyzed and the language definition formalism Montages is introduced. In the second part the formal semantics and system architecture of Montages is given. The third part consists of a number of small example languages, each of them designed to show the Montages solution for specifying a well-known feature of main-stream object oriented programming languages such as Java. The single description modules of these example languages can be used to assemble a full object-oriented language, or a small subset of them can be combined with some high-level domain-specific features into a DSL. In the following we summarize for each part and its chapters their content and relation to each other.}
}
Downloads: 0