Compiler/virtual machine interpreter: Difference between revisions

m
Line 1,947:
case.fetch do. k=.4 [PUSH i{vars
case.store do. k=.4 [vars=: (POP'') i} vars
case.push do. k=.4 [PUSH i
case.add do. PUSH +/POP2''
case.sub do. PUSH -/POP2''
case.mul do. PUSH */POP2''
Line 1,963:
case.neg do. PUSH -POP''
case.not do. PUSH 0=POP''
case.jmp do. pck=:pc+. i
case.jz do. ifk=. (0=POP''do.pc=:pc+){4,i else.k=. 4 end.
case.prtc do. emit u:POP''
case.prts do. emit (POP''){::strings
6,951

edits