Abstract
The article describes an IDE for functional programming, called WinHIPE. It provides an interactive and flexible tracer, as well as a powerful visualization and animation system. The former tool is based on the rewriting model of evaluation, and the latter provides automatic generation of visualizations and animations, friendly support for customization, maintenance and exportation of animations to the Web, and facilities to cope with large scale. Its main advantage over other visualization systems is an effortless approach to animation creation and maintenance, based on generating visualizations and animations automatically, as a side effect of program execution. Finally, we briefly describe our experience using the system during several years in educational settings.
- Auguston, M. and Reinfelds, J. A Visual Miranda Machine. In Proc. of the Software Education Conference (SRITET'94), 1994, 198--203.Google Scholar
- Braßel, B., Chitil, O. Hanus, M. and Huch, F. Observing Functional Logic Computations. In B. Jayaraman (ed.), Proc. of the 6th International Symposium, PADL 2004, Springer-Verlag, LNCS 3057, 2004, 193--208.Google Scholar
- Findler, R. B. DrScheme: A programming environment for Scheme, Journal of Functional Programming, 12(2), 2002, 159--182. Google Scholar
Digital Library
- Foubister, S. P. and Runciman, C. Techniques for simplifying the visualization of graph reduction. In K. Hammond, D. N. Turner, and P. M. Sansom (eds.), Functional Programming, Springer, 1995, 65--77.Google Scholar
- Gill, A. Debugging Haskell by observing intermediate data structures. In G. Hutton (ed.), Proc. of the 2000 ACM SIGPLAN Haskell Workshop, ENTCS 41, Elsevier, 2000.Google Scholar
- Hanus, M. and Koj, J. Cider: An integrated development environment for Curry. In Functional and (Constraint) Logic Programming, WFPL 2001, Christian-Albrechts-Universitt zu Kiel, Report No. 2017, 2001, 369--373.Google Scholar
- Kawaguchi, N., Sakabe, T. and Inagaki, Y. Terse: Term rewriting support environment. In Proc. of the 1994 ACM SIGPLAN Workshop on Standard ML and its Applications, ACM Press, 1994, 91--100.Google Scholar
- Khuri, S. Designing effective algorithm visualizations. In Sutinen, E. (ed.), Proc. of the 1st Program Visualization Workshop, University of Joensuu, Finland, 2001, 1--12.Google Scholar
- Knuth, D. E. The Art of Computer Programming, vol. 1, Fundamental Algorithms. Addison-Wesley, 3rd edition, 1997 Google Scholar
Digital Library
- Lieberman, H. and Fry, C. ZStep95: A reversible, animated source code stepper. In J. T. Stasko, J. Domingue, M. H. Brown, and B. A. Price (eds.), Software Visualization, MIT Press, 1998, 277--292.Google Scholar
- Medina-Sanchez, M. A., Lázaro-Carrascosa, C. A., Pareja-Flores, C., Urquiza-Fuentes, J. and Velázquez-Iturbide, J. A. Empirical evaluation of usability of animations in a functional programming environment, Universidad Complutense de Madrid, Technical Report 141/04, 2004.Google Scholar
- Nilsson, H. and Sparud, J. The evaluation dependence tree as a basis for lazy functional debugging, Automated Software Engineering, 4(2), 1997, 121--150. Google Scholar
Digital Library
- Pareja-Flores, C., Peña, R., Rubio, C. and Segura, C. Adding traces to a lazy monadic evaluator. In Computer Aided Systems Theory-EUROCAST 2001. Springer-Verlag, LNCS 2178, 2001, 627--641. Google Scholar
Digital Library
- Oudshorn, M. J., Widjaja, H. and Ellershaw, S. K. Aspects and taxonomy of program visualisation. In P. Eades and K. Zhang (eds.), Software Visualisation. World Scientific Publishing, 1996, 3--26.Google Scholar
- Pope, B. Buddha: A Declarative Debugger for Haskell. PhD thesis, Department of Computer Science, The University of Melbourne, Australia, 1998.Google Scholar
- Reinke, C. GHood: Graphical visualisation and animation of Haskell object observations. In R. Hinze (ed.), Proc. of the 2001 ACM SIGPLAN Haskell Workshop, volume 59 of ENTCS, Elsevier, 2001, 121--149.Google Scholar
- Sparud, J. and Runciman, C. Tracing lazy functional computations using redex trails. In H. Glasser, P. Hartel, and H. Kuchen (eds.), Proc. of the 9th Intl. Symp. on Programming Languages, Implementations, Logics and Programs (PLILP'97), Springer-Verlag, LNCS 1292, 1997, 291--308. Google Scholar
Digital Library
- Taylor, J. P. Presenting the evaluation of lazy functions. PhD thesis, Department of Computer Science, Queen Mary University of London and Westfield College, UK, 1995.Google Scholar
- Urquiza-Fuentes, J. and Velázquez-Iturbide, J.Á. Effortless construction and management of program animations on the Web. In R. W. H. Lau, Q. Li, R. Cheung and W. Liu (eds.), Advances in Web-Based Learning---ICWL 2005, Springer-Verlag, LNCS 3583, 2005, 163--173. Google Scholar
Digital Library
- Urquiza-Fuentes, J. and Velázquez-Iturbide, J.Á. An evaluation of the effortless approach to build algorithm animations with WinHIPE, In Proc. of the 4th Program Visualization Workshop (PVW 2006), 2006, 29--33.Google Scholar
- Urquiza-Fuentes, J. Velázquez-Iturbide, J.Á. and Lázaro-Carrascosa, C. Design and evaluation of R-Zoom, a new focus+context visualization technique. In Proc. of the VII Congreso Internacional de Interacción Persona-Ordenador (INTERACCIÓN 2006), 2006, 79--88.Google Scholar
- Velázquez-Iturbide, J.Á. Improving functional programming environments for education. In M. D. Brouwer-Janse and T. L. Harrington (eds.), Man-Machine Communication for Educational Systems Design, Springer-Verlag, 1994, 325--332.Google Scholar
- Velázquez-Iturbide, J.Á. A programming languages course for freshmen. In Proc. of the 10th Annual Conference on Innovation and Technology in Computer Science Education, ACM Press, 2005, 271--275. Google Scholar
Digital Library
- Velázquez-Iturbide, J.Á. Principled design of logical fisheye views of functional expressions, ACM SIGPLAN Notices, 41(8), 2006, 34--43. Google Scholar
Digital Library
- Velázquez-Iturbide, J.Á., Pareja-Flores, C. and Urquiza-Fuentes, J. An approach to effortless construction of program animations, Computers & Education, in press.Google Scholar
- Watson, R. and Salzman, E. A trace browser for a lazy functional language. In Proc. of the 20th Australian Computer Science Conference, 1997, 356--36Google Scholar
Index Terms
WinHIPE: an IDE for functional programming based on rewriting and visualization
Recommendations
Tailoring animations of example programs
Koli Calling '15: Proceedings of the 15th Koli Calling Conference on Computing Education ResearchWe are developing a toolkit for tailoring program visualizations (PVs) so that they integrate well into their pedagogical contexts. Educators can use the toolkit, Kelmu, to alter animations of example programs with text, visual cues, audio, and ...
Animation Metaphors for Object-Oriented Concepts
Program visualization and animation has traditionally been done at the level of the programming language and its implementation in a computer. However, novices do not know these concepts and visualizations that build upon programming language ...
Constraint-based layout in visual program design
VL '95: Proceedings of the 11th International IEEE Symposium on Visual LanguagesVisual program layout and program visualization make a number of useful contributions for all kinds of graphical editing tasks. We describe the constraint-based graphical editor InLay that automatically handles aspects of display layout in visual ...






Comments