APL Shared Variables
Encyclopedia
Shared Variables are a feature of the APL
APL programming language
APL is an interactive array-oriented language and integrated development environment, which is available from a number of commercial and noncommercial vendors and for most computer platforms. It is based on a mathematical notation developed by Kenneth E...

 language which allowed mainframe APL programs to communicate with other facilities on a computer, which could include external files, DBMS, or other users. Shared Variables were first introduced by IBM in their APL.SV program product in 1973 and continue to be available today in IBM and Dyalog APL for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Windows.

The Shared Variable facility is roughly analogous to a Windows out-of-process server today.

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. Some of the timesharing vendors began offering an external file system at the time, however IBM's approach was to supply a more generic facility whereby an external process could be used by an APL program. Following APL.SV, the IBM VS APL and APL2 program products also supported shared variables, as well as the IBM 5100
IBM 5100
The IBM 5100 Portable Computer was a portable computer introduced in September 1975, six years before the IBM PC. It was the evolution of a prototype called the SCAMP that was developed at the IBM Palo Alto Scientific Center in 1973. In January 1978 IBM announced the IBM 5110, its larger cousin,...

 line of computers.

Shared Variable Processors were available to allow APL access to the following:
  • Standard operating system files (TSIO)
  • TSO
    Time Sharing Option
    In computing, Time Sharing Option is an interactive time-sharing environment for IBM mainframe operating systems, including OS/360 MVT, OS/VS2 , MVS, OS/390, and z/OS.- Overview :TSO fulfills a similar purpose to Unix login sessions...

     and CMS
    Conversational Monitor System
    The Conversational Monitor System is a relatively simple interactive computing single-user operating system.* CMS is part of IBM's VM family, which runs on IBM mainframe computers...

     command processors (AP100)
  • VSAPL Stack Processor (AP101)
  • VSAPL Session Manager (AP102)
  • CMS Native Files (AP110)
  • CMS and TSO Native Files (AP111)
  • VSAM
    Virtual storage access method
    Virtual storage access method an IBM disk file storage access method, first used in the OS/VS1, OS/VS2 Release 1 and Release 2 operating systems, later used throughout the Multiple Virtual Storage architecture and now in z/OS...

     Files (AP123)
  • Full Screen Display Manager (AP124)
  • IBM Graphical Data Display Manager (GDDM) (AP126)
  • IBM DB2
    IBM DB2
    The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions...

     (AP127)


In the early 1980s, I. P. Sharp Associates
I. P. Sharp Associates
I. P. Sharp Associates, IPSA for short, was a major Canadian computer time sharing, consulting and services firm of the 1970s and 80s. IPSA is particularly well known for its work on the APL programming language, an early packet switching computer network known as IPSANET, and a powerful...

, which offered a rich and advanced APL, introduced Shared Variables in their product offering. 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
IPSANET
IPSANET was a packet switching network written by I. P. Sharp Associates . Operation began in May 1976. It initially used IBM 3705s and Computer Automation LSI-2 computers as nodes. An Intel 80286 based-node was added in 1987. It was called the Beta node.The original purpose was to connect...

 which allowed in-house clients of SHARP APL to be connected to the network, a Network Shared Variable Processor, or NSVP, allowed programs from one mainframe site to access another. NSVP predates the widespread usage 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 touching 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 the IBM 5100
IBM 5100
The IBM 5100 Portable Computer was a portable computer introduced in September 1975, six years before the IBM PC. It was the evolution of a prototype called the SCAMP that was developed at the IBM Palo Alto Scientific Center in 1973. In January 1978 IBM announced the IBM 5110, its larger cousin,...

 and 8008
Intel 8008
The Intel 8008 was an early byte-oriented microprocessor designed and manufactured by Intel and introduced in April 1972. It was an 8-bit CPU with an external 14-bit address bus that could address 16KB of memory...

, 8080
Intel 8080
The Intel 8080 was the second 8-bit microprocessor designed and manufactured by Intel and was released in April 1974. It was an extended and enhanced variant of the earlier 8008 design, although without binary compatibility...

, and Z80 based hardware, later the original IBM PC, and today 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 DDE
Dynamic Data Exchange
Dynamic Data Exchange is a technology for interprocess communication under Microsoft Windows or OS/2.- Overview :Dynamic Data Exchange was first introduced in 1987 with the release of Windows 2.0 as a method of interprocess communication so that one program can communicate with or control another...

, it is interesting to note that 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 functionality, such as access to Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Windows native features, graphical user interface, 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 COM
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

, ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....

, and .Net.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK