HQ9+는 4가지 간단한 명령어로 구성된 프로그래밍 언어이다. H는 "Hello, world!"를, Q는 입력받은 소스코드 전체를, 9는 99병의 맥주 노래 가사를, +는 내장된 변수의 값을 1 증가시키는 기능을 담고 있다. 끝이다. 이 프로그래밍 언어는 고작 이게 끝이다.
그런데 내장된 변수는 아무도, 그 어떠한 방법으로도 접근할 수 없다. 그래서 마침 심심했던 정식이는 99병의 맥주 노래를 출력할 때 99병의 맥주 노래 대신 내장된 변수의 구구단을 출력하는 HQ99+라는 언어를 새로 만들어보려고 한다.
예를 들어 “+++9”가 소스코드라고 해보자. 3번째 코드까지(+++) 실행되었을 때 내장된 변수의 값은 3이다. 그러면 4번째 코드 ‘9’는 구구단 3단을 출력하게 된다. 만약 소스코드가 “+++++9"라면 구구단 5단을 출력한다.
이 내용을 표로 정리하면 다음과 같다.
명령어
|
기능
|
H
|
Hello, world! -> 출력
|
Q
|
입력받은 소스코드 전체를 출력
|
9
|
메모리의 값을 n이라고 하면 (출력 후에도 n은 초기화되지 않는다.)
n x 1 = n
n x 2 = 2n
n x 3 = 3n
...
n x 9 = 9n
|
+
|
메모리의 값을 1 더함. 메모리의 초기값은 0이다. 출력은 없다.
|
소스코드의 실행 결과를 출력한다.
HQ9+
Hello, world!
HQ9+
0 x 1 = 0
0 x 2 = 0
0 x 3 = 0
0 x 4 = 0
0 x 5 = 0
0 x 6 = 0
0 x 7 = 0
0 x 8 = 0
0 x 9 = 0