# Transaction Application Language

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Transaction_Application_Language
> Markdown URL: https://mediated.wiki/source/Transaction_Application_Language.md
> Source: https://en.wikipedia.org/wiki/Transaction_Application_Language
> Source revision: 1246108466
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Procedural computer language also known as TAL

Transaction Programming Language (TAL) Paradigm Block-structured procedural language Developer Hewlett-Packard Enterprise (originally Tandem Computers) First appeared mid 1970s Platform MIPS, Itanium, x86-64 OS NonStop OS License Proprietary commercial software File formats unstructured, Enscribe, NonStop SQL/MP, NonStop SQL/MX Dialects TAL, pTAL, epTAL Influenced by ALGOL, Pascal, C

**Transaction Application Language** or **TAL** (originally "Tandem Application Language") is a block-structured,[1] procedural language optimized for use on [Tandem](/source/Tandem_Computers) (and later HP NonStop) hardware. TAL resembles a cross between [C](/source/C_(programming_language)) and [Pascal](/source/Pascal_programming_language). It was the original [system programming language](/source/System_programming_language) for the Tandem Computers [CISC](/source/Complex_instruction_set_computer) machines, which had no [assembler](/source/Assembly_language#Assembler).[2]

The design concept of TAL, an evolution of [Hewlett-Packard](/source/Hewlett-Packard)'s [SPL](/source/System_Programming_Language), was intimately associated and optimized with a [microprogrammed](/source/Microcode) 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](/source/Call_stack).

The language itself has the appearance of [ALGOL](/source/ALGOL) or [Pascal](/source/Pascal_(programming_language)), with BEGIN and END statements. However, its semantics are far more like [C](/source/C_(programming_language)). 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.[3] Microcode level support was available for null terminated character strings. However, this is not commonly used.

Originally the Tandem [NonStop operating system](/source/NonStop_(server_computers)) was written in TAL. Much of it has since 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 re-compiled into Native RISC Applications. Later, the epTAL compiler was introduced for Itanium processors.

## See also

- [Enscribe](/source/Enscribe)

- [NonStop SQL](/source/NonStop_SQL)

- [NonStop (server computers)](/source/NonStop_(server_computers))

- [TACL](/source/TACL_(programming_language)) (Tandem Advanced Command Language)

- [Tandem Computers](/source/Tandem_Computers)

- [List of compilers](/source/List_of_compilers) for a partial list of NonStop compilers

## References

1. **[^](#cite_ref-1)** *TAL Programmer's Guide*. Cupertino, California: Tandem Computers, Incorporated. 1993. pp. xxv.

1. **[^](#cite_ref-2)** ["Transaction Application Language from FOLDOC"](http://foldoc.org/TAL). *foldoc.org*. Retrieved 2023-07-04.

1. **[^](#cite_ref-:0_3-0)** [*TAL Programmer's Guide*](http://nonstoptools.com/manuals/Tal-Guide.pdf) (PDF). Cupertino, California: Tandem Computers, Incorporated. 1993. Chapter 1, pages 1, 2. Retrieved July 4, 2023.

## Further reading

- [TAL Programmer's Guide](http://nonstoptools.com/manuals/Tal-Guide.pdf)

- [NonStop Computing Home](https://www.hpe.com/info/nonstop) – main Nonstop Computing page at Hewlett Packard Enterprise

---
Adapted from the Wikipedia article [Transaction Application Language](https://en.wikipedia.org/wiki/Transaction_Application_Language) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Transaction_Application_Language?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
