TACL (the Tandem Advanced Command Language) is the scripting programming language used in Tandem Computers. TACL is the shell.
Tandem Computers were originally designed and sold by Tandem Computers, Inc., based in Cupertino, CA. These were the first commercially available parallel processing computers, originally referred to as "mini-computers". Tandem's strategy was the emerging concept of "continuous availability" that relied on mirrored disks, their controllers and software, and a well engineered operating system (Guardian, and later NonStop Kernel or NSK) to ensure continuous application availability by ensuring the system could survive any single point of hardware failure.
Tandem Computers, Inc. was acquired by Compaq Computer Corporation in 1997; and Compaq Computer Corp. was subsequently purchased by Hewlett-Packard in 2001. Today they are known as "HPE Nonstop", with products such as the HP Integrity NonStop Blade systems.
TACL continues to be the scripting language used on Hewlett Packard NonStop Servers. NonStop servers are key components of the backbone infrastructure of the largest banks, casinos, retailers, telephone companies, email systems, and stock exchanges worldwide.
Many computer systems that were produced after the Tandem NonStop platform relied on some form of redundancy (or HOT backup) and a "failover" scheme to continue running. On the Tandem NonStop, however, each CPU performs its own work and may contain a dormant "backup" process for another CPU. Each pair of CPUs, 0 and 1 for example, share hardware ownership of controllers and disk drives. The drives are not REDUNDANT. Writes to the disk pair are performed on both the primary and backup drives. Reads, however, take advantage of which head on which drive is closer to the information and choose that drive onto which to perform the read. For example if CPU 0 fails, then CPU 1 takes over ownership of a disk drive, providing continuous availability to that data. A primary process that is running may be given a backup process, which receives checkpoint information. If the primary process fails, through whatever reason, the backup process takes over, that backup process may spawn its own backup. This is what earned them the name NonStop, since application programs can be fault-tolerant. This makes them very attractive for their customers, because of their ability for continuous availability, or being NonStop. These systems are also known for handling very high numbers of transactions per second, which is very useful for banks and stock exchanges.
The paragraph above describes the philosophy behind the design of the hardware and the software. Upon that NSK platform there are two programming languages at least - TAL as the compiled language, and TACL as the interpreted language. NSK has compilers for most useful languages too. TAL is rumoured to be about to be deprecated, but TACL remains as the default scripting language on these machines. HP provide a Korn-based shell command interface also these days, but it does not offer all that TACL does for NSK sysadmins - for instance, the netstat command has not been implemented. TACL builtins reflect the multi-CPU nature of NSK, and there probably isn't much more to say than that - if you fully understand all the TACL builtins then you are probably well on the way to understanding the NSK.
TACL is interpreted. TACL instructions can be stored in a simple text file as MACROS, ROUTINES, or DEFINES to make scripts. Such scripts are often used to store complex configuration instructions such as start-up and hardware configuration sequences.
The TACL language has a large number of Built-in utilities which allow the user to capture output from various system utilities and parse the captured text, line by line or character by character. This allows users to build TACL programs that can monitor system events through the use of filters that monitor the system and application event logs.
Create the following subroutine in the file FILE1:
?Section HELLO_BERNARD ROUTINE #OUTPUT Hello BERNARD
How to run the TACL routine:
An alternate strategy is to create a file named FILE1 and add the following two lines:
?TACL ROUTINE #OUTPUT Hello BERNARD
Execute the routine by naming the file at the TACL prompt:
> RUN FILE1
Edited: 2021-06-18 18:19:51