HQ9 Plus
|
- The title of this article is incorrect because of technical limitations. The correct title is HQ9+.
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, this HQ9+ interpreter was written (in Python) in around five minutes and is only 18 lines long. And, this 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
- HQ9+ (http://www.cliff.biffle.org/esoterica/hq9plus.html)
- HQ9++ (http://www.dangermouse.net/esoteric/hq9plusplus.html)
- DM's Esoteric Programming Languages (http://www.dangermouse.net/esoteric/)