Interpreter for the iPhone?

In principle, Apple allows interpreters as long as they can't download code. There's a scheme interpreter called "Pixie Scheme III" which is in App Store.


I am the developer of Pixie Scheme III. It runs only on the iPad. Perhaps some comments about what it is and does would help other prospective developers of similar kinds of apps.

Pixie Scheme III is very nearly a full "R5" Scheme (that is, one that meets the standard specified by (Richard Kelsey, William Clinger and Jonathan Rees (editors), 20 February 1998. "Revised5 Report on the Algorithmic Language Scheme"). The only things required by the R5 report that Pixie Scheme III does not do involve the interface to files -- since the iPad does not allow general user access to its underlying Unix file system, I decided to go with the flow and live with that restriction.

Furthermore, Pixie Scheme III is open source (GNU GPL); Apple has had concerns about open-source stuff in the past.

Furthermore, Scheme is an extremely powerful general-purpose programming language.

So I admit I was both a bit surprised and much delighted that Apple accepted my app for the App Store. (I have been developing Scheme interpreters for years: I have released several shareware/open-source Scheme interpreters for the Mac.) I certainly met the restrictions about the app not downloading code, and I suspect that several other things I did may have helped:

  1. I did not include anything like an interface to the Unix "system" command, or to any other low-level Unix command not required by the R5 standard.
  2. I did not attempt any kind of interface to Apple's libraries for developing iPad apps -- Pixie Scheme III is text-based, both for input and for output.
  3. I spent quite a while trying to figure out a user interface design for the Scheme interpreter that appeared to match Apple's intended look and feel for iPad apps. (As you may imagine, Apple had no guidelines for how to develop a programming-language tool for the iPad.)

Anyhow, Apple did accept Pixie Scheme III, and has accepted one revision since the original. So on the basis of my experience I would say that there is hope for other interpreters and similar tools on the iPad and on other iOS devices.

Anyone who wishes further details is welcome to contact me by EMail.

And by the way, I should perhaps mention that despite the similarity of names, I am not "Saurik" ... :-)


Apple started officially allowing programming language interpreters in the iOS App store late Q3 of 2010 (they changed their SDK agreement to clarify this). However interpreters (except for Javascript in a UIWebview) are not allowed to run any downloaded code. Only code built into the app, or typed in by the user.

There are 5 or more Basic interpreters currently available in the App store. They all require you to type in your Basic program.

If you create an interpreter, you might want to make sure it complies with the iOS SDK sandbox rules (doesn't allow file snooping outside the sandbox or attempts at spawning processes, etc.)

Update: Around June, 2017, Apple amending their Developer agreement, section 3.3.2, again, to allow educational programming apps to download and interpret certain kinds of code. The downloaded code has to be viewable and editable, can't modify more than 80% of the display, can't change the type of app, and can't have a storefront, etc.