HQ9#

今回、HQ9++を拡張して、HQ9#を作ることにした。

HQ9++はオブジェクト指向言語で、HQ9+と下位互換を持っている。
HQ9++にはHQ9+コマンドである、H Q 9 +に加えて、++というコマンドが追加されている。

さて、このHQ9++を拡張して、HQ9#を作ろうと思う。
仕様は以下に示す。

コマンド 処理内容
H Hello,World!と出力する。
Q 自身のコードを出力する。
9 99 Bottles of Beer*1の歌詞を出力する。
+ アキュムレータをインクリメントする。
++ アキュムレータを二回インクリメントし、オブジェクトのインスタンスを生成する。
# GC(ガベジコレクタ)を明示的に起動する。これによって++で生成されたインスタンスで使われていないものが解放される。

HQ9#処理系には最低一つのアキュムレータと、出力ストリーム、GCの実装が義務づけられる。しかしそれぞれの実装内容は処理系実装者に任せられる。

参考:HQ9+

*1:アメリカの数え歌