Shared Variables

Last updated

Shared Variables are a feature of the programming language APL which allows APL programs running on one processor to share information with another processor. [1] Although originally developed for mainframe computers, Shared Variables were also used in personal computer implementations of APL. [1] Shared Variables could be used to control peripheral devices, or to communicate with external files, database management systems, or other users. [1] Shared Variables were first introduced by International Business Machines Corporation (IBM) in their APL.SV software product in 1973, [2] and are still available as of 2017, in APLs from IBM and Dyalog, [3] for the operating systems Linux and Windows.

Contents

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. [2] 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:

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. [5] 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, 8080, and Zilog Z80 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.[ citation needed ]

Nearly all other APL vendors chose to implement new functions, such as access to Linux and Windows native features, graphical user interfaces, presentation graphics, database management system interfaces, and so on, more directly in their respective versions of the APL language.[ citation needed ] In modern non-IBM APL implementations, the Shared Variable interface has been largely supplanted by Component Object Model (COM), ActiveX, and .NET Framework.

Related Research Articles

APL is a programming language developed in the 1960s by Kenneth E. Iverson. Its central datatype is the multidimensional array. It uses a large range of special graphic symbols to represent most functions and operators, leading to very concise code. It has been an important influence on the development of concept modeling, spreadsheets, functional programming, and computer math packages. It has also inspired several other programming languages.

MVS Operating system for IBM mainframes

Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.

Mainframe computer Computers used primarily by large organizations for business-critical applications

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 resource planning, and large-scale transaction processing. A mainframe computer is large but not as large as a supercomputer and has more processing power than some other classes of computers, such as minicomputers, servers, workstations, and personal computers. Most large-scale computer-system architectures were established in the 1960s, but they continue to evolve. Mainframe computers are often used as servers.

Operating system Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

Transaction Processing Facility

Transaction Processing Facility (TPF) is an IBM real-time operating system for mainframe computers descended from the IBM System/360 family, including zSeries and System z9.

History of operating systems Aspect of computing history

Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity for everyday use.

IBM Db2 Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. They initially supported the relational model, but were extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB/2, then DB2 until 2017 and finally changed to its present form.

Conversational Monitor System

The Conversational Monitor System is a simple interactive single-user operating system. CMS was originally developed as part of IBM's CP/CMS operating system, which went into production use in 1967. CMS is part of IBM's VM family, which runs on IBM mainframe computers. VM was first announced in 1972, and is still in use today as z/VM.

MUSIC/SP Defunct time-sharing system software

MUSIC/SP was developed at McGill University in the 1970s from an early IBM time-sharing system called RAX.

In computing, Interactive System Productivity Facility (ISPF) is a software product for many historic IBM mainframe operating systems and currently the z/OS and z/VM operating systems that run on IBM mainframes. It includes a screen editor, the user interface of which was emulated by some microcomputer editors sold commercially starting in the late 1980s, including SPF/PC.

VM (operating system) Family of IBM operating systems

VM is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.

Common User Access (CUA) is a standard for user interfaces to operating systems and computer programs. It was developed by IBM and first published in 1987 as part of their Systems Application Architecture. Used originally in the MVS/ESA, VM/CMS, OS/400, OS/2 and Microsoft Windows operating systems, parts of the CUA standard are now implemented in programs for other operating systems, including variants of Unix. It is also used by Java AWT and Swing.

A hypervisor is similar to an emulator; it is computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.

I. P. Sharp Associates (IPSA) was a major Canadian computer time-sharing, consulting and services firm of the 1970s and 1980s. IPSA is well known for its work on the programming language APL, an early packet switching computer network named IPSANET, and a powerful mainframe computer-based email system named 666 Box, stylized as 666 BOX. It was purchased in 1987 by Reuters Group, which used them until 2005 as a data warehousing center for business data.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

Scientific Time Sharing Corporation (STSC) was a pioneering timesharing and consulting service company which offered APL from its datacenter in Bethesda, MD to users in the United States and Europe.

The history of IBM mainframe operating systems is significant within the history of mainframe operating systems, because of IBM's long-standing position as the world's largest hardware supplier of mainframe computers. IBM mainframes run operating systems supplied by IBM and by third parties.

OS/360 and successors Operating system for IBM S/360 and later mainframes

OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages for the IBM 7090/7094 and even more so by the PR155 Operating System for the IBM 1410/7010 processors. It was one of the earliest operating systems to require the computer hardware to include at least one direct access storage device.

Rexx Command/scripting/programming language

Rexx is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. Proprietary and open source Rexx interpreters exist for a wide range of computing platforms; compilers exist for IBM mainframe computers.

References

  1. 1 2 3 Allen Kent; James G. Williams, eds. (1987). "APL for Microcomputers". Encyclopedia of Microcomputers. Vol. 1. pp. 206–207. ISBN   0824727002.
  2. 1 2 A.D. Falkoff; K.E. Iverson (1973). "The Design of APL". IBM Journal of Research and Development. 17 (4): 324–334. doi:10.1147/rd.174.0324 . Retrieved 2017-12-11.
  3. "Shared Variable Principles". Dyalog APL 15.0 Help. 2017-07-14. Retrieved 2017-12-11.
  4. Toke Jayachandran (1987). A tutorial on APL2 . Retrieved 2017-12-11.
  5. Richard L. Potyok (1988). "Network Shared Variable Processor" . Retrieved 2017-12-11.