Revision 19541576 of "HQ9+" on enwiki

{{wrongtitle|title=HQ9+}}

'''HQ9+''' is a [[joke programming language]] created by [[Cliff Biffle]] that consists of only four [[command (computing)|commands]], each represented by a single character: H, Q, 9, and +.  It is not [[Turing-complete]], but it is highly efficient at certain types of [[computer program|programs]].

* The H command prints out [[Hello world program|"Hello, world!"]]
* The Q command prints out a copy of the [[source code]] of the program (i.e., it's a [[quine]]).
* The 9 command prints out the lyrics for [[99 Bottles of Beer|99 Bottles of Beer on the Wall]].
* The + command increments the [[accumulator]].

An example '''HQ9+''' program would be:  "HHQ+HQ++"

This program would output "Hello, world!  Hello, world!  HHQ+HQ++  Hello, world!  HHQ+HQ++" as well as incrementing the [[accumulator]] three times.

It is claimed that all useful programs written in HQ9+ run over twice as fast as the same programs written in any other language. Since no useful programs can be written in HQ9+, this is [[vacuous truth|vacuously true]].

HQ9+ is a joke; each command represents a common task that beginners are given when learning to program, or that programmers give themselves when learning a new [[programming language]].  A common exercise, for example, is to write a [[computer program]] that prints [[Hello world program|"Hello, world!"]].  There are some [[programming language|programming languages]] in which this is actually quite difficult; however, in HQ9+ the task is elementary, since the program "H" will accomplish the task. One of the hardest tasks in many programming languages is to write a quine, that is, a program which prints its own source code. However, in HQ9+, this is also trivial.

HQ9+ [[interpreter]]s are extremely simple to write, so there have been many written. For example, [[Media:Hq9-plus.py|this]] HQ9+ interpreter was written (in [[Python programming language|Python]]) in around five minutes and is only 18 lines long. And, [[Media:hq9p.c|this]] HQ9+ [[compiler]] written in [[C programming language|C]] compiles HQ9+ programs to C code and is only about 40 lines long.

Since HQ9+ programs do not accept input, it is not possible to write an HQ9+ interpreter or compiler in HQ9+.

There is also another joke language called '''[[HQ9_Plus_Plus|HQ9++]]''' created by [[David Morgan-Mar]], an [[object-oriented]] language backward compatible with HQ9+. This adds a new command, <code>++</code>, which increments the accumulator twice and instantiates an object. Following the principle of [[information hiding]], it is not possible to access this object.

==External links==

*[http://www.cliff.biffle.org/esoterica/hq9plus.html HQ9+]
*[http://www.dangermouse.net/esoteric/hq9plusplus.html HQ9++]
*[http://www.dangermouse.net/esoteric/ DM's Esoteric Programming Languages]

[[Category:Esoteric programming languages]]