| Lennox Computer |
| Software Design Installation & Support |
| Unit 8, 121 Newmarket Road WINDSOR, QLD 4030 Phone: 07 3857 5588, Fax: 07 3857 6100 http://www.lennox.com.au eMail: sales@lennox.com.au |
| The GTL Programming Language GTL Stands for General Tuple Language. The language design and implementation is the work of Doug Lennox of Lennox Computer, and the design and implementation is the copyright property of Lennox Computer. Some aspects of the design of the language are based on the work of Arthur Evans Jr. of MIT1 and Martin Richards of the Computing Laboratory Cambridge2, who in turn acknowledge the work or Peter J Landin of Imperial College London3. The purpose of the GTL language is to provide a very high level-programming environment for the future development of programming applications to be distributed and supported as part of Lennox Computer suite of business accounting and data-processing applications. The major design criteria for GTL are as follows: Logical Completeness The applicative subset of GTL is a complete Lambda Calculus evaluation engine with fully implemented function objects bound to environments. The scope and extent of variables is comprehensively consistent with the rules of the Lambda Calculus. The L-value, R-value model is completely and consistently implemented with a thoroughly sound treatment of the assignment statement. Notational Clarity The declarative structure of the syntax and the handling of bound and free variables are modelled on traditional mathematical notation. Eg. let x, y = e1, e2 in f(x, y) or g(a, b, c) where a, b, c = e1, e2, e3 Simplicity of types L-values are type-less. Basic R-values may be integers (32-bit signed), floating point (64-bit signed), strings, and tuples. Fully Automatic Memory Management The interpreter with built in automatic garbage collection administers memory allocation. The tuple is the only construct available for building data-structures. Tuples are implemented with efficient operation as a primary goal. 32-bit Windows Environments. While GTL is an abstract, very high level-programming environment, platform independence is not an immediate goal of this project. The GTL compiler and interpreter are written in the C programming language with YACC-like support from a parser generator called PARGEN. The aim is to provide a sophisticated, high performance graphical user interface language specifically targeted at the Microsoft WIN32 environment, exploiting multi-threaded execution and the WIN32 virtual memory system. GTL is a production-programming tool. Robustness GTL is the antithesis of C. A meaningful error or exception at execution time will be accurately reported. Complete type checking will be implemented in all semantics and all library operators. It will be impossible for the interpreter to cause a memory addressing exception, or an illegal hardware operation. Polymorphism prohibited All library operators will accept only uni-morphic argument typing. Implicit type Conversions LimitedPAL above prohibited implicit type conversion completely. GTL will relax this ban only with respect to promotion of integers to floating-point. Eg. let i, x = 3, 3.414 in x + i will yield 6.414 without error. References 1.PAL Pedagogic Algorithmic Language, Dept Electrical Engineering, MIT, 1970. 2.The BCPL Programming Language - various papers and manuals, circa 1968 - 72 3."The Next 700 Programming Languages", Landin 1966. |
| ftp://www.lennox.com.au/GTL.doc |
| The complete GTL Programmers Reference Manual is available at: |