turing complete type systems
1 min·13 sentences·12.19 cm·17.06.2020
Rust's type system is Turing complete:
It is impossible to determine if a program written in a
generally Turing complete system will ever stop. That is, it
is impossible to write a program f that determines if a
program g, where g is written in a Turing complete
programming language, will ever halt. The Halting
Problem is
in fact, an undecidable
problem.
How is any of this relevant?
Rust performs compile-time type inference. The type checker,
in turn, compiles and infers types, I would describe it as a
compiler inside a compiler. It is possible that rustc may
never finish compiling your Rust program! I lied, rustc
stops after a while, after hitting the recursion limit.
I understand that this post lacks content.