SEKI Report SR-87-11, Universitat Kaiserslautern, West Germany, February 1988
TEL (Version 0.9)
Report and User Manual
FB Informatik, Universitat Kaiserslautern
6750 Kaiserslautern, West Germany
TEL is a second generation logic programming language integrating types and functions with relational programming ?a la Prolog. Relations are defined as in Prolog and are executed by typed resolution and backtracking. Functions are defined with conditional equations and are executed by typed innermost rewriting.
The most innovative aspect of TEL is its type system, which accommodates parametric polymorphism as in ML and subtypes as in OBJ2. Variables need not be declared since TEL's type checker infers their most general types automatically. Types are present at runtime through typed matching and unification: values are tested for membership in subtypes and variables are constrained to subtypes.
TEL is not a toy language. Almost the entire TEL system has been written in TEL. TEL has a module facility supporting the incremental construction of large programs. Furthermore, TEL supports type-safe file handling and other extra-logical operations.
Acknowledgments: This research was funded by the Bundesminister f ur Forschung und Technologie under grant ITR8501A. Version 0.9 of TEL is being implemented by Costa Moissiadis, Werner Nutt, Reinhard Praeger, Ralf