T (programming Language)
   HOME

TheInfoList



OR:

T is a
dialect The term dialect (from Latin , , from the Ancient Greek word , 'discourse', from , 'through' and , 'I speak') can refer to either of two distinctly different types of linguistic phenomena: One usage refers to a variety of a language that is a ...
of the
Scheme A scheme is a systematic plan for the implementation of a certain idea. Scheme or schemer may refer to: Arts and entertainment * ''The Scheme'' (TV series), a BBC Scotland documentary series * The Scheme (band), an English pop band * ''The Schem ...
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
developed in the early 1980s by Jonathan A. Rees,
Kent M. Pitman Kent M. Pitman (KMP) is a programmer who has been involved for many years in the design, implementation, and use of systems based on the programming languages Lisp (programming language), Lisp and Scheme (programming language), Scheme. , he has bee ...
, and Norman I. Adams of
Yale University Yale University is a Private university, private research university in New Haven, Connecticut. Established in 1701 as the Collegiate School, it is the List of Colonial Colleges, third-oldest institution of higher education in the United Sta ...
as an experiment in language design and implementation.


Rationale

T's purpose is to test the thesis developed by
Guy L. Steele Jr. Guy Lewis Steele Jr. (; born October 2, 1954) is an American computer scientist who has played an important role in designing and documenting several computer programming languages and technical standards. Biography Steele was born in Missouri ...
and
Gerald Jay Sussman Gerald Jay Sussman (born February 8, 1947) is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). He received his S.B. and Ph.D. degrees in mathematics from MIT in 1968 and 1973 respectively. H ...
in their series of papers about Scheme: that Scheme may be used as the basis for a practical programming language of exceptional expressive power, and that implementations of Scheme could perform better than other Lisp systems, and competitively with implementations of programming languages, such as C and
BLISS BLISS is a system programming language developed at Carnegie Mellon University (CMU) by W. A. Wulf, D. B. Russell, and A. N. Habermann around 1970. It was perhaps the best known system language until C debuted a few years later. Since then, C b ...
, which are usually considered to be inherently more efficient than Lisp on conventional machine architectures. Much of this occurs via an
optimizing compiler In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power cons ...
named Orbit. T contains some features that modern Scheme lacks. For example, T is
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
, and it has first-class environments, called ''locales'', which can be modified non-locally and used as a module system. T has several extra special forms for
lazy evaluation In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an expression until its value is needed ( non-strict evaluation) and which also avoids repeated evaluations (sharing). The ...
and flow control, and an equivalent to Common Lisp's setf. T, like Scheme, supports
call-with-current-continuation In the Scheme computer programming language, the procedure call-with-current-continuation, abbreviated call/cc, is used as a control flow operator. It has been adopted by several other programming languages. Taking a function f as its only argu ...
(call/cc), but it also has a more limited form called catch. From the T manual, a hypothetical implementation of
cons In computer programming, ( or ) is a fundamental function in most dialects of the Lisp programming language. ''constructs'' memory objects which hold two values or pointers to two values. These objects are referred to as (cons) cells, conses, ...
could be: (define-predicate pair?) (define-settable-operation (car pair)) (define-settable-operation (cdr pair)) (define (cons the-car the-cdr) (object nil ((pair? self) t) ((car self) the-car) ((cdr self) the-cdr) (((setter car) self new-car) (set the-car new-car)) (((setter cdr) self new-cdr) (set the-cdr new-cdr)))) This example shows that objects in T are intimately related to closures and message-passing. A primitive called join puts two objects together, allowing for something resembling
inheritance Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Officia ...
.


Ports

T was ported to many hardware platforms and
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s, including: * MIPS: DEC 3100 (pmax),
SGI IRIS The SGI IRIS series of terminals and workstations from Silicon Graphics was produced in the 1980s and 1990s. IRIS is an acronym for Integrated Raster Imaging System. Overview 68000 The early systems up to IRIS 3000 use the Motorola 68000 series ...
* Motorola 68000 (m68k): Apollo Domain/OS, HP/UX, Mac/AUX,
NeXT Next may refer to: Arts and entertainment Film * ''Next'' (1990 film), an animated short about William Shakespeare * ''Next'' (2007 film), a sci-fi film starring Nicolas Cage * '' Next: A Primer on Urban Painting'', a 2005 documentary film Lit ...
, SunOS 3 *
NS320xx The NS32000, sometimes known as the 32k, is a series of microprocessors produced by National Semiconductor. The first member of the family came to market in 1982, briefly known as the 16032 before becoming the 32016. It was the first 32-bit general ...
(n32k):
Encore An encore is an additional performance given by performers after the planned show has ended, usually in response to extended applause from the audience.Lalange Cochrane, in ''Oxford Companion to Music'', Alison Latham, ed., Oxford University Pre ...
Multimax *
SPARC SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system develope ...
: SunOS 4 and above,
Solaris Solaris may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Solaris'' (1972 film), directed by ...
,
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
on
Connection Machine A Connection Machine (CM) is a member of a series of massively parallel supercomputers that grew out of doctoral research on alternatives to the traditional von Neumann architecture of computers by Danny Hillis at Massachusetts Institute of Techno ...
5 *
VAX VAX (an acronym for Virtual Address eXtension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
: Ultrix


See also


References


External links

*
History of T
by Olin Shivers
T manual
(PDF) from ReadScheme, via the Internet Archive {{Authority control Lisp programming language family Scheme (programming language) Programming languages created in 1982