Jan 1, 1987
This report describes the motivations behind the development of the RAND-ABEL programming language and some of its novel features. RAND-ABEL was designed to meet the needs of the RAND Strategy Assessment Center, which is building a large system for automated war gaming in which separate rule-based models represent the behavior of the United States, the USSR, and a third country. To satisfy the requirements for speed and transparency, the language was designed to be: (1) rapidly compilable and executable; (2) self-documenting; (3) understandable by nonprogrammer domain experts after modest instruction; (4) reasonably easy to learn and use, especially for modifying or incrementally extending existing code; (5) portable across different computers; and (6) well suited to development of large and complex rule-based simulations. Certain of its features are unique: the ability to express directly in RAND-ABEL source code such natural structures as decision tables (isomorphic with decision trees) and order tables, which lay out orders to be executed sequentially, and its novel declaration-by-example feature, which is useful for rule-based programs with enumerated variables and many distinct data types. RAND-ABEL has built-in support for a data dictionary for communication between separate modules.