TACPOL (programming language)
TACPOL (Tactical Procedure Oriented Language) is a block structured programming language developed by the United States Army for the TACFIRE Tactical Fire Direction command and control application.  TACPOL is similar to PL/I.

Language constructs

Reserved words
Unlike PL/I, TACPOL keywords—called particles—are reserved words and cannot be used as identifiers. There are roughly 100 reserved words.

Identifiers
TACPOL identifiers can be any length, but if longer than eight characters only the first five concatenated with the last three characters were actually used.

Data types
TACPOL supports fixed-point binary numeric data, fixed-length character strings up to 512 bytes, and fixed-length bit strings up to 32 bits.  There is no support for floating point numeric data or for pointers.  Arrays may have up to three dimensions, but dynamic bounds are not permitted.  Additional types are records, called groups, limited to a single level of nesting, tables (arrays of groups), and unions, called cells.

Control structures
Control structures include IF-THEN-ELSE, iteration, WHILE and CASE statements.

Procedures
Procedures may have value parameters, quantity parameters – by reference without type-checking, parameterless procedure and label parameters.

Implementations
The TACPOL compiler ran on and generated code for the AN/GYK-12, a militarized version of the Litton Industries L-3050 32-bit minicomputer.

Criticism and defense

Positive features
 TACPOL is easy to learn.

Negative features
 "TACPOL has a large number of special language features which were included for reasons of efficiency because the inclusion of corresponding cleanly designed general purpose features was not properly understood."
 "Cost per instruction of TACPOL [is] higher than language used for other military computers."

Notes

References

External links
 TACPOL Reference Manual (USACSCS-TF-4-1)
 Serafino, et.al. "Report to the High Order Language Working Group" (1977)
 United States General Accounting Office.  "Tactical Operations System Should Not Continue as Planned" (1979)

See also 

 JOVIAL
 CMS-2
 CORAL
 Ada

United States Army equipment
Domain-specific programming languages