git @ Cat's Eye Technologies Specs-on-Spec / master turkey-bomb / turkey-bomb.markdown

Tree @master (Download .tar.gz)

turkey-bomb.markdown @masterview markup · raw · history · blame




TURKEY BOMB, the first known programming-language-cum-drinking-game, evolved independently on four seperate continents and was widely used as an implementation base for computer operating systems for several centuries.

Later, when computers were proven beyond a shadow of a doubt to be the malevolent work of unseen evil forces, and digital technology was banned on punishment of bodily disintigration, TURKEY BOMB thrived on, only slightly modified, as a popular drinking game.

Now that the treaty negotiations between the UN and the world of unseen evil forces have been signed, however, computers are back (and in full force, now billions upon billions of times more efficient than they once were,) and TURKEY BOMB's popularity as a computer programming language may just be making a comeback!

Archaeologists have recently uncovered the largest known collection of TURKEY BOMB articles. Dating from A.D. 2014 and apparently an almanac of black magic of some sort, with the cryptic title "Communications of the ACM," the remains of an almost-four-hundred-year-old periodical is practically all historians have to go on.

Even then, this obscure grimoire talks of this language as if it were an already-established phenomenon - indeed, perhaps dating back to the tail end of the second millenium of A.D. For this reason, some scholars attribute the widespread popularity of this language to one CLIN_TON, a great leader of the time. It is said that CLIN_TON was such an excellent and heroic TURKEY BOMB jockey that "he never inhaled", although that is largely deemed myth, perhaps connected to the allegorical story of his close followers who "blew him good".

Our knowledge of the time in which TURKEY BOMB originated is slim, indeed. As such, the remainder of this document is by no means a complete reconstruction of the language, for that is surely impossible. However, it is an attempt to organize, apparently for the first time ever, the elements of TURKEY BOMB in a human-referencable fashion.


To fully and exactly understand TURKEY BOMB one must first grok the ancient art of computer programming while under the influence of recreational consumables. If you are already under the influence (and why else would you be reading a document about a language named TURKEY BOMB,) congratulations, you've already taken your first steps on the road of becoming an expert TURKEY BOMB programmer/jockey.

But do not be lulled into thinking that simply ingesting an amusing chemical will ensure your vainglorious TURKEY BOMB hobby or career! No indeed, for it is the most wise and experienced programmer who needs no more buzz than to program in TURKEY BOMB itself. Many teatotalling hackers excel at the Annual International TURKEY BOMB Open in Maui for this very reason. (See you there this fall!)

Data Types

Name Description Size
ZILCH "A little slice of Nirvana." Zero.
BI_IT A composite quantum state of information. Two thirds of a bit plus half a trit.
AMICED A conceptual quantum state of information. Negative six sevenths of a decimal digit.
TRIVIA CONCERNING type Three references: one to an object of the named type, two to TRIVIA objects. Exactly fifteen bytes, no exceptions.
ADVISORY PERTAINING TO type A quarter of a reference to a object of the given type. A quarter of the platform-defined pointer size.
GRUBSTEAK A fraction whose numerator is a perfect square and whose denominator is a prime number. No bigger than necessary.
IMPROPER GRUBSTEAK A GRUBSTEAK whose denominator is less than the square root of the numerator. Same as GRUBSTEAK.
INDECENT GRUBSTEAK A fraction whose numerator is a perfect square of a perfect square and whose denominator is a prime number whose ordinal position in the counting list of prime numbers is also prime. In the drinking game, whenever an INDECENT GRUBSTEAK is involved in an expression, everyone starts chanting "BANG BANG BANG!!!" until the player holding the TURKEY BOMB either finishes their drink and starts another, or falls down (in which case someone who hasn't been playing should take him or her home). Same as GRUBSTEAK.
NOMENCLATURE A set of variable names, defined by an EBNF expression that must contain at least one As big as possible.
PUDDING An unknowable value. Infinite.
HUMIDOR BUILT UP FROM type, type & type A structure containing three other types, specified at compile-time, all of which must be different, one of which must be another HUMIDOR. Infinite.
HYBRID OBTAINED BY COMBINING type & type [WITH GUSTO] A unified structure containing data from two different types, specified at compile time. The average size of the two types... which may present problems when accuracy of representation is desired, which is why the WITH GUSTO clause is made available to pad the size of a HYBRID to the larger of the sizes of it's two consitituent data types.
TURKEY BOMB A mysterious and shadowy type, suspected to be a reference to itself. There can only be one (no more, no less) variable of type TURKEY BOMB, and it is predeclared under the variable name TURKEY BOMB. A variable of type TURKEY BOMB (that is to say, the variable named TURKEY BOMB) can only take on one value, that value being TURKEY BOMB. Exactly 1 TURKEY BOMB.


When TURKEY BOMB is played as a drinking game, the TURKEY BOMB is represented by a real object - usually something convenient, like a shoe, when an impromptu game is played for fun, but the real hardcore TURKEY BOMB junkies insist on using either a real live turkey, or a real live time bomb, or ideally, both (tied securely together).

The TURKEY BOMB is then passed from player to player while the referee (operating system) designates challengers (tasks). The chosen challenger takes a deep breath (inhales) and shouts an expression at the player holding the TURKEY BOMB. If the player can produce the correct result before the referee can, they only have to take a sip of their drink before passing off the TURKEY BOMB. Otherwise, it's the whole thing, down the hatch.

If the player holding the TURKEY BOMB makes an error, they must down their drink and get another before trying again. If the referee makes an error, everyone, especially the referee, must down their drink, and get another.

Variables are also declared by any player spontaneously standing up and shouting out a name that hasn't been mentioned yet, and a type to go with it, at any time.

For these reasons, TURKEY BOMB should not be considered as much an imperative language as a "peer-pressure" one.


There are no comments in TURKEY BOMB; it's entire content is considered a comment on those who program/play it.


Syntax Description
BI_IT BI_IT BI_IT ! BI_IT BI_IT BI_IT 2-bit NAND, rotate known trit left.
BI_IT BI_IT ? BI_IT BI_IT ? BI_IT BI_IT 3-argument trit operation; unfortunately the Ancient Texts seem unclear on what it actually does. (The closest English translation appears to be "take these trits three and meditate soundly upon them.")
$ BI_IT BI_IT BI_IT BI_IT BI_IT BI_IT $ Attempt to make a GRUBSTEAK.
TRIVIA BI_IT // Attempt to connect a TRIVIA to itself and return it. The BI_IT argument is required, but serves no detectably useful purpose (hardcore followers of the drinking game tradition insist that it's for good luck.)
& EXPR Do not evaluate EXPR. Not particularly useful when programming in TURKEY BOMB, but wow, can one of these ever screw you up in the middle of a game.
\ ADVISORY ADVISORY ADVISORY ADVISORY Returns the type thus pointed to. Also, the player holding the TURKEY BOMB must pass it off.
HYBRID.type Casts a HYBRID to either type it was defined with.
HUMIDOR.type Retrieves an element from a HUMIDOR.
@ HUMIDOR Retrieves a PUDDING which represents the entire HUMIDOR.
PUDDING!!!!! Attempts to deduce the existance of a HUMIDOR in the given PUDDING. The player to the left of the player holding the TURKEY BOMB has to keep drinking continuously while the computer/referee does their deducing.
ALL BUT EXPR Returns a PUDDING indicating everything but EXPR.
WHEREFORE ART EXPR Returns a PUDDING indicating the entire metaphysical nature of EXPR.
GARNISH PUDDING Convolutes the PUDDING with recent context drawn from the program. The player holding the TURKEY BOMB must pass it off.
IMAGINE PUDDING, PUDDING! Returns a NOMENCLATURE indicating all the variables unchanged between two PUDDINGs.
EXPR :-> NOMENCLATURE Mass-assign the set of variables.
< NOMENCLATURE Mass-retrieve the set of variables.
NOMENCLATURE % GRUBSTEAK GRUBSTEAK Perform iterative cypher transformation of set of names.


The drinking game can also be played in an asylum, replacing 'drink' with 'medication'. Do not play this game with LSD.