Package com.veromodo.tempo.sem.type

Defines the set of classes used for the internal representation of the type system used by tempo.

See:
          Description

Interface Summary
ConcreteType Defines types that have representations in descrete computing.
 

Class Summary
CollectParameters Collects the TypeParameters from inside a Type This is used when putting a TypeGeneric wrapper around a paremetric type.
EnumValue A value for an enumerated data type
GenericizeType This class is responsible for analyzing a type tree to turn it into a generic type.
OrderType encapsulates the relative distance between types based on their complexity and subtype relationship
PrettyPrintType a type visitor producing a output friendly string representation of a type
RankType measures the distance between two types T1, T2 T1 must be a subtype of T2
TestHash for testing the type hashCode functions
TestPrettyPrint for testing the type pretty printer
TestRank for testing the type ranking visitor
TestSetOfType For testing the SetOfType data structure
Type The abstract class for the root of the type system hierarchy.
TypeArray Defines a type with indexed access using the [] operator Similar to the Vector data type
TypeAugmentedReal Represents the set of Real numbers with the addition of positive infinity and negative infinity
TypeAutomaton contains the commonalities between the basic and composite automaton types includeing,
1) The name of the automaton
2) The automaton's parameter names and types
TypeBasicAutomaton Defines the type of a basic automaton In addition to the properties defined in {@link TypeAutomaton) this type adds,
1) State types
2) Signature types
This type is similar to a Class type in OOP languages, where states are attributes and signatures a methods.
TypeBool Represents the binary values true and false
TypeChar Represents a single character
TypeCompositeAutomaton Defines the type of a composite automaton In addition to the properties defined in {@link TypeAutomaton) this type adds Component types
TypeConstructor Represents types with inline parameters spe i.e.
TypeDiscreteReal From a typing point of view , DiscreteReal is equivalent to Real.
TypeEnum  
TypeEnumValue Defines a enumerated data type value TypeEnumValue tracks the TypeEnum it came from.
TypeError This type is used by the TypeChecker only to mark an expression which has failed to type check.
TypeFactory For hashing, comparision, and vocabulary loading purposes it is useful if there is only one instance of each base type.
TypeFloat Represents a floating point literal value similar to the C double data type This type has no text keyword in a TIOA program, but is infered for literals with a decimal point.
TypeFunction Represents a type transformation from [T1] -> T2 where T1 is the domain and T2 is the co-domain.
TypeFunctional An abstraction of the group of types which can be interperated transformation from [T1] -> T2.
TypeFunctionalGeneric a specialized version of TypeGeneric which has the notion of a functional type.
TypeGeneric This is a wrapper class which is used to represent the polymorphic types of TIOA (e.g.
TypeId A type defined by a TIOA program, can have any arbitrary name
TypeIndexed Represents types which are indexed with the [] operator TypeArray, TypeMap In TIOA indexed types are specified with their base type as the last type in their parameter list
TypeInstance Defines a specific instance of an automaton Used for typing components of composite automata and automata used in simulation relations
TypeInt Represents the set of integers
TypeInt32 Represents a bound integer value similar to the C int32 data type This type has no text keyword in a TIOA program.
TypeList Represents lists with multiple items, ie {1,2,3}.
TypeMap Defines a type with indexed access using the [] operator the indexes may be sparce
TypeMeta This type is used by the TypeChecker only as a place hoder of typed elements which multiple items all with unrelated types For example, type parameters can be specified in a parameter list T1, T2, T3 : type each T* has the type of type parameter T*, while the complete constriction T1, T2, T3 : type has the type Meta This type can not be specified directly in a TIOA program.
TypeNat  
TypeNumeric  
TypeParameter A type variable within a TypeGeneric.
TypeReal Represents the set of real numbers
TypeSum This is used to represent sum or union of two types.
TypeTuple An ordered and named set of types.
TypeVariable This type is used by the TypeChecker only to mark a varible which type should be inferred on the second pass.
TypeVisitor Encapsulates the traversal of a Type
TypeVoid This type is used by the TypeChecker only as a codomain for function types which return nothing.
 

Enum Summary
Type.Order Defines how two types can be realted.
Type.TypeKind Defines a set of all the type classes.
 

Package com.veromodo.tempo.sem.type Description

Defines the set of classes used for the internal representation of the type system used by tempo.

It is important to realize that sub-typing among tempo types does not translate into sub-typing among the instances representing those type in the implementation. For instance, even though in Tempo Nat is a subtype of Int, the corresponding classes in the type system hierarchy, i.e., TypeNat and TypeInt are not related by subclassing (in particular, TypeNat is not a subclass of TypeInt. However since both are meant to represent types, both are subclasses of the class Type.

Sub-typing, equality, acceptance or any other relations over types can be checked and interrogated through method calls on the respective type instances.

Package Specification

Related Documentation