PIGLI(ID:5647/pig002)


for Portable Interactive Graphics Language Interpreter


Related languages
ESP³ => PIGLI   Evolution of

References:
  • Neal, M. Catherine and Shapiro, Linda G. "A Portable Graphics system for minicomputers" pp704-712 view details Abstract: PIGLI (Portable Interactive Graphics Language Interpreter) is a high-level interactive graphics system implemented on an INTERDATA 8/32 minicomputer. PIGLI is written in sequential PASCAL and executes under the SOLO operating system, which is written in concurrent PASCAL and has been shown to be highly portable. This paper describes the major features of the PIGLI system including interactive programming commands, flexible hierarchic picture generation, referencing functions, query commands, exec files, and device independent output commands. In addition, the paper discusses the program design and its relationship to operating system and space considerations. Extract: Description
    2. Features of the PIGLI System
    The PIGLI system was designed to be general purpose and to provide a variety of high-level features for the user. In this section we describe the important features of the system. The PIGLI command language (Appendix A) provides a set of graphics and programming commands. The syntax and semantics of the commands are simple but robust. The non-programmer user can create a large variety of pictures with the graphics commands alone. The experienced programmer can use the interactive programming commands including declaration statements for real and integer variables, arithmetic assignment statements, if-then-else statements, while-do statements, and begin-end blocks to create complex repeating patterns. Many of the older graphics systems provided programming capabilities with graphic support. PIGLI was designed to provide graphics capabilities with programming support. Since all PIGLI commands are interactive, the system is well suited for a minicomputer environment.

    A natural method for creating complex pictures is to begin with simple primitive pictures and combine them to form bigger pictures. In the PIGLI system pictures are generated hierarchically from a set of primitives including straight lines, curved lines, circles, arcs, and figures (connected straight lines). Each primitive has a set of attributes that may be used in drawing the primitive. For instance, the start point, end point, midpoint, length, and angle are attributes of a straight line. The user can create an instance of a primitive by stating its name and the values to be assigned to some of its attributes.

    [...]

    Once a user has created one or more pictures, he or she will want to display them and alter or move them. In order to alter, move, or transform pictures, the user must be able to reference them. The PIGLI system allows the user to name any picture at any level of complexity. A set of built-in referencing functions allows the user access to the values of the attributes of any named picture. The values retrieved by these referencing functions may be used in the graphics commands or the programming commands. Thus the user does not have to constantly recalculate placement points, lengths, and angles, but can instead use the referencing functions to define them relative to a previously defined picture. PIGLI also provides display, erase, and clipping commands and the standard transformations.

    One of the desirable features of an interactive language is the ability to query the picture data structure to recall information processed earlier in a programming session. The LIST command is used for retrieving this information. There are several variations of LIST designed to retrieve different types of desired information. The simple command "LIST" retrieves and displays on the programming console all the symbol table entries which are the names of pictures. The command "LIST SCREEN" retrieves the identifiers that name the pictures that are currently visible on the graphics display device. The command "LIST (primitive or transform)" returns the identifiers of all the picture elements of the desired type. The command "LIST DEF (picture identifier)" retrieves information about the definition of the picture named by the picture identifier. Using these commands, the programmer may retrace the structure of any picture that has been defined.

    Another feature that is desirable in an interactive language is the ability to construct and access files of commands which perform tasks that are needed frequently or tasks that are tedious. For special implementations these exec files can also be used to increase the number of picture primitives. The PIGLI system allows the user to create an exec file from an ongoing PIGLI programming session and to invoke a previously created exec file any time during a console session.

    Extract: Introduction
    1. Introduction
    The typical user of an interactive graphics system is concerned mainly with the pictures he or she can create and manipulate. Such a user does not want to learn the control language of the host computer and certainly does not want to have anything to do with its operating system. The user'should be aware of the possibility of using several different display devices, but would rather not have to know how they work. The user may know that pictures are represented by data structures, but he or she should not have to know the internal form of these structures. Thus a graphics system should provide for the user a high-level view of a system for creating and manipulating pictures.

    PIGLI (Portable Interactive Graphics Language Interpreter) is a high-level interactive graphics system implemented on an INTERDATA 8/32 minicomputer. The PIGLI command language allows the programmer to construct two-dimensional line drawings in terms of picture primitives, to apply transformations to existing pictures, and to display pictures and text on a variety of graphics devices. The language also includes general purpose programming commands including type declarations for real or integer variables, assignment statements, IF-THEN-ELSE statements, DO-WHILE statements, and BEGIN-END blocks. Another useful feature is the ability to access external files of PIGLI commands to perform tedious or frequently needed tasks, as well as to accept commands interactively from a console device. PIGLI  also provides a general purpose debugging command.

    […]

    The PIGLI system described in this paper provides a small, but complete interactive graphics programming language. PIGLI is implemented as an interpreter written in sequential PASCAL. It executes in the environment created by the SOLO operating system which is written entirely in concurrent PASCAL and executes as a user task under the 0S/32-MT operating system on an INTERDATA 8/32 minicomputer at Kansas State University. This paper describes the capabilities of PIGLI and its interaction with the operating system.  Section 2 describes the major features of the language, section 3 provides a sample terminal session, and section 4 discusses operating system considerations. Extract: Description
    Historically SKETCHPAD (Sutherland) was the first widely recognized general purpose graphics system. The SKETCHPAD system consists of a collection of subroutines called interactively through a menu selection process. The system allows pictures to be constructed hierarchically from other pictures and is noted for its use of a ring data structure to store picture descriptions. Kulsrud, Williams, and Giloi presented models for the definition of a general purpose graphics language, Kulsrud suggested that the first version of the proposed language have written commands and that it later be adjusted to accept input from graphics devices such as light pens and trackballs. The language she described was capable of picture description, manipulation, and analysis. Although it could be used with interactive applications programs, it was not an interactive language. Williams described a language that provided (i) data types with related operations particularly suited to graphical applications, and (2) the ability to add new data types and operations. For example, a "point,' could be a data type, and a specially defined addition operator would operate on that data type. The language was thus highly extensible, but it was not interactive. Giloi proposed a model to be used in constructing either subroutine packages for graphic display applications or graphical extensions to existing  languages. In this model, pictures were described as a hierarchy of subpictures and picture primitives. Primitives were defined as anything for which there was a hardware generator in the display processor, placing limits on the device independence  of a language developed from his model. An interactive version of the model was developed by extending APL to include graphics capabilities, and a non-interactive version was developed as a FORTRAN subroutine package.

    The general purpose graphics systems presented in recent years can be classified as (i) subroutine packages for graphics applications, (2) graphics extensions to existing languages, and (3) new languages possessing graphics capabilities. Graphics subroutine packages are most widely distributed particularly by manufacturers of graphics display hardware. Some example packages are GINO-F, GPGS, GRAF, DISSPLA, and EXPLOR. Most packages are limited to the manipulation of picture displays with few programming control or storage capabilities. Where such abilities are available they often serve specialized purposes as in WAVE, a package for waveform analysis. One exception is the VIP system where the user is able to combine the available system function subroutines into special purpose functions which can then be used in the same way that the original system functions were used.

    Extensions of an existing language such as Euler-G, IMAGE, APLBAGS, APLG, and PENCIL, provide a programmer with graphics capabilities as well as general programming features. Euler-G has excellent data structure definition facilities. IMAGE, an extension of FORTRAN, cannot  provide the data structure description capabilities  that are available in Euler-G, but it has the advantage of being based on the most widely distributed host language available. APLBAGS, APLG, and PENCIL, an extension of the MULTILANG on-line programming system, are truly conversational languages. GRASP, a PL/I extension, is a compiled language but it allows dynamic interaction. GRASP also allows the definition of models from which complex pictures can be created hierarchically. ESP3, an extension of SNOBOL4, is a non-interactive language  from which many of the high-level concepts found in PIGLI are drawn. Language extensions are found mainly in experimental installations. Two complete graphics languages are METAVISU and GLIDE. Both take characteristics from a base language (PL/I and ALGOL, respectively) and add capabilities for defining, displaying, and manipulating pictures. Full languages are less widely distributed than subroutine packages or language extensions.


          in Proceedings of the 1978 annual conference 1978, Washington, D.C., United States view details