![]() |
![]() |
![]() |
General Information
Tutorials
Reference Manuals
Libraries
Translation Tasks
Tools
Administration
![]() |
![]() |
![]() Type analysis tasksIn programming languages types are used to classify entities the program operates on. A type describes a set of values and the operations that can be applied to them. Program constructs that denote entities are said to have a type which restricts the set of values the construct may yield when it is evaluated. Program constructs that denote operations may restrict the types of the operands they are applied to. The meaning of an operation may be determined by the types of the operands. Type analysis determines the type of program constructs and of defined objects, it distinguishes overloaded operators using type information, and checks consistency with language rules on types. The result of the type analysis task is a precondition for the transformation of data objects and operations into a target language. In languages other than programming languages we often find similar concepts that need to solve a type analysis task for implementing that language.
The section (See Basic Type Analysis) describes a module that provides
a set of computational roles for language construct that define
and use typed objects, that denote types, define and use names for them.
The section (See Properties of Types) gives examples how to use the
The modules of this library are based on the following implementation
strategy:
Types are represented by
Attributes named A complete executable specification of our running example for the type analysis task can be obtained by calling Eli and requesting
$elipkg/Type/Examples > .
This request creates a subdirectory
|