The document discusses Moby, a Scheme compiler for smartphones that allows beginner programmers to write programs using events from sensors like location, tilt, and touch. It describes some example programs, including a game that responds to tilt input and a store locator app that uses the phone's location. The document advocates for Moby's approach of using a unifying "world" concept and functional reactive programming to handle parallelism and concurrency on distributed systems like smartphones.
11. begin … end; begin … … end; begin … … … end; begin … … end; begin … … … … … … … … … … end; begin … … … … … … … … … … … … end. begin … end; .
12. flights from PVD to CDG list of flights the third outward flight restricted list of return flights the second return flight ok must remember list of flights must remember restricted list of return flights
13. user typed ‘(’ ok user moved mouse ok user clicked mouse button ok different kinds of handlers
14. user moved right 10 yards ok user tilted phone left ok user moved left 10 yards ok loc: (10,0) loc: (0,0) loc: (10,0) loc: (10,0) loc: (0,0) loc: (10,0)
22. void void void Why void ? The hostile operating system Why hostile? Because it’s neutral But neutrality hostility Neutrals can cooperate (impartially)
24. Current value of World New value of World Might be enriched with additional event information Phone example: World is current location Will invoke event-specific functions (define (on-move w d) (posn+ w d)) (define (on-tilt w o) w)
25. on-tick :: w w on-move :: w dist w on-tilt :: w incl w on-key :: w key w on-click :: w btn w on-redraw :: w scene stop-when :: w bool
49. On the Internet, nobody knows you’re a Scheme program JavaScript Java Processing J2ME Flash/ActionScript Objective-C NXT NXC RobotC BricxCC Design Programming system Execution model {