next up previous
Next: The Java type model Up: An Analyzer for Java Previous: Support code


Type Analysis

Java type analysis is complex, but it is based upon a number of language-independent concepts. Eli type analysis modules encapsulate the necessary computations and the dependence relationships among them, and export a nomenclature for language constructs. Type analyzer code for Java can be created by instantiating the modules and then classifying Java constructs according to that nomenclature.

Type.specs[1]:
Instantiate required modules[15]
This macro is attached to a product file.

Section 5.1 defines the Java type model, and the necessary type denotations and type identifiers are implemented in Section 5.2. Identifiers representing typed entities (fields, variables, and parameters) are established in Section 5.3.

Language-defined operators and the mechanisms for creating methods are defined in Section 5.4. The chapter concludes with definitions of type relationships in expressions (Section 5.6) and statements (Section 5.5).

Type.lido[2]:
ATTR Type: DefTableKey;

Types and type identifiers[14]
Typed identifiers[34]
Method declaration[39]
Expressions[45]
Statements[42]
This macro is attached to a product file.

The process described in this chapter associates a type with every construct yielding a value and every identifier representing a type or typed entity. It relies not only on computations in the abstract syntax tree, but also on properties stored in the definition table.

Type.pdl[3]:
Property definitions[18]
This macro is attached to a product file.



Subsections
next up previous
Next: The Java type model Up: An Analyzer for Java Previous: Support code
2008-09-11