Associative Programming Language


The Associative Programming Language is a database language developed by General Motors Research Laboratories in 1966.
APL was developed to provide high-level language data access and manipulation functions to support GM's CADANCE interactive computer graphics system. It was designed to integrate with PL/I.
The underlying database is assumed to follow the network model. GM's first database manager was implemented via linked lists, but in 1977 the "Virtual Associative Access Manager"

Description

APL consists of six statements, CREATE, INSERT, FIND, FOR EACH, REMOVE, and DELETE, and miscellaneous functions such as counting the number of members in a set, determining the length or type of an entity, or locating an entity by name.
  • Create is a synonym for Allocate. It causes storage to be allocated for a based variable. A file or set where the data is to be allocated may be specified.
  • Delete is a synonym for Free. Delete frees a based variable and optionally removes it from all sets of which it is a member.
  • Find locates an entity that is a member of a set or container based on specified conditions. An optional ELSE clause is executed if no entities are found.
  • For Each heads a group of statements to be executed for all entities or sets matching a specified condition.
  • Insert inserts an entity into a specified set. Optionally, the placement of the new entity relative to other elements of the set may be specified.
  • Let sets a locator variable to reference a specified set.
  • Remove removes an entity from a set.

    Implementation

APL statements were initially implemented as PL/I preprocessor macros, which translated into calls to the database manager. Later GM's Apple PL/I dialect supported APL directly in the language.