Skip to content

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

Description

@pimlu

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions