Misplaced Pages

Associative Programming Language

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Not to be confused with APL (programming language).

The Associative Programming Language (APL) 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" {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 PL/I dialect supported APL directly in the language.

References

  1. ^ Price, Carol (1978), "APL/VAAM" (PDF), NASA Conference Publication 2055: Engineering and Scientific Data Management, NASA, pp. 85–97
  2. Bachman, Charles (January 2006). "An interview with Charles W. Bachman". ACM Oral History interviews. doi:10.1145/1141880.1141882. ISBN 978-1-4503-1771-9. Retrieved June 29, 2024."George built a very attractive IDS like system, called 'Associative Programming Language' (APL)"
  3. Dodd, George G. (November 1966). "APL: A language for associative data handling in PL/I". AFIPS '66 (Fall): Proceedings of the November 7-10, 1966, fall joint computer conference. pp. 677–684. doi:10.1145/1464291.146436 (inactive 1 November 2024). ISBN 978-1-4503-7893-2. Retrieved July 2, 2024.{{cite book}}: CS1 maint: DOI inactive as of November 2024 (link)
Categories: