Received in email from Donald Knuth’s secretary:
I know from your blog that you’re doing lots of real important stuff these days. So I’m sure you want a break; you clearly must be ready to hack INTERCAL just once more.
Huh…Donald Knuth reads my blog?
Um…Donald Knuth reads my blog?
Wha…Donald Knuth reads my blog?
Eric clutches the nearest piece of furniture as the universe spins dizzily around him.
Eric successfully resists a vague feeling that he ought to fall to his knees and cry out “I’m not worthy!”
Er. Well then. I guess I’ll have to ship another release of INTERCAL, won’t I?
Eric, you’re right: you’re not worthy. But we like you anyways, which is why we’ll cheerfully remind you that you’re not worthy.
This is gonna be awesome!
Here are some ideas off the top of my head, dunno if they are suitably “INTERCALactic” or not:
*Bitwise regular expressions/glob matching
*Array indexes can start at 0.5
*A sort of switch statement where fallthrough is mandatory (and loops back up to the top,) and you can only break out by guessing a “magic number” (each guess is somehow answered with “too high” or “too low.”)
Why not? You’re entertaining, often informative, and sometimes insightful. Still, he is Donald Knuth, and well, you’re probably not worthy. ;)
I still want to build and ship a turnkey CD-ROM of Hercules, OS/360, SPITBOL, and the original INTERCAL, just so devotees can finally experience the original firsthand. At this point, I’d be willing to key in the original SPITBOL code by hand if that’s what it took to get it running.
Haha…
The Godfather of Computing Science has made a request you cannot refuse
Maybe he’s full of shit.
Eric, indeed you shall. And perhaps we can discuss other projects related to same to coincide with said release.
And I can neither confirm nor deny that those other projects were in any way, shape or form, an influence on Professor Knuth.
Are you thinking of reimplementing it in MIX?
Yah, well, I think I will write a book on random numbers. C? Nah. Algol? Don’t think so. Pascal? Too easy. Oh, I know, I will invent a completely new arbitrary assembly language. That should make things clear!
But wait: this book looks like hell. I know, I will make a completely new and arbitrary typsetting language. Awesome, that should only take me ten years.
Hold on, it is too hard to explain my great new typesetting program using Microsoft Word. And commenting my code is just to passe. So I am going to invent a completely new and arbitrary way of writing and documenting code.
But wait. These fonts look terrible! Why don’t I invent new and arbitrary fonts for my book. But how do I define the fonts? Oh yeah, I will invent a new and arbitrary language for defining fonts.
Finally! Now I can write a book about sorting. (Oh, and while I am at it I am going to reinvent another new and arbitrary assembly language just to keep everyone on their toes.)
Oh, hold on, this metric system is way to simple. I gotta invent a replacement for that too.
Ah, the joys of the meanderings of academia.
The Art of Computer Programming: every programming shop should have a copy, even though only ten people in the world have ever managed to get past page 20.
Jessica fades away to the sound of pipe organ music.
Dude, you have written at least two books (that I have read) and possibly more. I have never read any of Knuth’s books, so I am forced to consider this hypothesis:
You might be worthy.
Of course, it’s only a hypothesis.
Honestly, that sounds like a procrastination pyramid scheme: you work on something useful as a way of procrastinating on something big and important. Knuth went on a detour to create TeX, and ended up creating a classic clump of software and writing at least six books in the process.
I bow in reverent awe before the two comments previous to this one, from “v. m. smith” and Jessica Boxer.
These achieve a quality level of geek humor seldom witnessed by mortals.
I suspect I’m going to be breaking out in helpless giggles at random intervals for the next two weeks, every time the phrase “Of course, it’s only a hypothesis” floats back into my consciousness.
Come on, there has to be some way to graft sendmail and INTERCAL together. I’m rooting for you.
Believe it or not, I’ve actually read volumes 1-3 of The Art of Computer Programming cover-to-cover, and spent more time pouring over the sections on floating point arithmetic than I care to think about. I won’t claim to have been able to keep up with the math in all places, but all of the practical exercises were useful.
Preliminary bitwise regexp idea:
http://pastebin.com/uBQqzj75
(I mostly just wrote this for my own entertainment.)
Jessica Boxer Says:
July 20th, 2010 at 9:48 pm
“Oh, hold on, this metric system is way to simple. I gotta invent a replacement for that too.”
Metric is outdated. Modern is binary, as in English measures:
mouthful = ½oz.
pony = 1oz.
jack = 2oz.
gill = 4oz.
cup = 8oz.
pint = 16oz
quart = 32oz.
pottle = 64oz.
gallon= 128oz.
peck = 2 gal.
pail =. 4gal.
bushel = 8gal.
strike = 16gal.
barrel = 32gal.
hogshead = 64gal.
butt = 128 gal.
tun = 256gal. or 1 ton (2048 lbs.; which jibes with field observations at fast food joints that two butts equals a tun.)
cheers
@Jessica Boxer:
There’s someone else around here who has knack for developing completely new and arbitrary languages — well, mini languages anyway….I wonder who his influences were… ;)
>I wonder who his influences were… ;)
I admit nothing. I deny everything.
I’m finishing up “Literate Programming.” I can’t help but notice the various differences between Knuth and Dijkstra. But I have to agree with the consensus: Knuth is one of the greats. Even if I don’t use TeX.
You mean sendmail.cf isn’t written in INTERCAL?
>You mean sendmail.cf isn’t written in INTERCAL?
Coincidentally, I once took a shot at rewriting sendmail.cf’s config language with a sane design.
I got as far as a working patch that isolated the config parser from the rest of the code, communicating only through a big struct containing all config parameters. The idea was that once that was merged, it would be possible to rewrite the config language without disturbing the rest of the code. A side effect was that the sendmail config parser could be moved out of the sendmail daemon itself, reducing the daemon’s core footprint; the configurator dropped a copy of the structure as a binary file and the daemon could initialize fast by reading it. This patch would have been a good refactoring step even if the final decision was not to change the language.
The patch worked, and Eric Allman (who had invited me to work on the problem) liked the idea, but the guy who was leading the 8.13 rewrite never merged the patch and never explained why. In fact I never got him to respond to the patch at all. Frustrating.
“Wait, if this patch gets folded in, someone ELSE will be able to maintain this! There goes my job security!”
*cough* Ahem.
>“Wait, if this patch gets folded in, someone ELSE will be able to maintain this! There goes my job security!â€
Ken, people as deep inside the hacker culture as the sendmail maintainers just don’t think that way. We take it for granted that there will always be a next problem that needs us. We generally look forward to making our code maintainable by others so we can move on to that next problem.
What? Nothing from Tony Hoare’s secretary?
esr Says:
> I admit nothing. I deny everything.
I see. That’s how it’s going to be, then.
FOOL! You admit that you admit nothing? I admit that you deny that you admit nothing! Vee havv vays ov vaking you TALK, Yankee!
Visual Web n.0 Intercal. The COME FROM statement will not transfer control across intervening text unless both the COME FROM and the “target” (yes, I know the proper technical term is something like “implicative condrutionary demosubjunct”, but I don’t have my documentation handy) are set in at least as impactful a font as the intervening text. The heuristic rules used to resolve which fonts are most impactful are kept up to date on the fly by checking the pages with the highest Google rank.
Interesting. Was this something that came out of the blue, or did you write to his secretary? Any chance of publishing the full mail to make sure this isn’t a hoax?
I had to read the very dusty tome he co-wrote with Edgar Dijkstra called “Structured Programming” in college (why, I have no idea). Let’s just say that Knuth’s books are far more interesting.
@William Newman, So how is the blink-tag going to affect a COME FROM in Visual Web n.0 Intercal? Or is the use of the blink-tag an automatic Heisenbug?
@William N, Craig T:
Isn’t visual markup passe nowadays? Clearly the answer is to replace outdated plain ASCII text source files with XML and associated style-sheets.
Awesome, new Intercat weirdness! How about this “feature””?:
* KINDLY PROCEED
On the Nth evaluation of ‘KINDLY PROCEED’ control is transferred to line number M, where M is the Nth Fibonnaci number, where the the sequence is assumed to begin with the line number of the KINDLY PROCEED statement and that number +1. The current value of M is stored in a special variable which, of course, is not accessible to the program, only to the compiler (i.e., you can’t check its value). Each ‘KINDLY PROCEED’ line has its own separate instance of this variable.
If a KINDLY PROCEED attempts to transfer control to a line beyond the end of the program, the behavior is openly hostile.
Examples:
On first, second, and third evaluation, a KINDLY PROCEED command on the first line of the program would transfer control to lines 3, 5, and 8 respectively.
On first, second, and third evaluation, a KINDLY PROCEED command on the fifth line of the program would transfer control to lines 11, 17, and 28 respectively.
On first, second, and third evaluation, a KINDLY PROCEED command on the tenth line of the program would transfer control to lines 21, 32, and 53 respectively.
>I know from your blog that you’re doing lots of real important stuff these days. So I’m sure you want a break; you clearly must be ready to hack INTERCAL just once more.
Hmm, I would have read this as a fairly snarky criticism rather than a compliment, not just of the bugs in INTERCAL but of the general importance of your recent output. Maybe you know that though, and you’re publicly taking it as a compliment in order to mess with him. At least I *hope* that’s what’s happening here.
Dijkstra’s “A Discipline of Programming” is a very good read.
Any chance of creating something akin to the bastard child of INTERCAL and LOLCODE? :)
/ducks
INTERLOL? LOLTERCODE? LOLCAL? hmmmm….LO-CAL. I could be one of those ‘lite’ languages. :-P
Knuth is indeed a wise man:
http://www-cs-faculty.stanford.edu/~uno/iaq.html
That page has me seriously questioning his wisdom outside of the world of computing. He may well be in the same class as Paul Krugman: Nobel-class genius in his field of specialty, hopelessly naive doddering idiot outside it, and unable to see the boundary between the two.
> In fact I never got him to respond to the patch at all.
It would be rude to suggest that his reply(ies) to you went into the interbucketz because his sendmail config had gotten borked, so I shan’t do so.
KINDLY PROCEED sounds like it shares some anarcholinguistic heritage with BCPL#’s WHITHER GOEST statement.
I suggest getting into the twenty-first century with Object Oriented Intercal!
Isn’t that C#?
> Hold on, it is too hard to explain my great new typesetting program using
> Microsoft Word. And commenting my code is just to passe. So I am going
> to invent a completely new and arbitrary way of writing and documenting code.
Wait! Wait! Literate Programming came _after_ MSWord?
# mjg Says:
> Knuth is indeed a wise man:
> http://www-cs-faculty.stanford.edu/~uno/iaq.html
This page is clearly incorrect on its face. These six questions are not infrequently asked. In fact, on the contrary, they may be the most frequently asked questions in America today.
FWIW, I think they are good questions. I think they are questions everyone should think about. And I think there are some that have reasonably good answers.
However, I also agree with Jay. Genius in one field is no guarantee of non-stupidity in an unrelated field. The examples of that are replete, though I am not sure I agree that this is an example of it.
# Bruce H. Says:
> Wait! Wait! Literate Programming came _after_ MSWord?
OK grant me a little artistic license.
I suppose you would want the Artistic License if you wrote an INTERCAL interpreter in Perl.
Actually, yes. Microsoft Word for Windows was first released in 1989, while Knuth’s Literate Programming came out in 1992. Jessica actually needs no artistic license.