📑 Table of Contents

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.

Origin

edit

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

edit

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.

References

edit
  1. ^ a b c Allen Kent; James G. Williams, eds. (1987). "APL for Microcomputers". Encyclopedia of Microcomputers. Vol. 1. pp. 206–207. ISBN 0824727002.
  2. ^ a b 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.

📚 Artikel Terkait di Wikipedia

Global variable

scope variable of the same name. shared = -shared; } int main() { // Reference to the file-scope variable. printf("%d\n", shared); changeShared(); printf("%d\n"

Distributed shared memory

virtual memory, shared-variable approach using routines to access shared variables and object-based approach, ideally accessing shared data through object-oriented

Double-checked locking

languages, the code generated by the compiler is allowed to update the shared variable to point to a partially constructed object before A has finished performing

OpenMP

region is shared, which means visible and accessible by all threads simultaneously. By default, all variables in the work sharing region are shared except

Environment variable

environment variable is a user-definable value that can affect the way running processes will behave on a computer. Environment variables are part of

Dependent and independent variables

A variable is considered dependent if it depends on (or is hypothesized to depend on) an independent variable. Dependent variables are the outcome of the

Consistency model

consistency, every shared variable is assigned a synchronization variable specific to it. This way, only when the acquire is to variable x, all operations

Instance variable

While an instance variable's value may differ between instances of a class, a class variable can only have one value at any one time, shared between all instances