|
On Wed, Sep 2, 2015 at 4:47 PM, Elias Barrionovo <elias.tandel@gmail.com> wrote:
> On Wed, Sep 2, 2015 at 5:36 PM, Rodrigo Azevedo <rodrigoams@gmail.com> wrote:
>> Is Lua a "infinite loop" safe language in any conception? (I really don't
>> know the strategies involved to check/avoid these cases at implementation
>> level)
>
>
> Alan Turing famously proved that there is no general way [1] of
> finding out whether a piece of program terminates for an arbitrary
> input without actually running it and hoping for the best. It's known
> as the Halting Problem: https://en.wikipedia.org/wiki/Halting_problem
>
> However, there are certain heuristics. For instance, you could create
> a graph of branches and function calls and see if there are any
> cycles, but it is very error prone (add some basic metatable or ENV
> trickery and the checker won't work).
>
> Usually, what is done is to limit the total runtime of a piece of
> code, which in Lua can be done using hooks and the debug library.
> Others in this list may enlight you in this matter.
>
> --
> NI!
>
> () - www.asciiribbon.org
> /\ - ascii ribbon campaign against html e-mail and proprietary attachments
>
Or just run a loop looking for any number which satisfies some
condition, for which it's not known whether any such number exists. No
analysis can tell you whether that program will ever finish.
--
Sent from my Game Boy.