TACPOL (programming language)
|This article needs additional citations for verification. (July 2007)|
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.
Unlike PL/I, TACPOL keywords—called particles—are reserved and can not be used as identifiers. There are roughly 100 reserved words.
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.
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 include IF-THEN-ELSE, iteration, WHILE and CASE statements.
Procedures may have value parameters, quantity parameters - by reference without type-checking, parameterless procedure and label parameters.
Criticism and defense
- TACPOL is easy to learn.
- "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."
- Serafino, et al. p.59
- Serafino, et al. p.59.
- U.S. GAO. p.17.
- Litton Data Systems, Inc. (1975). TACPOL Reference Manual Programming Support System. Document USACSCS-TF-4-1.
- 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)
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|