Practical non-Turing-complete languages?

Don’t listen to the naysayers. There are very good reasons one might prefer a non-Turing complete language in some contexts, if you want to guarantee termination, or simplify code, for example by removing the possibility of runtime errors. Sometimes, just ignoring things may not be sufficient. The paper Total Functional Programming argues more or less … Read more

Infinite loops in Java

The compiler can easily and unequivocally prove that the first expression always results in an infinite loop, but it’s not as easy for the second. In your toy example it’s simple, but what if: the variable’s contents were read from a file? the variable wasn’t local and could be modified by another thread? the variable … Read more

tech