Postscript is a page description language developed by Xerox PARC, and then Adobe systems, with the goal of providing a portable format that would use the best features of every system. It is a block structured procedural language, very similar to Forth. Each postscript document is a computer program that when run, produces the printed pages of the document. Originally Adobe Systems intended for postscript documents to be fully portable between different printing devices, but some other computer companies insisted on including machine language routines in the documents produced by their systems, so the portability between different printers was lost. In response, Adobe created the PDF format, which allows formatting to be tightly controlled on web and printed pages, but requires a special PDF viewer.