Jump to content

Plus (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by W163 (talk | contribs) at 17:57, 30 June 2010 (Description: Add a reference to Amazon.com for the Plus Manual (which is out of print)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Plus
Paradigmimperative, structured
DeveloperAlan Ballard and Paul Whaley at UBC
Typing disciplinestatic, strong, safe
OSMichigan Terminal System (MTS)
Major implementations
IBM System/370
Influenced by
SUE, Pascal

Plus is a "Pascal-like" system implementation language from the University of British Columbia (UBC) based on the SUE[1] system language developed at the University of Toronto, circa 1971.

Description

Plus was developed at the University of British Columbia (UBC) Computing Centre by Alan Ballard and Paul Whaley for use with and for the development of the Michigan Terminal System (MTS).

Plus is based to a large extent on the SUE System Language[2] developed at the University of Toronto, circa 1971. The SUE language was derived, particularly in its data structure facilities from Pascal[3].

Plus is superficially quite different from SUE or Pascal; however the underlying language semantics are really quite similar. Users familiar with the C programming language will also recognize much of its structure and semantics in PLUS.

The 125 page manual, UBC PLUS, the Plus programming language, was available in the MTS file PLUS:MANUAL. The MTS file PLUS:LIBRARY.DOC contained a 120 page description of the source and object libraries available for use with Plus. The MTS file PLUS:NEWS contained updates to Plus and the Plus environment. These files are no longer readily available, but there is work underway to make a PDF file of the Plus Manual available via a web archive.

"Hello, world" example

The "hello, world" example program prints the string "Hello, world!" to a terminal or screen display.

%Title := "Hello world";
%Include(Pluslist);
%Subtitle := "Definitions";
%Lower_Case := True;
 
/* Definitions that everyone needs */
%Include(Boolean, Numeric_Types, More_Numeric_Types, String_Types,
   More_String_Types);

/* A tasteful subset of procedure definitions */
%Include(Main);

/* Message routine definitions */
%Include(Message_Initialize, Message, Message_Terminate);

%Subtitle := "Local Procedure Definitions";
%Eject();
definition Main

  variable Mcb is pointer to Stream_Type;

  Mcb := Message_Initialize();
  Message("Hello, world!");
  Message_Terminate(Mcb);
  Mcb := Null;
  
end Main;

See also

  • The System Language for Project SUE, B. L. Clark and J. J. Horning, Computer Systems Research Group and Department of Computer Science, University of Toronto, in Proceedings of the SIGPLAN symposium on Languages for system implementation, 1971, pp. 79-88

References

  1. ^ The System Language for Project SUE, B. L. Clark and J. J. Horning of the Computer Systems Research Group and Department of Computer Science, University of Toronto, Proceedings of the SIGPLAN symposium on Languages for system implementation, 1971, pages 79-88
  2. ^ The System Language for Project SUE, B. L. Clark and J. J. Horning of the Computer Systems Research Group and Department of Computer Science, University of Toronto, Proceedings of the SIGPLAN symposium on Languages for system implementation, 1971, pages 79-88
  3. ^ MTS Volume 2: Public file Descriptions, University of Michigan Computing Center, Ann Arbor, Michigan, 1984, pp. 350.1, 350.2