Theoretical aspects of the syntax and semantics of the Java language. - David Edward Ronald Morris (2006)
This thesis investigates two theoretical aspects of the formal definition of programming languages, using case studies in Java. First, we define modular grammars which can be used to decompose large grammars. Modular grammars allow the modular definition of formal languages. They provide concepts of component and architecture for grammars and languages. We show that this modular method can be used to define a modem practical language like Java. Second, we describe recent general work on the definition of interfaces and interface definition languages (IDLs). In Rees, Stephenson and Tucker [2003], there is an analysis of the idea of interfaces and an algebraic model of a general IDL. We apply these ideas to analyzing aspects of interfaces in Java. The thesis is comprised of five chapters together with an appendix. Chapter 1 consists of an introduction to the thesis. The second chapter reports on object-oriented programming and the Java programming language with particular emphasis on a mathematical theory of its definition. Chapter 3 deals with a modular decomposition of Java syntax and grammars. In Chapter 4, we expound a theory of the modular definitions of interfaces within any programming language. One important feature of the general account is the process of flattening the hierarchical structure produced by modularity. In Chapter 5, we attempt to implement the results of research into the Interface Definition Language discussed in Chapter 4. We define 'Little Java', a subset of the programming language Java, and endeavour to provide a series of translations from 'Little Java'' to an abstract object-oriented interface definition language OO-IDL and thence to an interface definition language AS-IDL for abstract data types. In the Appendix, we review the history of the Java language.