Bringing Scheme programming to the iPhone—Experience

The iPhone SDK provides a powerful platform for the development of applications that make use of iPhone capabilities, such as sensors, GPS, Wi‐Fi, or Bluetooth connectivity. We observe that so far the development of iPhone applications has mostly been restricted to using Objective‐C. However, developing applications in plain Objective‐C on the iPhone OS suffers from limitations, such as the need for explicit memory management and lack of syntactic extension mechanism. Moreover, when developing distributed applications in Objective‐C, programmers have to manually deal with distribution concerns, such as service discovery, remote communication, and failure handling. In this paper, we discuss our experience in porting the Scheme programming language to the iPhone OS and how it can be used together with Objective‐C to develop iPhone applications. To support the interaction between Scheme programs and the underlying iPhone APIs, we have implemented a language symbiosis layer that enables programmers to access the iPhone SDK libraries from Scheme. In addition, we have designed high‐level distribution constructs to ease the development of distributed iPhone applications in an event‐driven style. We validate and discuss these constructs with a series of examples, including an iPod controller, a maps application, and a distributed multiplayer Scrabble‐like game. We discuss the lessons learned from this experience for other programming language ports to mobile platforms. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  Stéphane Ducasse,et al.  Inter-language reflection: A conceptual model and its implementation , 2006, Comput. Lang. Syst. Struct..

[2]  Kris Gybels SOUL and Smalltalk - Just Married: Evolution of the Interaction Between a Logic and an Object-Oriented Language Towards Symbiosis , 2003 .

[3]  Peter Norvig,et al.  SILK - a playful blend of Scheme and Java , 2000 .

[4]  Jessie Dedecker,et al.  AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).

[5]  Wolfgang Golubski,et al.  A Complete Semantics for SMALLTALK-80 , 1995, Comput. Lang..

[6]  Eija Kaasinen,et al.  User needs for location-aware mobile services , 2003, Personal and Ubiquitous Computing.

[7]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[8]  Wolfgang De Meuter,et al.  Linguistic symbiosis between actors and threads , 2007, ICDL '07.

[9]  Stephen Kochan Programming in Objective-C 2.0 , 2009 .

[10]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.

[11]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[12]  Pedro Pinto,et al.  Dot-Scheme A PLT Scheme FFI for the .NET framework , 2003 .

[13]  宋滟泓 App Store开人民币付款先河 苹果中国本土化路上问题多 , 2011 .

[14]  Cecilia Mascolo,et al.  Mobile Computing Middleware , 2002, NETWORKING Tutorials.

[15]  Guilherme Horta Travassos,et al.  ISPIS: From Conception towards Industry Readiness , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).

[16]  Per Bothner Kawa - Compiling Dynamic Languages to Java VM , 1998, USENIX Annual Technical Conference.

[17]  Wolfgang De Meuter,et al.  Linguistic symbiosis between event loop actors and threads , 2009, Comput. Lang. Syst. Struct..