Associative Programming Language: Difference between revisions
Citation bot (talk | contribs) Alter: template type, journal, pages. Add: doi-broken-date, isbn, doi. Formatted dashes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 75/748 |
Citation bot (talk | contribs) Add: isbn, date. | Use this bot. Report bugs. | Suggested by Headbomb | #UCB_toolbar |
||
Line 11: | Line 11: | ||
}}</ref> |
}}</ref> |
||
APL was developed to provide [[High-level programming language|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]].<ref>{{cite book |last1=Bachman |first1=Charles |title=An interview with Charles W. Bachman |url=https://dl.acm.org/doi/abs/10.1145/1141880.1141882 |website=ACM Digital Library |doi=10.1145/1141880.1141882 |isbn=978-1-4503-1771-9 |access-date=June 29, 2024}}"George [Dodd] built a very attractive IDS like system, called 'Associative Programming Language' (APL)"</ref><ref>{{cite journal |last1=Dodd |first1=George G. |title=APL—A Language for Associative Data Handling in PL/I |journal=AFIPS '66 (Fall): Proceedings of the November 7–10, 1966, Fall Joint Computer Conference |date=November 1966 |pages=677–684 |doi=10.1145/1464291.146436 |doi-broken-date=2024-08-12 |url=https://dl.acm.org/doi/10.1145/1464291.1464363 |access-date=July 2, 2024}}</ref> |
APL was developed to provide [[High-level programming language|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]].<ref>{{cite book |last1=Bachman |first1=Charles |title=An interview with Charles W. Bachman |url=https://dl.acm.org/doi/abs/10.1145/1141880.1141882 |website=ACM Digital Library |date=January 2006 |doi=10.1145/1141880.1141882 |isbn=978-1-4503-1771-9 |access-date=June 29, 2024}}"George [Dodd] built a very attractive IDS like system, called 'Associative Programming Language' (APL)"</ref><ref>{{cite journal |last1=Dodd |first1=George G. |title=APL—A Language for Associative Data Handling in PL/I |journal=AFIPS '66 (Fall): Proceedings of the November 7–10, 1966, Fall Joint Computer Conference |date=November 1966 |pages=677–684 |doi=10.1145/1464291.146436 |doi-broken-date=2024-08-12 |isbn=978-1-4503-7893-2 |url=https://dl.acm.org/doi/10.1145/1464291.1464363 |access-date=July 2, 2024}}</ref> |
||
The underlying database is assumed to follow the [[network model]]. GM's first database manager was implemented via [[linked list]]s, but in 1977 the "Virtual Associative Access Manager" {VAAM) was developed to use [[virtual storage]] and implementing entity relationships as arrays.<ref name=Price />{{rp|p.86}} APL was later ported to the [[Multiple Console Time Sharing System|MCTS]] operating system. |
The underlying database is assumed to follow the [[network model]]. GM's first database manager was implemented via [[linked list]]s, but in 1977 the "Virtual Associative Access Manager" {VAAM) was developed to use [[virtual storage]] and implementing entity relationships as arrays.<ref name=Price />{{rp|p.86}} APL was later ported to the [[Multiple Console Time Sharing System|MCTS]] operating system. |
Revision as of 04:22, 12 August 2024
The Associative Programming Language (APL) is a database language developed by General Motors Research Laboratories in 1966.[1]
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.[2][3]
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.[1]: p.86 APL was later ported to the MCTS operating system.
Description
APL consists of six statements, CREATE
, INSERT
, FIND
, FOR EACH
, REMOVE
, and DELETE
,[1]: p.85 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.[1]: p.95
- 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
- ^ a b c d Price, Carol (1978), "APL/VAAM" (PDF), NASA Conference Publication 2055: Engineering and Scientific Data Management, NASA, pp. 85–97
- ^ Bachman, Charles (January 2006). An interview with Charles W. Bachman. doi:10.1145/1141880.1141882. ISBN 978-1-4503-1771-9. Retrieved June 29, 2024.
{{cite book}}
:|website=
ignored (help)"George [Dodd] built a very attractive IDS like system, called 'Associative Programming Language' (APL)" - ^ 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: 677–684. doi:10.1145/1464291.146436 (inactive 2024-08-12). ISBN 978-1-4503-7893-2. Retrieved July 2, 2024.
{{cite journal}}
: CS1 maint: DOI inactive as of August 2024 (link)