Var'aq (more properly, var'aq) is sort of a fanfic programming language based on the Klingon language used on the Star Trek television series and movies. Klingon, created by Marc Okrand and "maintained", in a sense, by the Klingon Language Institute independently of Paramount's auspices, is really its own separate deal; this is merely a fan's attempt to give a little more richness to the culture as well as exercising a love of languages and a desire to learn more Perl.
The var'aq home page is located at http://geocities.datacellar.net/connorbd/varaq. You should be able to find pretty much everything interesting about the language here, including specifications, sample code, and implementation notes.
As of this writing, the interpreter is in a basically functional state but implements less than half of the specification. Just something you should keep in mind.
Yes, in a way. It's a stack-based RPN language like Forth or PostScript; the reason for this has nothing to do with an original desire to emulate one of those languages, but simply the unusual object-verb-subject syntax of Klingon. This sort of dictated the required form of the language right up front, ruling out a more traditional ALGOL-like syntax (based on English). Stack-based languages are actually easier to parse anyway, especially in Perl: just chomp and process. It is also an impure functional language in the same vein as Lisp or ML; it supports local variables, but it is really intended to do everything off the stack.
As for calling it loSDIch (Klingon for fourth), that would be an obvious joke title to anyone who actually spoke Klingon; this being at least a semi-serious exercise in artificial culture development, such a title would be noticeably silly at best. var'aq is actually completely meaningless, though it suggests identification with a famous Klingon mathematician or computer scientist in sort of the same way as Pascal recalls Blaise Pascal or Ada recalls Ada Lovelace. In any case, the name var'aq came before the form of the language. (In any case, var'aq is based more directly on PostScript anyway. But they're all part of the same family.)
No. I didn't find out about that until after var'aq was released to the world. That's a rather funny piece, but it's a humor piece. var'aq, though some find it humorous, is not.
I like to think var'aq is designed to reflect Klingon programming culture in a much more serious sense, just as it reflects the Klingon language. See Nalakil's Workstation to see how I envision the Klingon programming environment.
Eventually? A lot. The intent is to offer such things as concurrency and even distributed processing support at some point (imagine that, a toy language designed for a Beowulf cluster), perhaps even basic windowing support or the like. Right now, I'm just shooting for such fancy features as, say, functions. Or loops. String support. That sort of thing.
As stated above, var'aq's closest cyberlinguistic relative is probably PostScript, with a dash of Lisp thrown in. (This, incidentally, is sort of a Perl artifact, since Perl data typing is incredibly lax. It's just the easiest way to write it.)
Chris Pressey, creator of the notorious Befunge language, maintains a list of programming languages described as cars; in those terms, var'aq would be described thusly: A 2000 VW Turbo Beetle with lots of amateurishly drawn Star Trek graphics painted 60s-style on the doors, a Starfleet Academy sticker in the window, and a custom car radio and A/C system run completely off an HP calculator.
In terms of genetics, var'aq is the bastard child of a back-room tryst between PostScript and Lisp after a Star Trek convention.
In terms of beer... var'aq is bloodwine. Serve hot, drink carefully because it'll mess you up if you don't.
There is a var'aq 99 Bottles Of Beer program, but since it won't yet parse I won't be posting it right yet.
The question is one of verisimilitude. The likelihood of a Klingon concept being an exact translation of its English equivalent isn't always good. Consequently, pure translation of an Earth language might make for a cute joke, but it would sacrifice plausibility. A prime example is the qaw/qawHa' instructions, which perform the same function as PostScript's mark/cleartomark instructions but literally translate to remember/forget; the idea is that the metaphor chosen in Klingon might more reflect the purpose of marking the stack than the actual act. Incidentally, It's quite true that many of the idioms chosen for var'aq are anything but obvious. This is the reason why; though mathematics is considered universal, it's not too likely that everything would be described in the same way. (That said, I did cheat in a few places; for example, the word for logarithm is a direct translation from the Greek logarithmos, meaning roughly "logic-number".)
For a rather thorough and creative discussion on the issues involved in translation, you might wish to look at Le ton beau de Marot by Douglas Hofstadter (the author of the hacker classic Goedel, Escher, Bach: An Eternal Golden Braid), an intricate and well-written look at the pitfalls of translation between languages.
Not until someone sends me Michael Okuda's email address. (NB Michael Okuda is the visual effects guy that created the modern Starfleet look and feel. I think he'd be interested, but I make no assumptions about officialdom.)
As a matter of fact, yes. Mark Shoulson is the project's Head Linguistic Consultant and is in great measure responsible for getting the spec to reflect real Klingon constructions.
Good question. The answer is that I don't speak Klingon; as a linguistic work of art, it's a beauty, but I don't have much reason to learn it. As a result, the Klingon version is mechanically translated via a Perl filter from English to Klingon so I don't have to waste time synchronizing two separate source bases.
Not likely. Such a beast would essentially spew out function calls to simulate var'aq operators and control structures and would therefore be a gigantic mess.
Eventually, mainly because I'd love to get this running on a PalmPilot. The Perl implementation is phenomenally ugly anyway, so a serious rewrite in C would definitely be in order at some point. Some might, for example, actually find var'aq useful for the occasional scripting job, and running an interpreter on an interpreter is if nothing else a great way to waste tremendous amounts of time.
var'aq should run as is on any platform that can handle Perl. Mac, Unix, Windows, whatever. Next question.
The principal members of the team as of this version of the FAQ are:
The spec is as open as any such spec gets. Feel free to implement your own; if you want to use our code it's freeware under the Mozilla Public License (Why not GPL? That's a separate document...). As mentioned above, Brian's heavy into that open source thing, so naturally in peer review we trust. Of course, you should acknowledge us, and we'd obviously love a cut of anything you happen to make off our work...
You can go to the var'aq home page
at Yahoo! Geocities to find out everything there is to know about
var'aq. At the website, you'll find all sorts of useful information
(most of which is included with the distribution) as well as instructions
for subscribing to the varaq-dev
mailing list at eGroups. Good lu...er... Qapla'!