Living it up with a live programming language

A dynamic language promotes ease of use through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more ease of use features. A live language supports live programming that provides programmers with responsive and continuous feedback about how their edits affect program execution. A live language is also based on high-level constructs such as declarative rules so that programmers can write less code. A live language could also provide programmers with responsive semantic feedback to enable time-saving services such as code completion. This paper describes the design of a textual live language that is based on reactive data-flow values known as signals and dynamic inheritance. Our language, SuperGlue, supports live programming with responsive semantic feedback, which we demonstrate with a working prototype.

[1]  Randall B. Smith,et al.  Directness and liveness in the morphic user interface construction environment , 1995, UIST '95.

[2]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[3]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[4]  Paul Hudak,et al.  Arrows, Robots, and Functional Reactive Programming , 2002, Advanced Functional Programming.

[5]  Fred L. Drake,et al.  The Python Language Reference Manual , 1999 .

[6]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[7]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[8]  Margaret M. Burnett,et al.  Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm , 2001, Journal of Functional Programming.

[9]  Craig Chambers,et al.  Predicate Classes , 1993, ECOOP.

[10]  William W. Wadge,et al.  Lucid, the dataflow programming language , 1985 .

[11]  Robert W. Floyd,et al.  Syntactic Analysis and Operator Precedence , 1963, JACM.

[12]  Ivan E. Sutherland,et al.  Sketchpad a man-machine graphical communication system , 1988, DAC 1988.

[13]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[14]  Jonathan Edwards,et al.  Subtext: uncovering the simplicity of programming , 2005, OOPSLA '05.

[15]  Marian Petre,et al.  Why looking isn't always seeing: readership skills and graphical programming , 1995, CACM.

[16]  Margaret M. Burnett,et al.  Scaling Up Visual Programming Languages , 1995, Computer.

[17]  Erik Sandewall,et al.  Programming in an Interactive Environment: the ``Lisp'' Experience , 1978, CSUR.

[18]  Olin Shivers,et al.  The semantics of Scheme control-flow analysis , 1991, PEPM '91.

[19]  Mitchel Resnick,et al.  Real-time programming and the big ideas of computational literacy , 2003 .

[20]  Scott Wallace,et al.  Fabrik: a visual programming environment , 1988, OOPSLA '88.

[21]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[22]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[23]  Wilson C. Hsieh,et al.  SuperGlue: Component Programming with Object-Oriented Signals , 2006, ECOOP.

[24]  Alexander Repenning AgentSheets: an Interactive Simulation Environment with End-User Programmable Agents , 2000 .

[25]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

[26]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[27]  Albert Benveniste,et al.  programmi language and its , 2001 .

[28]  Randall B. Smith,et al.  Programming as an Experience: The Inspiration for Self , 1995, ECOOP.

[29]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.