Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: regex step counting (Halting problem)

by Corion (Patriarch)
on Dec 03, 2019 at 14:45 UTC ( [id://11109597]=note: print w/replies, xml ) Need Help??


in reply to Re: regex step counting (Halting problem)
in thread regex step counting

You don't need to solve the halting problem to enforce and/or check that a regex stops after a time limit or step limit.

If you're launching the regex engine with user-supplied input, I'm not sure whether you can single-step through the regexp, but most likely you can do something like what Regexp::Debugger does and limit the amount of steps there.

Alternatively, declare an upper time limit which you allow for user-supplied regular expressions.

The problematic part of the halting problem only comes into play for stuff that runs very long but not infinitely long. For the OP, these two cases fall into the same category.

  • Comment on Re^2: regex step counting (Halting problem)

Replies are listed 'Best First'.
Re^3: regex step counting (Halting problem)
by LanX (Saint) on Dec 03, 2019 at 14:51 UTC
    I never said that he has to solve the halting problem.

    His approach is to test against a set of input strings.°

    I wouldn't be surprised if a finit input set can't cover all cases for arbitrary regexes.

    This also highly depends on the allowed RegEx grammar, like embedded Perl code (at the extreme).

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

    °) "a few hundred sample lines"

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11109597]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-25 13:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found