There are a few concepts that you need to know about before we dive
      into the language itself. These concepts are the concepts PostScript uses
      to describe and manipulate images on a page. There are really only a few.
    
    
      - Device Space
 
      
      - This is the coordinate space understood by the printer hardware. This
	coordinate system is typically measured in terms of the device’s resolution.
	There is really nothing else that can be said about this space, as PostScript
	programs are typically not expressed using it.
 
      
      - User Space
 
      
      - This is the coordinate system used by PostScript programs to describe
	the location of points and lines. User space is essentially the same as
	the first quadrant of the standard coordinate system used in high school
	math classes. Point (0, 0) is in the lower left corner. Coordinates are
	real numbers, so there is no set resolution in user space. The interpreter
	automatically converts user space coordinates to device space.
 
      
      - Current Transformation Matrix
 
      
      - The transformation of user space coordinates to device space coordinates
	is done through the current transformation matrix. This matrix is a three
	by three matrix that allows the user to rotate, scale, and translate the
	entire user space within the device space. This is the source of a lot
	of PostScript’s power, as will be demonstrated later.
 
      
      - Path
 
      
      - A path is a collection of (possibly disjoint) line segments and curves
	arranged on the page. The path does not describe actual ink on the paper;
	it merely describes an imaginary tracing over the page. There are operators
	which allow the user to draw ink along the path (stroke),
	fill an enclosed path with ink (fill),
	or clip out all future images that are outside the path (clip).
 
      
      - Current Path
 
      
      - This is the path that the PostScript program is creating at the moment.
	The current path is assembled piece by piece.
 
      
      - Clipping Path
 
      
      - The PostScript rendering system will ignore any part of a line segment,
	curve, or bitmap that extends outside a certain region; it will only draw
	the parts of those elements which are within the region. The region is
	described by a path called the clipping path. The clipping path is usually
	a rectangle about a quarter of an inch in from the edge of the page, but
	it can easily be set by the user to an arbitrary path.
 
      
      - Graphics State
 
      
      - This is a collection of various settings that describe the current
	state of the graphics system. Things like the current path, the current
	font, and the current transformation matrix make up the graphics state.
	Often, a program will need to temporarily save a graphics state to be used
	later. There are a couple of ways of doing this, but the easiest is to
	push the state onto a special graphics state stack and pop it back later.
	This can be accomplished with the gsave,
	and grestore operators.