Abstract
We present a user-friendly approach to unifying program creation and execution, based on a notion of "tangible values" (TVs), which are visual and interactive manifestations of pure values, including functions. Programming happens by gestural composition of TVs. Our goal is to give end-users the ability to create parameterized, composable content without imposing the usual abstract and linguistic working style of programmers. We hope that such a system will put the essence of programming into the hands of many more people, and in particular people with artistic/visual creative style.
In realizing this vision, we develop algebras for visual presentation and for "deep" function application, where function and argument may both be nested within a structure of tuples, functions, etc. Composition gestures are translated into chains of combinators that act simultaneously on statically typed values and their visualizations.
- Artem Alimarine, Sjaak Smetsers, Arjen van Weelden, Marko van Eekelen, and Rinus Plasmeijer. There and back again: arrows for invertible programming. In Haskell '05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pages 86--97, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- Margaret Burnett, John Atwood, Rebecca Walpole Djang, James Reichwein, Herkimer Gottfried, and Sherry Yang. Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm. Journal of Functional Programming, 11 (2): 155--206, 2001. Google Scholar
Digital Library
- Conal Elliott. Functional Images. In The Fun of Programming, "Cornerstones of Computing" series. Palgrave, March 2003.Google Scholar
- Keith Hanna. Interactive visual functional programming. In S Peyton Jones, editor, ICFP '02: Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming, pages 100--112. ACM, October 2002. Google Scholar
Digital Library
- Paul Hudak and Mark P. Jones. Haskell vs. Ada vs. C++ vs Awk vs ... an experiment in software prototyping productivity. Technical report, Yale, 1994.Google Scholar
- John Hughes. Generalising monads to arrows. Science of Computer Programming, 37: 67--111, May 2000. Google Scholar
Digital Library
- Mark P. Jones. Type classes with functional dependencies. In ESOP '00: Proceedings of the 9th European Symposium on Programming Languages and Systems, pages 230--244, London, UK, 2000. Springer-Verlag. Google Scholar
Digital Library
- Joel Kelso. A visual representation for functional programs. Technical Report CS/95/01, Western Australia, Australia, 1994.Google Scholar
- Marc Levoy. Spreadsheets for images. In SIGGRAPH '94: Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques, pages 139--146, New York, NY, USA, 1994. ACM Press. Google Scholar
Digital Library
- M. A. Najork and E. Golin. Enhancing show-and-tell with a polymorphic type system and higher-order functions. In Proceedings of the IEEE Workshop 1990 on Visual Languages, pages 215--220, Skokie, IL, 1990.Google Scholar
Cross Ref
- André Pang, Don Stewart, Sean Seefried, and Manuel M. T. Chakravarty. Plugging Haskell in. In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 10--21. ACM Press, 2004. Google Scholar
Digital Library
- Simon Peyton Jones and Mark Shields. Lexically scoped type variables. March 2002.Google Scholar
- Simon Peyton Jones, Alan Blackwell, and Margaret Burnett. A user-centred approach to functions in Excel. In ICFP '03: Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, pages 165--176, New York, NY, USA, 2003. ACM Press. Google Scholar
Digital Library
- Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, and Geoffrey Washburn. Simple unification-based type inference for GADTs. In Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming, Portland, Oregon, September 2006. ACM SIGPLAN. Google Scholar
Digital Library
- Frank Pfenning and Conal Elliott. Higher-Order Abstract Syntax. In Programming Language Design and Implementation, 1988. Google Scholar
Digital Library
- Jörg Poswig, Guido Vrankar, and Claudio Moraga. VisaVis: a higher-order functional visual programming language. Journal of Visual Languages and Computing, 5 (1): 83--111, 1994.Google Scholar
Digital Library
- John C. Reynolds. Towards a theory of type structure. In Programming Symposium, Proceedings Colloque sur la Programmation, pages 408--423, London, UK, 1974. Springer-Verlag. Google Scholar
Digital Library
- David Wakeling. Spreadsheet functional programming. Journal of Functional Programming, 17 (1): 131--143, 2007. Google Scholar
Digital Library
Index Terms
Tangible functional programming
Recommendations
Tangible functional programming
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programmingWe present a user-friendly approach to unifying program creation and execution, based on a notion of "tangible values" (TVs), which are visual and interactive manifestations of pure values, including functions. Programming happens by gestural ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12Programmers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...







Comments