Transaction Application Language
Encyclopedia
Transaction Application Language or TAL (originally "Tandem Application Language") is a block-structured, procedural language optimized for use on Tandem
hardware. TAL resembles a cross between C
and Pascal. It was the original system programming language
for the Tandem CISC
machines, which had no assembler.
The design concept of TAL, an evolution of Hewlett Packard's SPL
, was intimately associated and optimized with a microprogrammed
CISC instruction set. Each TAL statement could easily compile into a sequence of instructions that manipulated data on a transient floating register stack. The register stack itself floated at the crest of the program's memory allocation and call stack
.
The language itself has the appearance of ALGOL
or Pascal
, with BEGIN and END statements. However, its semantics are far more like C
. It does not permit indefinite levels of procedure nesting, it does not pass complex structured arguments by value, and it does not strictly type most variable references. Programming techniques are much like C using pointers to structures, occasional overlays, deliberate string handling and casts when appropriate.
Available datatypes include 8 bit, 16 bit, 32 bit and (introduced later) 64 bit integers. Microcode level support was available for null terminated character strings. However, this is not commonly used.
Originally the Tandem NonStop operating system
was written in TAL. Recently much of it has been rewritten in C and TAL has been deprecated for new development.
In the migration from CISC to RISC TAL was updated/replaced with pTAL - compilers allowed TAL to be accelerated/re-compiled into Native RISC Applications.
In the current migration from RISC to Intel Itanium 2 TAL and pTAL has been replaced with epTAL, again - compilers allow TAL and pTAL code to be accelerated/re-compiled into native Itanium Applications.
Tandem Computers
Tandem Computers, Inc. was the dominant manufacturer of fault-tolerant computer systems for ATM networks, banks, stock exchanges, telephone switching centers, and other similar commercial transaction processing applications requiring maximum uptime and zero data loss. The company was founded in...
hardware. TAL resembles a cross between C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
and Pascal. It was the original system programming language
System programming language
System programming languages are programming languages that are statically typed, allow arbitrarily complex data structures, are compiled, and are meant to operate largely independently of other programs. Prototypical system programming languages are C and Modula-2...
for the Tandem CISC
Complex instruction set computer
A complex instruction set computer , is a computer where single instructions can execute several low-level operations and/or are capable of multi-step operations or addressing modes within single instructions...
machines, which had no assembler.
The design concept of TAL, an evolution of Hewlett Packard's SPL
System programming language
System programming languages are programming languages that are statically typed, allow arbitrarily complex data structures, are compiled, and are meant to operate largely independently of other programs. Prototypical system programming languages are C and Modula-2...
, was intimately associated and optimized with a microprogrammed
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...
CISC instruction set. Each TAL statement could easily compile into a sequence of instructions that manipulated data on a transient floating register stack. The register stack itself floated at the crest of the program's memory allocation and call stack
Call stack
In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, control stack, run-time stack, or machine stack, and is often shortened to just "the stack"...
.
The language itself has the appearance of ALGOL
ALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...
or Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
, with BEGIN and END statements. However, its semantics are far more like C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
. It does not permit indefinite levels of procedure nesting, it does not pass complex structured arguments by value, and it does not strictly type most variable references. Programming techniques are much like C using pointers to structures, occasional overlays, deliberate string handling and casts when appropriate.
Available datatypes include 8 bit, 16 bit, 32 bit and (introduced later) 64 bit integers. Microcode level support was available for null terminated character strings. However, this is not commonly used.
Originally the Tandem NonStop operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
was written in TAL. Recently much of it has been rewritten in C and TAL has been deprecated for new development.
In the migration from CISC to RISC TAL was updated/replaced with pTAL - compilers allowed TAL to be accelerated/re-compiled into Native RISC Applications.
In the current migration from RISC to Intel Itanium 2 TAL and pTAL has been replaced with epTAL, again - compilers allow TAL and pTAL code to be accelerated/re-compiled into native Itanium Applications.