Source Code for Adobe's PostScript Publicly Released –

Posted under Programming, Technology On By James Steward

Follow Slashdot stories on Twitter

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Still the best way to make your printer dance. Getting a printer that does PostScript, or failing that, putting a rpi or whatever in front that translates PostScript to whatever the printer wants, is the surest way to make sure it not only works, but will keep on working across OS updates and changes.
Quite a ton of restrictions on this release, but probably useful to test against for some other implementation. It’d be nice to have more than ghostscript easily available. It does the job but hoo boy is it un
Quote from the article:
The version of the PostScript source code released to the public by the Computer History Museum is a very early version, dating to late February 1984. While this version does contain an early version of the âoefont hintingâ procedures later kept as a trade secret, these approaches were completely rewritten, expanded, and refined by Bill Paxton in subsequent months. These changes were critical to the success of PostScript as it fully came to market.
Of course, Slashdot renders your post as (roughly, so it doesn’t fuck up my quote of it):
    “the aoefont hintinga procedures”
If you knew enough to use non-breaking spaces, why not also use â ??
    “the âoefont hintingâ procedures”

Because, as mentioned, Slashdot is broken.

Because, as mentioned, Slashdot is broken.
No disagreement. I thought you had manually included the non-breaking spaces. Mea Culpa.
Chasing tornadoes by day, font hinting by night.
No Bill Paxton the genius curmudgeon who went on to create Modules for Experiments in Stellar Astrophysics. []
Full disclosure: Iâ(TM)m a MESA developer, and working with Bill in recent years has been the ride of my life.
About 40 years, back, I was consumed by an interest in FORTH, the very minimal language invented by Charles Moore to control radio telescopes. Like LISP, it can build up very powerful functions in small amounts of code; has the same power LISP has, to review the whole program tree, and self-modify code, (if you must); and is easy and natural to do object-oriented programming in.
I just figured anybody who got good at FORTH would be a demon programmer, the same sales pitch that Y-Combinator’s Paul Graham wrote about LISP, and how the first web app gained huge advantage from being LISP.
Well, anybody who used FORTH much can write the rest, a slow admission that it was hard to write readable code in, was not suited to many problems, and I wandered away from it; needless to say, FORTH did not catch on, though it’s still around, with many fanatics.
Except that PostScript is really just FORTH with a bunch of specific functions for text and graphics presentation; that’s the way of FORTH – every application is just the language extended in ever-more-specific directions, with the final FORTH “word” (function) being “interpret-document”.
A friend once used this to program the drawing of a recursive, space-filling tree graphic in PostScript – a very, very short file that called the recursive program. Then the little computer printer would sit for a friggin’ hour, recursing down the program 20 levels – and suddenly print out a million branches of a tree. (Memory permitting).
Aside from a lot of real-time control uses, and a fair number of application programs from its enthusiasts (mostly electrical engineers, I think), FORTH really hugely changed the world by giving us PostScript.
So, as a frustrated FORTH stan, I’m well contented with that thought.
Speaking of self modifying code, seeing as how postscript is Turing complete, I recall reading through some proof of concept viruses written in postscript. I don’t remember if any postscript viruses became a thing or not.
It would be more accurate to say that Postscript malware exists, but viruses are almost impossible (or impractical) due to the nature and inherent limitations of most Postscript systems. Postscript contains no facility for accessing a network from code, for example, dramatically limiting its ability to autonomously spread over wide areas. Most Postscript devices contain no significant permanent storage; power cycling a printer returns it to baseline. Postscript programs are designed to be written to the device, one byte at a time, in sequence –there is no inherent need for bi-directional communication with the code transmitting the program, and often no bi-directional communication whatsoever, so there is little danger of code “leaking” from the Postscript program back into an external executable context.
Of course there are exceptions to these statements. Some Postscript interpreters, including Ghostscript, extend the language to add features that Adobe never found necessary. Some industrial devices include hard drives for long-term storage. But the vast majority of Postscript devices – small scale laser printers in homes and offices – adhere to the statements above.
To my knowledge, nothing that you would recognize or define as a virus has ever been widely deployed in Postscript. What malware has existed has taken advantage of systems external to Postscript; for example, whatever interface a printer manufacturer creates to accept Postscript jobs via a network. As a result, Postscript devices were just never attractive targets to create mischief any more sophisticated than overlaying your printed pages with the word “FART” in 48pt Helvetica Bold. πŸ™‚
I found Project Zero’s writeup of a PDF-based zero click iMessage exploit to be fascinating reading. Whoever created this exploit used the functions of an image decoding algorithm buried deep in a PDF parser to create a virtual machine. [] []
we had fractals rendering code in poststript, that would take days to run in your average HP printer, locking it up for a while

About 40 years, back, I was consumed by an interest in FORTH…

About 40 years, back, I was consumed by an interest in FORTH…
Shut up and subscribe me to your newsletter.
Heh, don’t tempt me. There’s still a “GForth” out there, free, that is quite an impressive one.
I picked it up after re-reading the old novel I will gift you with knowledge of, though good luck in the used bookstores. “Wizard’s Bane” by Rick Cook, 1980s, hauled out the now-old trope of a programmer teleported to a swords-and-sorcery universe, where magic is impossibly hard to learn: long strings of syllables and gestures that will kill you if you get a phoneme wrong. Our Hero discovers that he can cast
Well told. The punchline got me.
I see some physical copies available on Abebooks, but check this out: []. That page also links to his blog ( []), which was last updated in 2017. Apparently, there were four sequels.
He knew that, but he just didn’t want to talk about the FORTH one.
(sorry, I’ll see myself out…)
I like FORTH. The snag is that it was really designed for tiny computers, which is much of the reason for its compactness, not just in code but in syntax and number of characters to do stuff, the near universal style keeping keeping most word s(ie, functions) very short, with one-liners of 64 chars max being preferred. Any code bigger than a 64×16 page was deemed too big and needed to be split up. And if you needed assembler, you wrote that in FORTH too in its postfix style.
I also found that the short bi
Conciseness before Twitter was cool.
I find it just plain weird that Adobe has repeatedly denied that PS is in any way a flavor of FORTH or based on FORTH.
Time to bring PS back to NeXTStep.
Back in the day one of my demos was the Towers of Hanoi in PostScript. Feed a file to the printer that ends in something like “4 (s) (i) (d) Hanoi showpage”, it thinks for a few seconds, then prints a page with the moves on it.
FORTH gave forth some other applications; somewhere I think I still have a commercial 2D CAD program written in it that I bought for my 8086 PC. It performed fine for the limited range of stuff I did on it (mainly planning a new porch.; shame it wasn’t a new Porsche πŸ™‚ ). I tried a bit of FORTH programming and was mightily impressed by the power, but worried about the fragility of the resulting stack (a bug at the bottom would create havoc) and pretty unreadable code (and I know about that, having spent s
Probably. Reminds me when our Tectronix Phaser could not print my PostScript code bach when I was a PhD student. Tectronix was very cool though, I sent them the PS code and a description of the problem and a few weeks later we had a firmware update that could deal with my stuff.
Available under the GPL for 34 years now. Except for the fonts it is basically identical. Fonts are not secret though, anybody can read them, some just require a license to get them.
Adobe’s Postscript implementation (at least, the modern one) is still the reference implementation. If you look through the Ghostscript bug database, you’ll find a lot of references to “Distiller does it this way and Ghostscript doesn’t”.
This is very old source that you can’t redistribute anyway
I’m curious – what do you need the additional precision for?
PostScript offers a ton of control, but it was categorically the worst thing I’ve ever had to learn language-wise. It did, however, get the job done when no one else in the company thought the job was possible. My boss said to me afterwards, “See how smart I was to hire you?” (He was being tongue-in-cheek – he really wasn’t full of himself at all).
Given a PDF that would later be printed, insert a tracking barcode that our usual processes could not manage themselves. I ripped the PDF down to PS, made the necessary edits to insert the barcode at the proper place on every page, and then regenerated the PDF. And make this happen fast, for a regular monthly process for all customer invoices.
Obviously GhostScript was a massive figure in that success too. But I did not enjoy working with PS, aside from the satisfaction of solving the problem.
Our organisation had an internal directory of about 150 people. It was maintained by an admin assistant in a Word document(!). This was 2007 or 2008, but they were still on Office 97.
I setup a mySQL database and some JavaScript forms and had the nice admin assistant enter the contents of the directory via the intranet/browser. She was grateful to know, if not sceptical at first, that this would be the last time she had to deal with updating the directory.
Once the db was populated I ran up some VBA code/ma
Adobe switched their focus to PDF more than 20 years ago and considers PostScript a bit of a dead technology. I program in PS and I’ve never met another soul who was doing the same.
I had a job once to take a postscript printer/typesetter file and reconstitute the original document. It was a technical dictionary that had accidentally been deleted with no backup. It wasn’t that hard, thank goodness. I did the entire job on a UNIX-based PC in AWK. Obscurity can be lucrative. πŸ˜‰
Don has been digging into PostScript since before you were born. He’s an interesting guy and he mastered the language perhaps better than anyone. But he is eccentric as you will see at this web site… []
Here’s an excerpt from the site:
“I have long been overly enameled with the PostScript Language from Adobe Systems. While an amazingly flexible and totally general purpose computer language, PostScript excells at world class fonts and typography.
But little appreciated is PostScript’s ability to handle most any technical math or engineering illustrations task, as well as being able to be taught to read or write most any disk file in any language.”
Lancaster can outgeek anyone here, I suspect.
Sorry, it had to be said.
There may be more comments in this discussion. Without JavaScript enabled, you might want to turn on Classic Discussion System in your preferences instead.
Can a ‘Virtual’ Manual Transmission Bring the Stick Shift to Electric Cars?
Google’s Dart Programming Language Soon Won’t Take ‘Null’ For an Answer
Multics is security spelled sideways.


Note that any programming tips and code writing requires some knowledge of computer programming. Please, be careful if you do not know what you are doing…

Leave a Reply