The A-Z of Programming Languages: Shakespeare

Jon Aslund and Karl Wiberg open up about the all-nighter they pulled to create their programming language, Shakespeare

How have you contributed to Shakespeare since it was first written?

K: Jon and I released a few bug-fix releases of our SPL compiler through the end of 2001, and then we were done. (If you aren't a programmer, it may be hard to appreciate just how impressive this is. Most programs aren't ever finished---just look at the endless stream of new versions of Microsoft Windows, for example, each new version released because the last one wasn't good enough. And Google is forever revising its search ranking algorithm.)

Others have built their own SPL compilers and interpreters, but we can't claim to have made significant contributions there without risking being accused of trying to take credit for other people's work, and we'd never do that.

What has the language been used for — has it found any rea-world applications?

K: The thing I've seen that impressed me the most was an SPL program enacted by humans, a video of which featured in an introductory presentation at HOPL-III ACM's third History of Programming Languages conference, San Diego 2007 by Guy Steele and Richard P. Gabriel.

But really, the answers are "not much" and "no"; being an esoteric language, it's basically just an interesting design experiment for people interested in programming languages. Its place isn't to be useful, but to encourage interest in programming language design, and to serve as a success story for others to try and emulate.

J: I remember that we got mail from Dr. David S. Touretzky who maintains a gallery of DeCSS implementations — software used to decrypt DVDs.

He asked us if we could write a Shakespeare Programming Language example that implemented DeCSS. A performance of that code would then be protected under free speech and could possibly be exported to other countries.

Being Turing complete, it would work, but it would be a very long and boring play. If our language had the concept of arrays and better loop constructs it could have been much simpler. We thought about adding it to a new version of SPL, but I think time got in the way and then we forgot about it.

Do you think that new modules and record formats will ever be added on to the language and how likely do you think this is to happen?

K: Conceivably, someone playing with the language could add new features to their implementation, but I think that would classify as an improved derivative. At this point, the language spec is written in stone and can't be changed, kind of like how you can't change a published book — because people simply expect it to be static, so that even if you as the original author make a substantial revision, they'll keep using the old name to refer to the original, and call your new version something else.

So would you have done anything different in the development of Shakespeare if you had the chance?

K: No, I don't think so.

Have many students learnt Shakespeare?

K: I doubt it's in any curriculum, if that's what you mean. But I suspect students are well represented among those who've learnt Shakespeare.

Have you personally taught Shakespeare to students?

K: No.

What are you proudest of in terms of the development of the language and its use?

K: That people seem to appreciate our work!

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags a-z of programming languagesprogramming

More about ABGoogleMATLABMicrosoftRoyal Institute of TechnologyTechnology

Show Comments