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
Open PDF File

Tutorial for Name Analysis Using ScopeGraphs

Name analysis is an important part of understanding text (see Fundamentals of Name Analysis of Name Analysis Reference Manual). Even in its simplest form it involves extensive computations over a tree representing the text to be understood (see Tree computations of LIDO -- Computations in Trees).

Eli provides mechanisms to specify these computations in a natural way, simplifying the process of implementing name analysis. This tutorial uses a graded sequence of language design case studies to build an understanding of how to use Eli to specify name analysis. These case studies illustrate many aspects of name analysis that are seen both in standard programming languages and in special purpose languages. They may also be used as a source of hints for language design.

We will refer to three actors in this document:

Designer
A person who designs a language to be processed by the name analysis

Developer
A person who specifies the name analysis for a given language

User
A person who programs in the language processed by the name analysis.

Our explanations of the case studies assume that you are familiar with the use of the Eli system (see Top of Guide for New Eli Users). Each explanation discusses the properties of the case study, the information that must be deduced from an input text, and the techniques by which that information is processed. Cross-references to Eli documentation (such as that attached to the first sentence of this paragraph) direct you to details and background. The cross-references are important for full understanding of the material.

We have provided exercises for each case study to help you to understand the material. You can extract specifications from Eli to support these exercises, and if you follow this path we strongly suggest that you transfer to a directory that contains a single empty file named `Solutions.specs' before continuing. If you choose to use and modify specifications from your own language, you should transfer to a directory containing specifications for a scanner and parser producing an abstract syntax tree for that language (see Top of Syntactic Analysis).

You can generate a "workbook" -- a FunnelWeb document that you can use to collect and protect your solutions to the exercises (see FunnelWeb of FunnelWeb). At any time, you can extract your specifications or obtain a printable copy of your work to date from this document. If you would like a workbook, execute the following Eli command to create one named `MyWork.fw' (the file name is arbitrary, but it must have a `.fw' suffix):

-> $elipkg/Name/LearnSG%Work > MyWork.fw
The generated file will not have write permission in your directory. You will need to add write permission in order to add your solutions. Personalize your workbook by changing the title and author(s) in order to verify that you can write to it. Put the name of the generated file into your `Solutions.specs' file.