PLUS(ID:2385/plu004)

Programming Language for UNIVAC Systems 


Programming Language for UNIVAC Systems - designed to be machine independant and portable between the 1100 and 900 series.

Machine-oriented systems language used internally by Univac.


Related languages
PL/I => PLUS   Dialect of

References:
  • [Sperry] PLUS Programmer Reference Manual, Rev. 2 view details
  • Borgerson, B. R. ; Hanson, M. L. ; and Hartley, P. A. "The Evolution of the Sperry Univac 1100 Series: A History, Analysis, and Projection" view details
          in [ACM] CACM 21(01) (January 1978) view details
  • [Sperry] PLUS Specifications, Rev. 3 view details
          in [ACM] CACM 21(01) (January 1978) view details
  • Stodola, Frank W. "The PLUS programming language" pp146-155 view details DOI Extract: Summary
    Summary
    PLUS accommodates the need for both abstract and machine representation of data by recognizing various levels of data specification. Attributes and constructs are available to program strictly in abstract terms. However, when coping with externally defined data formats as in the case of executive request packets, the programmer needs the capability of specifying precise data patterns. To accommodate the programmer that must do so, PLUS has specific and machine representation. Specific representation implies machine characteristics, but operations on this data may not rely on these characteristics. Machine dependent usage of data is documented by the MACHINE Attribute. Since characteristics of a data item not implied by its declaration may not be assumed, an entity must be declared with its intent and usage in mind. This has the effect of isolating and identifying the level of usage for each item.
    In addition, machine specific tools such as the INLINE facility and the ASSIGNED attribute were described. These are PLUS's approach for generating non-standard code sequences and for identifying and using specific registers from a high level language. Not all of PLUS's compile-time facilities were described, yet those that were discussed display a variety of functionality.
          in SIGPLAN Notices 15(01) January 1980 view details
  • Spector, David "Ambiguities and insecurities in Modula-2" pp43-51 view details Extract: Introduction
    Introduction
    While it is not yet clear whether Ada, BLISS, Mary/2, Modula-2, Mesa, C, CLU, Edison, Concurrent Euclid, Icon, Newton, PLAIN, PLUS, Praxis, Smalltalk, SQURL, Y, or some other language is "best" for systems programming, each language represents an advance towards the goal of supporting an understandable and efficient organization of the many details and relationships inherent in systems programming.
    Unfortunately, no one language has yet achieved the delicate balance between simplicity and power that would distinguish it as ideal, but it appears that Modula-2 comes quite close. Modula-2 represents a step forward in language design, both because it incorporates existing features instead of inventing its own, and because of its evident concern for simplicity.
    Modula-2 offers the following valuable language features:
    Simplicity.
    Few primitive datatypes are defined, few control constructs are supported (there is no "go to"), and input-output operations are not provided as part of the language (they can be provided via extensions written in Modula-2). This simplicity allows for easier standardization and better portability than can be achieved with most other languages.
    Modules
    A module is a named collection of variables and procedures, similar to an Ada package. It controls the interfacing and encapsulation of the conceptual parts making up large software systems. Modules provide a more flexible solution to the problem of partitioning the name space of a large program than does the more familiar hierarchical nesting of procedures. They are so valuable they are even being force-fitted onto existing languages.
    Separate Compilation.
    Modules may be compiled separately, providing good management for large programsr and definition modules allow for specifying interfaces without giving implementation details.
    Flexible Datatypes.
    Strong datatypes are enforced, but this can be relaxed when necessary in systems programming to just declaring a parameter to be a word, an address, or an array of words.
    Machine Access.
    Access to specific memory addresses and other characteristics of the underlying machine is supported.
    Tasking.
    Flexible and efficient tasking is provided by coroutine management routines.
          in SIGPLAN Notices 17(08) August 1982 view details
  • Flass, Peter "Languages Related to PL/I" in "The PL/I Language" view details External link: Online copy at Peter Flass's PL/1 site
          in SIGPLAN Notices 17(08) August 1982 view details