Category:Total

A total programming language is one in which all programs are guaranteed to terminate. As such, such languages are not Turing complete. It is also impossible to implement a self-interpreter in a total programming language, because combined with quines that would allow you to create a non-terminating program in the form on an infinite loop. Nevertheless, total languages can still be quite powerful, with some actual languages being total. Programs that need to continue running can use techniques from total languages to prevent from hanging.

One way to convert a Turing complete programming language into a total programming language is to require programs to have a proof that they always halt attached to their source code.