Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Self interpreters don't work, whose bug is it? #3

Open
pimlu opened this issue Jul 21, 2020 · 0 comments
Open

Self interpreters don't work, whose bug is it? #3

pimlu opened this issue Jul 21, 2020 · 0 comments

Comments

@pimlu
Copy link
Owner

pimlu commented Jul 21, 2020

Problem

Running all the self-interpeters I've tried have failed to work in practice. Obviously there's two scenarios: my interpreter is broken, or their self-interpreter is broken. (or both...)

I've exhaustively tried all of them without success. Here is the status of each: (list comes from this SO question)

  • 48-Lomont - interpreter encounters an infinite loop at the state 7323258667244294114351733448898472761258667244411711
  • 84-Amadeus - works for a single fraction, 2 fractions hits an infinite loop (this is demo2 in the Haskell code)
  • 1779-Beder - assumed working, my program isn't smart enough to run this beast (never terminates, even on the smallest input I could construct)

Solution ideas

My problem is, my interpreter works on every program I can construct or run normally, but fails on a couple programs too large to run anywhere else. I want to prove or exclude my own interpreter as the root cause, but I'm not sure how yet.

The next thing I was thinking of was a fuzzer, but it seems unlikely to randomly generate useful control structures representative of a 50-fraction program, at least with a naive fuzzer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant