3 ms·
PostScript really is a lovely programming language. Some 20 years ago, I used a development environment (PSAlter) that made it quite palatable -- visualising di
by tilt_error 10y ago
PostScript really is a lovely programming language. Some 20 years ago, I used a development environment (PSAlter) that made it quite palatable -- visualising dictionaries and stacks -- and made it possible to step through programs.
There exists a nice free e-book describing PostScript (Thinking in PostScript by Glenn C. Reid) [1].
[1] https://web.archive.org/web/20000914161447/http://www.rightbrain.com/download/books/ThinkingInPostScript.pdf https://web.archive.org/web/20000914161447/http://www.rightb...
EDIT
While looking for the Thinking in PostScript book mentioned above, I stumbled upon this legal online archive for books on the net [2] which may be of interest to others.
[2] http://onlinebooks.library.upenn.edu http://onlinebooks.library.upenn.edu
- tonyedgecombe 10y agoPSAlter is still available: http://www.quite.com/psalter/psalter.htm#order http://www.quite.com/psalter/psalter.htm#order
- DonHopkins 10y agoThat's very cool! I'd like to see more about how the debugger works. Are there any video demos available, please? I love Glenn Reid's book, Thinking PostScript. It's like the Thinking Forth [1] of PostScript! ;) I always thought of PostScript as a cross between Lisp and Forth [2], but more in the Lisp camp, since it's so easy to write a metacircular evaluator [3] or a quine [4] in PostScript: {{[ exch /dup load /exec load ] cvx} dup exec} Do you remember Glenn Reid's "Distillery" [5]? It's a PostScript program that optimized other PostScript programs, which you prepended before your PostScript print file, sent to a printer, and it partially evaluated the PostScript code in the print file. It then echoed back another highly optimized flat PostScript program that printed the exact same pages, all in one coordinate system, with superfluous graphics state changes removed. That glorious hack, based on John Warnock's idea of redefining the imaging operators, eventually evolved into PDF! [6] Glenn also wrote a delightful "Font Appreciation" app for NeXT called TouchType [7], which decades later has only recently found its way into Photoshop. I wrote a visual interactive PostScript debugging tool for NeWS called the PSIBER Space Deck [8], and the PseudoScientific Visualizer [9] for drawing PostScript data structures like NeWS object and class dictionaries or a network map of ARPANET IMPs, and a paper [10] about them. It was most useful for debugging itself, which was fortunate, since it was pretty buggy. I integrated the metacircular PostScript evaluator with the debugger, so you could single step through PostScript code, and draw graphics to visualize the program execution state. And I made my own NeWS distillery [11] "in the spirit of Glenn Reid's Distillery" ;), for making flat printable PostScript dumps of anything procedurally drawn on the screen, which I used for some of the illustrations in the paper [12]. [1] Thinking Forth: http://thinking-forth.sourceforge.net/ http://thinking-forth.sourceforge.net/ [2] PostScript -vs- Forth: http://donhopkins.com/home/code/ps-vs-forth.txt http://donhopkins.com/home/code/ps-vs-forth.txt [3] PostScript Metacircular Evaluator: http://donhopkins.com/home/code/ps.ps.txt http://donhopkins.com/home/code/ps.ps.txt [4] PostScript Quine: http://donhopkins.com/home/archive/news-tape/fun/quine/quine http://donhopkins.com/home/archive/news-tape/fun/quine/quine [5] Glenn Reid's PostScript Distillery: http://donhopkins.com/home/archive/postscript/newerstill.ps.txt http://donhopkins.com/home/archive/postscript/newerstill.ps.... [6] The Distiller Story: http://blogs.adobe.com/insidepdf/2007/11/the_distiller_story.html http://blogs.adobe.com/insidepdf/2007/11/the_distiller_story... [7] TouchType: https://ftp.nice.ch/peanuts/GeneralData/Usenet/news/1990/_CSN-90/comp-sys-next/1990/Jul/_BaNG-%234-meeting-review.html https://ftp.nice.ch/peanuts/GeneralData/Usenet/news/1990/_CS... [8] PSIBER Space Deck Demo: https://www.youtube.com/watch?v=iuC_DDgQmsM https://www.youtube.com/watch?v=iuC_DDgQmsM [9] Pseudo Scientific Visualizer Demo: https://www.youtube.com/watch?v=_fqCeuue5Ac https://www.youtube.com/watch?v=_fqCeuue5Ac [10] The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines: http://www.donhopkins.com/drupal/node/97 http://www.donhopkins.com/drupal/node/97 [11] NeWS Distillery: http://donhopkins.com/home/archive/news-tape/utilities/cyber/distill.ps.txt http://donhopkins.com/home/archive/news-tape/utilities/cyber... [12] Distilled PostScript PseudoScientific Visualization of Arpanet IMPS: http://donhopkins.com/home/archive/news-tape/documents/psiber/10.ps.txt http://donhopkins.com/home/archive/news-tape/documents/psibe...