Język aplikacji transakcyjnej
Transaction Application Language lub TAL (pierwotnie „Tandem Application Language”) to język proceduralny o strukturze blokowej, zoptymalizowany do użytku na sprzęcie Tandem . TAL przypomina skrzyżowanie C i Pascala . Był to oryginalny systemowy język programowania dla maszyn Tandem CISC , które nie miały asemblera .
Koncepcja projektowa TAL, ewolucja SPL firmy Hewlett Packard , była ściśle powiązana i zoptymalizowana z mikroprogramowanym zestawem instrukcji CISC. Każdą instrukcję TAL można było łatwo skompilować w sekwencję instrukcji, które manipulowały danymi na przejściowym stosie rejestrów zmiennoprzecinkowych. Sam stos rejestrów unosił się na szczycie alokacji pamięci programu i stosu wywołań .
Sam język ma wygląd ALGOL lub Pascal , z instrukcjami BEGIN i END. Jednak jego semantyka jest znacznie bardziej podobna do C . Nie pozwala na nieokreślone poziomy zagnieżdżania procedur, nie przekazuje złożonych argumentów strukturalnych według wartości i nie ściśle typuje większości odwołań do zmiennych. Techniki programowania są bardzo podobne do C, używając wskaźników do struktur, sporadycznych nakładek, celowej obsługi łańcuchów i rzutowania, gdy jest to właściwe.
Dostępne typy danych obejmują 8-bitowe, 16-bitowe, 32-bitowe i (wprowadzone później) 64-bitowe liczby całkowite. Obsługa poziomu mikrokodu była dostępna dla ciągów znaków zakończonych znakiem NULL. Jednak nie jest to powszechnie stosowane.
system operacyjny Tandem NonStop został napisany w TAL. Ostatnio wiele z nich zostało przepisanych w C, a TAL został wycofany ze względu na nowy program.
Podczas migracji z CISC do RISC TAL został zaktualizowany/zastąpiony przez pTAL - kompilatory umożliwiły przyspieszenie/ponowne skompilowanie TAL do rodzimych aplikacji RISC.
W obecnej migracji z RISC do Intel Itanium 2 TAL i pTAL zostały ponownie zastąpione przez epTAL - kompilatory umożliwiają przyspieszenie/rekompilację kodu TAL i pTAL do natywnych aplikacji Itanium.