skip to main content
article

WinHIPE: an IDE for functional programming based on rewriting and visualization

Published:01 March 2007Publication History
Skip Abstract Section

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.

References

  1. Auguston, M. and Reinfelds, J. A Visual Miranda Machine. In Proc. of the Software Education Conference (SRITET'94), 1994, 198--203.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. Findler, R. B. DrScheme: A programming environment for Scheme, Journal of Functional Programming, 12(2), 2002, 159--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. Knuth, D. E. The Art of Computer Programming, vol. 1, Fundamental Algorithms. Addison-Wesley, 3rd edition, 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. Pope, B. Buddha: A Declarative Debugger for Haskell. PhD thesis, Department of Computer Science, The University of Melbourne, Australia, 1998.Google ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. Velázquez-Iturbide, J.Á. Principled design of logical fisheye views of functional expressions, ACM SIGPLAN Notices, 41(8), 2006, 34--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Velázquez-Iturbide, J.Á., Pareja-Flores, C. and Urquiza-Fuentes, J. An approach to effortless construction of program animations, Computers & Education, in press.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar

Index Terms

  1. WinHIPE: an IDE for functional programming based on rewriting and visualization

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!