Eli   Documents

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors

Tutorials

 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 o Tutorial on Scope Graphs
 o Tutorial on Type Analysis
 o Typical Eli Usage Errors

Reference Manuals

 o User Interface
 o Eli products and parameters
 o LIDO Reference Manual
 o Typical Eli Usage Errors

Libraries

 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees

Tools

 o LIGA Control Language
 o Debugging Information for LIDO
 o Graphical ORder TOol

 o FunnelWeb User's Manual

 o Pattern-based Text Generator
 o Property Definition Language
 o Operator Identification Language
 o Tree Grammar Specification Language
 o Command Line Processing
 o COLA Options Reference Manual

 o Generating Unparsing Code

 o Monitoring a Processor's Execution

Administration

 o System Administration Guide

Mail Home

New Features of Eli Version 4.5

Next Chapter Table of Contents


New type analysis modules

Type analysis is complex, even for simple languages, but it is based upon a number of language-independent concepts. The type analysis of source text in a particular language can be described in terms of those concepts, by identifying constructs playing specific roles in the type system of that language. Once that identification has been made, most of the code required to carry out the analysis can be deduced automatically. We have added attribution modules to Eli that are sufficient to describe most type analysis problems in a straightforward manner (see Overview of Type Analysis Reference Manual).

These modules support language concepts such as the following:

  • language- and user-defined types
  • name or structural equivalence of types
  • language- and user-defined operators, procedures, and methods
  • expressions with coercion, explicit type conversion, and overloaded operators

They encapsulate the necessary computations and the dependence relationships among them, and export a nomenclature for language constructs. Type analyzer code for a particular compiler can be created by instantiating the appropriate modules and then classifying the constructs of the given source language according to that scheme. For example, after instantiating the Expression module, all of the code needed to analyze an infix operator with two operands can be obtained by classifying the appropriate abstract syntax rule as a DyadicContext.

For a tutorial on the use of the new modules, see Overview of Tutorial on Type Analysis.


Next Chapter Table of Contents