alderson loop arbitrary-precision arithmetic client-server compiler control flow cycle detection deadlock debugging decision problem e-mail loop floating point for loop halting problem lambda calculus linked list memory leak microsoft access normal form numerical analysis operating system recursion software bug stack-based memory allocation tail recursion