HI9+

From Esolang
Jump to navigation Jump to search

HI9+ is a derivative of HQ9+ created by User:Rdococ. Rather than having a quine command, rdococ thought it would be more useful if there was an interpreter command that printed the source code of the interpreter. Thus, the I.

Overview

Take this quote from HQ9+:

Although the language is not of serious interest by itself, it can be useful to implement HQ9+ in a new esoteric programming language, since doing so proves that all the tasks above, except the quine, are possible.

HI9+ fixes this egregious oversight in the design of HQ9+, so that an implementation of HI9+ in a new esoteric programming language proves that all the tasks are possible, including the quine.

Instructions

  • H prints the message hello, world
  • I prints the interpreter's source code. (If the code is compiled, it simply prints I can't bel1eve 1t's not qu1ne! instead.)
  • 9 prints the lyrics to "99 bottles of beer."
  • + increases the accumulator.

Instructions are case-insensitive as in HQ9+. Invalid instructions are no-ops.

Quines

HI9+ can be thought of as having infinite variants depending on the interpreter's source code. Each variant may have different conditions for quining.

  • The empty program is always a quine.
  • As in HQ9+, hello, world is a quine.
  • If the interpreter's source code contains one I and no other valid HI9+ instructions, the same code will produce a quine in HI9+.
  • I can't bel1eve 1t's not qu1ne! is, ironically, a quine if a compiler is used instead of an interpreter.
  • If the interpreter's source code is IQ, then IQ is a valid quine in both that variant of HI9+, and in HQ9+.