18.1. Standards   

Standards in languages are very necessary.


ANSI standard DIN. etc.
Fortran IV was standardised in 1966
Fortran 77 was standardised in 1977

Standards aid in transportability, modifiability, readability

Graphics packages have been standardised but not as rigourously.


Plot-10, Plot-50, Calcomp (with no start, no enplot).
Need exact, well defined standard to allow production of graphics
software that is transportable.

What is standard aimed at? 2-D, 3-D, CAD/CAM, Solid modelling, teletext. The production?, storage?, transmission? of graphical information.

G.K.S.:
"Main objective of G.K.S. is the production and manipulation of pictures in a way that does not depend on computer or graphical device used". These pictures are 2-D.

GKS arose (slowly) out of he need for a responsive graphics standard. It grew through many committee meetings (discussing such things as 2-D vs 3-D, current position vs no current position, how should locator data from a viewport be returned to the user), came to fruition as ISO/Draft International standard 7942 = GKS 7.2 in March 1983.

(Many manufacturers had assumed that the ACM Core would be the standard and developed packages appropriately: some still do not accept G.K.S.). There are many other standardised packages such as GINO-F, PLOT-10, ACM core but GKS is to be the standard.

Of equal importance is the way in which the concepts of GKS are implemented in a particular language - this is called the binding of the standard to a language.

(1)
Fortran has a binding.

(2)
C has a preliminary binding.

(3)
A binding for Pascal is under way.

Straightforward implementation is restricted by the features (or lack thereof) of a language: i.e. the polyline primitive of GKS is implemented in F77 as a 3 letter subroutine GPL and the SET CHARACTER EXPANSION FACTOR is GSCHXP.

(Polyline has 3 parameters n = number of points in array, and X,Y = two arrays containing the points defining the n-1 line segments. Since X,Y are variable sized arrays, how do we declare polyline in Pascal?).