This is a completely standards-compliant implementation of the HQ9++ programming language. See [] and [] for syntax, etc.

'main execution loop... type "exit<ENTER>" to exit
print "HQ9++ Interepeter - by Bill W."
print "type 'exit' (no quotes) then return to quit"
while (lower$(code$) <> "exit")
    input ">"; code$
    gosub [runCode]
    'iterate over each character in the program
    pos = 1
    while (pos <= len(code$))
        select case lower$(mid$(code$, pos, 1))
            case "h" 'h command = print hello world
                print "Hello, World!"
            'end case
            case "q" 'q command = print source code
                print code$
            'end case
            case "9" '9 command = print the lyrics to "99 Bottles of Beer on the Wall"
                gosub [99bottles]
            'end case
            case "+" '+/++ command = increment the accumulator
                'OO portion of ++ command isn't implemented yet
                'this shouldn't have much bearing on program execution... I think
                if (mid$(code$, pos+1, 1) = "+") then
                    accumulator = accumulator + 2
                    pos = pos + 1
                    accumulator = accumulator + 1
                end if
            'end case
        end select
        pos = pos + 1
    'print the lyrics to "99 Bottles of Beer on the Wall"
    for x = 99 to 1 step -1
        print x; " bottle(s) of beer on the wall,"
        print x; " bottle(s) of beer."
        print "Take one down, pass it around, "
        print (x-1); " bottle(s) of beer on the wall."
    next x