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+