Associative Programming Language
   HOME

TheInfoList



OR:

The Associative Programming Language (APL) is a
database language In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analy ...
developed by
General Motors Research Laboratories General Motors Research Laboratories are the part of General Motors responsible for creation of the first known operating system ( GM-NAA I/O) in 1955 and contributed to the first mechanical heart An artificial heart is a device that replace ...
in 1966. APL was developed to provide
high-level language A high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to use, or may automate (or ...
data access and manipulation functions to support GM's CADANCE interactive
computer graphics Computer graphics deals with generating images and art with the aid of computers. Computer graphics is a core technology in digital photography, film, video games, digital art, cell phone and computer displays, and many specialized applications. ...
system. It was designed to integrate with
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language initially developed by IBM. It is designed for scientific, engineering, business and system programming. It has b ...
. The underlying database is assumed to follow the
network model In computing, the network model is a database model conceived as a flexible way of representing objects and their relationships. Its distinguishing feature is that the schema, viewed as a graph in which object types are nodes and relationship ty ...
. GM's first database manager was implemented via
linked list In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
s, but in 1977 the "Virtual Associative Access Manager" {VAAM) was developed to use virtual storage and implementing entity relationships as arrays. APL was later ported to the MCTS operating system.


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 implemented as PL/I preprocessor macros, which translated into calls to the database manager. Later GM's
Apple An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
PL/I dialect supported APL directly in the language.


References

{{Reflist Query languages General Motors