Experiences in Implementing Postscript
Abstract
This paper describes an implementation of POSTSCRIPT for previewing use on workstations with high resolution bitmapped displays. It discusses implementation of storage management, area fill and line drawing, imaging, fonts and font caching. Treatment of bezier curves and dashing is explained. Area fill involves both the even-odd and non-zero winding number rules, so implementation of both of these using trapezoid decomposition is described. There is also a discussion of an object-oriented implementation of polymorphism in POSTSCRIPT. This results in a flexible and user extensible system. Error handling is discussed, because its implementation has a considerable effect on the design of the virtual machine. Various hints are given on improving performance, including caching fonts on disk, treating thin lines specially and magnifying images. Most displays have only two intensities, so there is some discussion of half-toning for gray level simulation, and the extensive options that POSTSCRIPT supports for half-tone design. Finally there is a brief discussion of porting experiences with the interpreter. It is written in the C language and runs on the UNIX operating system, on Perqs, Suns and WhiteChapels.
BibTeX
@inproceedings {10.2312:egtp.19871002,
booktitle = {EG 1987-Technical Papers},
editor = {},
title = {{Experiences in Implementing Postscript}},
author = {Goswell, Crispin A. A.},
year = {1987},
publisher = {Eurographics Association},
ISSN = {1017-4656},
DOI = {10.2312/egtp.19871002}
}
booktitle = {EG 1987-Technical Papers},
editor = {},
title = {{Experiences in Implementing Postscript}},
author = {Goswell, Crispin A. A.},
year = {1987},
publisher = {Eurographics Association},
ISSN = {1017-4656},
DOI = {10.2312/egtp.19871002}
}