All ETDs from UAB

Advisory Committee Chair

Barrett Bryant

Advisory Committee Members

Jeff Gray

Marjan Mernik

Alan Sprague

Murat Tanik

Document Type

Dissertation

Date of Award

2007

Degree Name by School

Doctor of Philosophy (PhD) College of Arts and Sciences

Abstract

Providing proper modularity is one of the major challenges in software development. In the context of programming language implementation, two key factors impede the modularization process in a compiler system: First, the parser, as the core of the language implementation, usually is specified in a non-decomposable style such that it must be built as a whole regardless of the complexity of the grammar. This usually yields poor comprehensibility, reduced changeability, limited reusability, and hampers independent development of the language implementation. Second, the interconnected nature of syntax and semantic analysis of a language propels the compiler implementation to have each phase tangled together. As a result, the construction of one phase always “pollutes” a different phase, which makes a system hard to develop, maintain and extend. These two modularization complications create the intricacy in compiler design known as a “dragon” task. With an aim to address the modularity problems and alleviate the implementation complexity in language implementations, this thesis presents a new language implementation formalism and archetype that improves the modularity in compiler construction in a two-dimensional manner. Structure wise, a new parsing algorithm called Componentbased LR parsing is utilized to decompose a language implementation into executable components at the byte-code level, which decreases the complexity of building a large language by constructing a set of smaller languages. Function wise, the framework employs object-oriented and aspect-oriented programming paradigms to describe syntax and iv semantic entities separately, which facilitates separation of concerns by isolating syntax and semantics as well as semantic phases themselves into different modules. The techniques in these two dimensions work in a coherent manner, producing a solution that can solve both modularization obstacles introduced above. Consequently, the framework increases the reusability, changeability, extensibility and independent development ability of both syntax and semantics specification with less development workload required from compiler designers. This dissertation elaborates the design, implementation, usage, and future directions of the overall framework. A number of case studies, including an implementation of the Java language, are provided to assess and demonstrate the benefits of using the framework in practice.

Share

COinS
 
 

To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.