Slashdot Mirror


The Shakespeare Programming Language

Erik Tjernlund writes: "Oh, where art thou my lovely new programming language? Stop fiddling around with those perl magnets and use a real poetic computer language: The Shakespeare Programming Language. Not a compiler, but it converts to C. Cool 100+ line Hello World example. Amazing what CompSci-students can create when they really should do real work."

42 of 148 comments (clear)

  1. snort by wrinkledshirt · · Score: 4, Funny

    combines the best features of BASIC, assembly language, and Hamlet.

    Let me guess. It takes three long, boring hours to figure out (2b | !2b)?

    --

    --------
    Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...

    1. Re:snort by GiMP · · Score: 3, Informative

      That would be (0x2b || !0x2b) or (toB || !toB)..

      Variables cannot start with numbers, and | is a bitwise OR operation.. which is OK but you probably wouldn't want that in this example.

  2. Hello world by jedwards · · Score: 2, Offtopic

    Site is dying fast - here's the only thing anyone cares about ...

    The Infamous Hello World Program.

    Romeo, a young man with a remarkable patience.
    Juliet, a likewise young woman of remarkable grace.
    Ophelia, a remarkable woman much in dispute with Hamlet.
    Hamlet, the flatterer of Andersen Insulting A/S.

    Act I: Hamlet's insults and flattery.

    Scene I: The insulting of Romeo.

    [Enter Hamlet and Romeo]

    Hamlet:
    You lying stupid fatherless big smelly half-witted coward!
    You are as stupid as the difference between a handsome rich brave
    hero and thyself! Speak your mind!

    You are as brave as the sum of your fat little stuffed misused dusty
    old rotten codpiece and a beautiful fair warm peaceful sunny summer's
    day. You are as healthy as the difference between the sum of the
    sweetest reddest rose and my father and yourself! Speak your mind!

    You are as cowardly as the sum of yourself and the difference
    between a big mighty proud kingdom and a horse. Speak your mind.

    Speak your mind!

    [Exit Romeo]

    Scene II: The praising of Juliet.

    [Enter Juliet]

    Hamlet:
    Thou art as sweet as the sum of the sum of Romeo and his horse and his
    black cat! Speak thy mind!

    [Exit Juliet]

    Scene III: The praising of Ophelia.

    [Enter Ophelia]

    Hamlet:
    Thou art as lovely as the product of a large rural town and my amazing
    bottomless embroidered purse. Speak thy mind!

    Thou art as loving as the product of the bluest clearest sweetest sky
    and the sum of a squirrel and a white horse. Thou art as beautiful as
    the difference between Juliet and thyself. Speak thy mind!

    [Exeunt Ophelia and Hamlet]

    Act II: Behind Hamlet's back.

    Scene I: Romeo and Juliet's conversation.

    [Enter Romeo and Juliet]

    Romeo:
    Speak your mind. You are as worried as the sum of yourself and the
    difference between my small smooth hamster and my nose. Speak your
    mind!

    Juliet:
    Speak YOUR mind! You are as bad as Hamlet! You are as small as the
    difference between the square of the difference between my little pony
    and your big hairy hound and the cube of your sorry little
    codpiece. Speak your mind!

    [Exit Romeo]

    Scene II: Juliet and Ophelia's conversation.

    [Enter Ophelia]

    Juliet:
    Thou art as good as the quotient between Romeo and the sum of a small
    furry animal and a leech. Speak your mind!

    Ophelia:
    Thou art as disgusting as the quotient between Romeo and twice the
    difference between a mistletoe and an oozing infected blister! Speak
    your mind!

    [Exeunt]

  3. oh well by banky · · Score: 5, Funny

    Server, server, whereforeart thou, server?
    Deny thy slashdotting and accept mine HTTP connects!

    5 comments and I can't seem to connect. mayhap I shall bite my thumb at RoadRunner?

    --
    ZOMG I WOULD LOVE TO KNOW ABOUT YOUR FEELINGS ON MACINTOSH VERSUS WINDOWS, VI VERSUS EMACS, AND HOW YOU'RE NOT A DORK
    1. Re:oh well by SEWilco · · Score: 2, Funny
      I wouldst connect to thee, o most remote of arachnid presenters!

      When'er thine voice is delayed from reaching mine ears
      before sweet sleep approaches me,
      and I knowest that we be in the presence of yonder overlooking master of all things constructed,
      then my awareness shall be that the master hast brought his minions to overwhelm thine voice with their chanting
      and I shall be filled with woe and anticipation of what sweetness might I forsee in the morrow.

  4. The true meaning of Shakespeare by aoihai · · Score: 5, Funny

    Thus it is revealed that "Much Ado About Nothing" is actually a polynomial time solver of the "Love Triangle" subclass of NP-complete problems.

    --
    You were eaten by a grue.
    1. Re:The true meaning of Shakespeare by jovlinger · · Score: 4, Funny

      fscking genius! Bravo, my good man.

      Following your lead, I have deduced that Othello must be a game-theoretic treatsie, while the Comedy of Errors is clearly a C compiler.

      I suspect that All's Well that Ends Well must be an early formulation of the halting problem, but I'm still waiting for the mechanical proof solver to come back with results. It may be that the last word of the title is a transcription error.

  5. why not code in Grunting Neanderthal? by perdida · · Score: 3, Interesting

    Shakespeare used the common language of his day. Like The Sopranos, Shakespeare's oevure is meant to be a big hit.

    His writing is not a language or a diction or a dialect unto itself, but to combine the ways of speaking of the poor and rich playgoers of the Elizabethan time. It's the original accessible style, and that is why 15 year olds can understand, and dig, Romeo and Juliet today.

    However, this "speak your mind" crap de-shakespearizes the writing anyway. The topics may be shakespearean, but the diction is a geek-ized bastardization of Elizabethan speech.

    This era's English is as complex as our own. The best way to code in such a language understandably is to write simple prose.

    For coding, you need a more modular language, something less complex. The semi-linguistic grunts and signs of a Neanderthal, or Koko the signing ape,may be more useful. You would get compilable code, due to a simpler logix, and the Neanderthal observer would still understand the meanings.

    1. Re:why not code in Grunting Neanderthal? by majcher · · Score: 4, Interesting

      You must have missed Ook, a language designed for orangutangs.

    2. Re:why not code in Grunting Neanderthal? by elflord · · Score: 2
      or coding, you need a more modular language, something less complex. The semi-linguistic grunts and signs of a Neanderthal, or Koko the signing ape,may be more useful.


      I believe it's already been done. See the posix utilities. A pretty good vocab: (try pronouncing these as spelled) awk, grep, ls, su, tar, stty, zcat, rm, mknod, cp, rmdir, chmod
      Then there's the functions: fchmod, msgsnd, msgop, msgget, mmap, ... etc.

  6. A great new step by einhverfr · · Score: 4, Funny

    On April 1, 2000, an RFC was released on IMPS, the Infinite Monkey Protocol Suite, which is a means of keeping track of an infinite number of monkeys on an infinite number of typewriters to see if they duplicate the works of Shakespear (or any other works for that matter). The RFC is located at http://www.ietf.org/rfc/rfc2795.txt.

    RFC 2795 specified that the entity which stores the works of Shakespear (and everyone else) is the Big Annex of Reference Documents (BARD) and communicates with the ZOO (Zone Operation Organization) vie the InterAnnex Message Broadcasting Protocol for Evaluating Neo-classical Transcripts (IAMB-PENT).

    Anyway, my point is that this new language is great because what other language would you want to write an implimentation of IAMB-PENT in than Shakespear? Soon we will have another Linux groups try to demonstrate this important protocol like they did with RFC 1149!

    --

    LedgerSMB: Open source Accounting/ERP
  7. Any CSS descrambling software in Shakespeare? by Mark+Gordon · · Score: 5, Interesting

    Assuming this isn't a complete joke...

    David Touretzky would probably get a kick out of this language, since it could lead to a dramatic rendition of a CSS descrambler.

    1. Re:Any CSS descrambling software in Shakespeare? by Jimmy_B · · Score: 3, Insightful
      Any CSS descrambling software in Shakespeare? Assuming this isn't a complete joke...
      Oh, what fools these moderators be. Of COURSE this is a complete joke; notice the category it's in, and read the sample program. It's easy to recognize which phrases have been designated to have language meanings, and that the way they're combined is grammatically-correct nonsense.
    2. Re:Any CSS descrambling software in Shakespeare? by AJWM · · Score: 2

      My first thought too.

      Shakespeare really is a fairly simple programming language with built-in steganographic obfuscation. But it'd be a hoot to see MPAA try to come down on a Shakespeare version of DeCSS or Adobe try to complain about a Shakespearean e-book decryptor.

      (And while the language looks at quick glance to be turing-complete it could do with some richer semantics -- floats, function calls, etc.)

      --
      -- Alastair
    3. Re:Any CSS descrambling software in Shakespeare? by brunes69 · · Score: 2

      Did you even look at the website? It si NOT a joke. I just downloaded and compiled the spl2c interperter myself, and then coverted to C and compiled a sample program. it works!

    4. Re:Any CSS descrambling software in Shakespeare? by Jimmy_B · · Score: 2

      (A) the site was slashdotted at the time just about everything here was posted. Most posters are going by the sample program, which someone got and posted, and the description.

      (B)The fact that it compiles doesn't make it any less a joke. The fact that it compiles is, by itself, humorous. The fact that it compiles *and* reads like a parody of Shakespeare is hilarious. Awhile ago, a steganographic tool was mentioned on Slashdot which would reversibly turn text messages into what looks like spam. This is a similar thing, for C code.

  8. Shakespeare is a good start. Now let's try others. by alewando · · Score: 3, Interesting
    Elizabethian English is a good proof of concept, but we should build on this success with other more practical languages.

    Natural-language programming has had its ups and downs over the year. Some will recall Hypertalk, for example, as the language the original Myst game was programmed in. Only some will recall, however, inasmuch as it never got terribly far off the ground. Other natural languages haven't faired much better.

    My contention, however, is that these efforts have not failed because the idea of natural-language programming is somehow fundamentally flawed. Nay, the problem is that we're busy trying to implement the wrong language: English. English may be the language lots of us speak, but it's simultaneously too imprecise to permit of exacting programming and too verbose to allow structures to be implemented quickly and cleanly.

    Tok Pisin would make a much better natural language to implement. It has several important advantages over English:
    1. Simple grammar
    2. English-based lexicon for backwards vocabulary compatibility
    3. Full extensibility, owing to its pidgin origins.

    As yet, a language like Tok Pisin would encounter much opposition among programmers and speakers in the population at large unaccustomed to change, but it's a proposal deserving of serious examination.
  9. Not Quite Right by robbyjo · · Score: 3, Informative

    Not a compiler, but it converts to C.

    Well, technically, the tool that translates one language to another (be it to machine language, intermediate language, or just another sufficiently different high level language) is called compiler. Therefore, calling it non-compiler would be incorrect.

    --

    --
    Error 500: Internal sig error
    1. Re:Not Quite Right by joto · · Score: 2
      Well, technically, a tool that translates from one language to another (such as C to x86 object code) should really be called a translator. Compiling is the craft of putting those peaces together, so we should really start calling our linkers compilers, and our compilers translators.

      But if we are to accept common (albeit faulty) terminology, I will agree that something that translates language foo to C is definitely worthy of being called a compiler...

  10. Amazing... by Anonymous Coward · · Score: 5, Funny

    "Amazing what CompSci-students can create when they really should do real work."

    Like Linux?

  11. Cook me up some Hamlet by sparcv9 · · Score: 5, Funny

    Another natural language language is Chef. Programs are written like cooking recipies. The above link has examples of a Hello World and a Fibonacci sequence generator. I wouldn't want to eat either of them, though. The ingredients are the variable names, so some of the concoctions sound downright nasty. Although, the Fibonacci generator only requires 100g flour, 250 g butter, and one egg, and it's accompanying Caramel Sauce (the recursive function) requires a cup of white sigar, a cup of brown sugar, and a single vanilla bean.

    --

    This is not a Fugazi .sig
  12. Re:Shakespeare is a good start. Now let's try othe by dangermouse · · Score: 2

    Um, what's the point? Why would you bother to go from a language that nobody speaks to another (theoretically "natural") language that nobody speaks?

  13. Re:Shakespeare is a good start. Now let's try othe by Anonymous Coward · · Score: 5, Funny

    fuck that. ebonic would be a much better programming language.

    int foo()
    {
    word up, biatch;

    homey = sup();

    }

  14. Temporary mirror by jooon · · Score: 5, Informative

    We didn't expect the slashdot effect (well, not so soon anyway ;-), and our WikiWiki certainly didn't, so the web server died. So, we set up some temporary, but not complete mirrors. The source, documentation and examples are here, but it lacks the lively and lovely Wiki discussion.

    http://spl.pu240.com

    http://cgi.student.nada.kth.se/~d98-jas/shakespear e/

    --
    Jon Åslund (one of the authors)
    1. Re:Temporary mirror by Pilferer · · Score: 2, Funny

      >We just got slashdotted, our wiki died and this

      You killed the wiki! YOU BASTARDS!

      (Another reason /. should cache...)

  15. Neat, but... by jejones · · Score: 2, Funny

    ...will there be a version letting one write in the original Klingon?

    1. Re:Neat, but... by thoughtstream · · Score: 2, Interesting
      ...will there be a version letting one write in the original Klingon?

      Well...kinda. I demo'd the forthcoming Lingua::tlhInganHol::yIghun Perl module at YAPC::NA last June. It will hit the CPAN in a few weeks time.

      With it you'll be able to implement programs like Eratosthenes' well-known "Death Challenge for Primes" in the original Klingon:


      #! /usr/bin/perl

      use Lingua::tlhInganHol::yIghun;

      ###### mI'wa'DIchvaD 'eratoSHeneS HeghqaD #####

      <mI' tIn law': > yIghItlh!
      mI'tInwIj laDDaqvo'Hal yIlaD nob!
      mI'wa'DIchmeywIj cha' mI'tIn chen nob!
      {
      mI'wa'DIchmeyvaD { 'oH gheD chuv! } mI'wa'DIchmey tIwIv yInob!
      gheD <<\n>> ghItlh!
      } gheDvaD mI'wa'DIchmeyvaD yInIH yInob teHtaHvIS!


      Damian
  16. Shakespeare & Chef vs. DeCSS by geophile · · Score: 2

    I wonder what the MPAA would do if 2600 published DeCSS translated into one of these languages.

    1. Re:Shakespeare & Chef vs. DeCSS by ZxCv · · Score: 2

      Imagine a beowulf cluster of moron posters on slashdot that have to find some way to relate a beowulf cluster to every story...

      --

      Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
  17. Re:OFF TOPIC Re:Shakespeare is a good start. by jovlinger · · Score: 2

    I dunno. That site consists of a bunch of people with a REALLY good sense of humor, or complete and blithering lunatics. Articles about how you should traumatize cattle so the meat tastes good!? I don't want to take it seriously, but I got the impression that several of the posters there do. I'm a bit unsettled by that.

    But, given that their main poll had 137 votes, I guess most people have already voted with their [metaphorical] feet.

  18. Not a compiler? by p3d0 · · Score: 3, Insightful

    Just because something uses C as its output language doesn't mean it's not a compiler. If it scans and parses text to build an abstract syntax tree like a duck, then generates intermediate code which gets optimized like a duck, then outputs the result in some target language like a duck, then it's a duck, regardless of which target language is used.

    C is actually quite a popular output language for compilers, because it means they don't have to do register allocation.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  19. Natural lang processing isn't real work? by Lethyos · · Score: 2

    Short-sightedness on the part of our story poster here. I think natural language processing, or at least work in its direction is "real work". Especially since if computers are going to be fully (in the sense of casual use the same as a telephone) adopted by our society in the future, they'll have be more human-compatable. (For those on /. that didn't realize it already, most average people are still afraid of PC's.)

    When you can dictate instructions to your machine - whether it's 16th century English, or modern Nihongo - the world will be a better place. Steps like this will help lead us to the elimination of these primative and clunky UI's and I/O devices we're currently attached to in favor of elegant, natural communication. Age of intelligent machines, anyone?

    --
    Why bother.
    1. Re:Natural lang processing isn't real work? by joto · · Score: 3, Insightful
      Short-sightedness on the part of our story poster here. I think natural language processing, or at least work in its direction is "real work".

      Nope, this has nothing to do with natural language processing. If you had read the manual you would understand that as well. It is a fairly simple language quite similar to the original basic-dialects, with a lot of syntactic sugar. Adding syntactic sugar has very little to do with natural language processing.

      But I'm sure it was fun, and that they learned something in the process of creating it, so I wouldn't call it worthless...

    2. Re:Natural lang processing isn't real work? by Jimbo+Braddock · · Score: 2, Informative

      I'm sorry that a lot of people seem to misunderstand my attempts at "so called" humor. Of course I think the two SPL creators (who are friends of mine) have done real work.

      Maybe not useful work (as in creating peace, ending world hunger etc etc) for our society at large, but interesting, funny and cool work.

      The language grew out of a lab assignment in a syntax analysis course at our school. If viewed as a lab assignment, SPL is probably a little more work than the course coordinator demands :-). That's all I meant.

      /Erik

      --
      mailto:erik@tjernlund.net | http://erik.tjernlund.net
      "I was so much older then. I'm younger than that now"
  20. World's first recursive insult by tulare · · Score: 3, Funny
    Lol!
    You lying stupid fatherless big smelly half-witted coward!
    You are as stupid as the difference between a handsome rich brave
    hero and thyself!
    The way the language sets up insults just kills me. I like the above. See the title to this post and think about it :)
    --
    political_news.c: warning: comparison is always true due to limited range of data type
    1. Re:World's first recursive insult by tulare · · Score: 2

      Before you flame me, I know the code coming out of this isn't recursive at all. But the insult certainly is. Gives one ideas, doesn't it?

      --
      political_news.c: warning: comparison is always true due to limited range of data type
  21. Amazing by chrysalis · · Score: 2

    I just love these funny languages. Nobody will ever use them, but after reading this, you don't feel like programming any more. The C language looks so crude, so cryptic, so non-human friendly after that...
    There's a similar project for Perl called Lingua::Romana::Perligata . This is an awesome module written by Damian Conway, that let you program in Latin. Totally crazy.

    --
    {{.sig}}
  22. Global File System (GFS) Rewritten in SPL by Captain+Zion · · Score: 2
    Posted by Hemos on Fri August 31, 17:01 from the speak-thy-mind dept.

    thk writes "Sistina, the main developer of the Global File System, has changed its language from C to SPL (Shakespeare Programming Language). SPL is basically a language to make the source code for programs written with it, resemble a Shakespeare play. Interestingly, the change came just after beta testing, leaving some users a bit miffed. The GFS is an important component of some GPL clustering projects, such as Compaq's SSIC project. The Sistina press release is here."

  23. This is weird! Weird! Weird, I say! by WWWWolf · · Score: 3, Interesting
    You know, just yesterday I fixed some table generation problems in this small program of mine. I commented the offending piece of code better, adding silly comments like "Dramatis Personae" before the variable declarations and stuff like "I Act" before each part of the code...

    ...and next day, someone has Shakespeare Programming Language in Slashdot.

    Weird. Really weird.

  24. Re:So how many monkeys would it take ... by ConceptJunkie · · Score: 2

    About 3000 if they stay at their keyboards. About 200 if they sit around and masturbate and throw poo.

    --
    You are in a maze of twisty little passages, all alike.
  25. Note for the metaphorically impaired by p3d0 · · Score: 2

    Duck == Compiler

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  26. I like the references by JabberWokky · · Score: 2
    I got the Rocky Horror reference (4711), so I assume that the 17 is a reference as well... either just a nice prime, or (hopefully), the number in the Dragerian series by Stephen Brust?

    Incredible language, by the way. Really really nifty, and something I will use as an example when I'm trying to define the term "hacker".

    --
    Evan

    --
    "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien