Shared Variables are a feature of the programming language
APL which allows APL programs running on one
processor to share information with another processor.
Although originally developed for
mainframe computer
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
s, Shared Variables were also used in
personal computer
A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
implementations of APL.
Shared Variables could be used to control
peripheral device
A peripheral device, or simply peripheral, is an auxiliary hardware device that a computer uses to transfer information externally. A peripheral is a hardware component that is accessible to and controlled by a computer but is not a core compo ...
s, or to communicate with external files,
database
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 a ...
management systems, or other users.
Shared Variables were first introduced by International Business Machines Corporation (
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
) in their APL.SV
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
product in 1973,
and are still available , in APLs from IBM and Dyalog,
for the operating systems
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
.
Origin
When APL\360 was first introduced in 1968, there were no built-in means by which a user could directly access data from outside of the APL system. Thus, starting in 1969, IBM developed the shared variable facility.
Following APL.SV, the IBM VS APL and APL2 program products also supported shared variables, as did the
IBM 5100 line of computers.
Shared Variable Processors were available to allow APL access to the following:
* Standard operating system files (TSIO)
*
Time Sharing Option
Time Sharing Option (TSO) is an interactive time-sharing environment for IBM mainframe operating systems, including OS/360 MVT, OS/VS2 (SVS), MVS, OS/390, and z/OS.
Use
In computing, time-sharing is a design technique that allows many peop ...
(TSO) and
Conversational Monitor System (CMS) command processors (AP100)
* VSAPL Stack Processor (AP101)
* VSAPL Session Manager (AP102)
* CMS Native Files (AP110)
* CMS and TSO Native Files (AP111)
* APL2 Data File Processor (AP121)
*
Virtual storage access method
Virtual Storage Access Method (VSAM) is an IBM direct-access storage device (DASD) file storage access method, first used in the OS/VS1, OS/VS2 Release 1 (SVS) and Release 2 (MVS) operating systems, later used throughout the Multiple Virtual S ...
(VSAM) Files (AP123)
* Full Screen Display Manager (AP124)
* IBM
Graphical Data Display Manager (GDDM) (AP126)
*
IBM Db2 (AP127)
Subsequent uses
In the early 1980s,
I. P. Sharp Associates, which offered a rich and advanced APL, introduced Shared Variables in their product. Many of the Shared Variable Processors available for IBM products were also written for Sharp APL, notably TSIO (called PJAM), AP124, AP126, and AP127. Further, as I. P. Sharp also offered
IPSANET which allowed in-house clients of SHARP APL to be connected to the network, a Network Shared Variable Processor (NSVP) allowed programs from one mainframe site to access another.
NSVP predates the widespread use of the Internet by five years.
Shared Variables were one technique used by APL implementors and vendors to increase the richness of the APL language, doing so without changing the core implementation. With the advent of more powerful personal computing, the exodus of the APL user community to smaller computers was inevitable. APL was first available on
Intel 8008
The Intel 8008 ("''eight-thousand-eight''" or "''eighty-oh-eight''") is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972. The 8008 architecture was designed by Computer Terminal Corporation (CTC) and ...
,
8080
The Intel 8080 is Intel's second 8-bit microprocessor. Introduced in April 1974, the 8080 was an enhanced successor to the earlier Intel 8008 microprocessor, although without binary compatibility.'' Electronic News'' was a weekly trade newspa ...
, and
Zilog Z80
The Zilog Z80 is an 8-bit computing, 8-bit microprocessor designed by Zilog that played an important role in the evolution of early personal computing. Launched in 1976, it was designed to be Backward compatibility, software-compatible with the ...
based hardware, later the original IBM PC, and as of 2015, on the 32- and 64-bit Linux and Windows workstations. Although Dyalog APL included an implementation of shared variables for communication with the now-deprecated Microsoft Windows
Dynamic Data Exchange (DDE), only IBM continued to use Shared Variables as a means to supply new features to their versions of the APL2 language for non-mainframe computers.
Nearly all other APL vendors chose to implement new functions, such as access to
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and Windows native features,
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s, presentation graphics, database management system interfaces, and so on, more directly in their respective versions of the APL language. In modern non-IBM APL implementations, the Shared Variable interface has been largely supplanted by
Component Object Model
Component Object Model (COM) is a binary-interface technology for software components from Microsoft that enables using objects in a language-neutral way between different programming languages, programming contexts, processes and machines ...
(COM),
ActiveX
ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide W ...
, and
.NET Framework.
References
{{APL programming language
APL programming language family
IBM software