Science Fair Project Encyclopedia
HQ9 Plus
HQ9+ is a joke programming language created by Cliff Biffle that consists of only four 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 programs.
- The H command prints out "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 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 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!". There are some 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+ interpreters are extremely simple to write, so there have been many written. For example, Hq9-plus.py HQ9+ interpreter was written (in Python) in around five minutes and is only 18 lines long. And, Hq9p.c HQ9+ compiler written in 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++ created by David Morgan-Mar, an object-oriented language backward compatible with HQ9+. This adds a new command, ++, 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
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


