I once wrote an interpreter in continuation-passing style, meaning every final line of a function called the next function in the interpreter, passing a continuation and error continuation on.
Such a program never returns until it finishes interpreting, and can make an unlimited number of such calls.
Such a program never returns until it finishes interpreting, and can make an unlimited number of such calls.
This is a bad idea without TCE.