• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Debugging haskell by observing intermediate data structures (0)

by Andy Gill
Venue:University of Nottingham
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 31
Next 10 →

Multiple-view tracing for Haskell: a new hat

by Malcolm Wallace, Olaf Chitil, Thorsten Brehm, Colin Runciman - In Preliminary Proceedings of the 2001 ACM SIGPLAN Haskell Workshop , 2001
"... Different tracing systems for Haskell give different views of a program at work. In practice, several views are complementary and can productively be used together. Until now each system has generated its own trace, containing only the information needed for its particular view. Here we present the ..."
Abstract - Cited by 35 (9 self) - Add to MetaCart
Different tracing systems for Haskell give different views of a program at work. In practice, several views are complementary and can productively be used together. Until now each system has generated its own trace, containing only the information needed for its particular view. Here we present the design of a trace that can serve several views. The trace is generated and written to file as the computation proceeds. We have implemented both the generation of the trace and several different viewers. 1

Freja, Hat and Hood - A Comparative Evaluation of Three Systems for Tracing and Debugging Lazy Functional Programs

by Olaf Chitil, Colin Runciman, Malcolm Wallace - In Proc. of the 12th International Workshop on Implementation of Functional Languages (IFL 2000 , 2001
"... In this paper we compare three systems for tracing and debugging Haskell programs: Freja, Hat and Hood. We evaluate their usefulness in practice by applying them to a number of moderately complex programs in which errors had deliberately been introduced. We identify the strengths and weaknesses of e ..."
Abstract - Cited by 27 (9 self) - Add to MetaCart
In this paper we compare three systems for tracing and debugging Haskell programs: Freja, Hat and Hood. We evaluate their usefulness in practice by applying them to a number of moderately complex programs in which errors had deliberately been introduced. We identify the strengths and weaknesses of each system and then form ideas on how the systems can be improved further.

Redux: A dynamic dataflow tracer

by Nicholas Nethercote, Alan Mycroft - Electronic Notes in Theoretical Computer Science , 2003
"... Abstract Redux is a tool that generates dynamic dataflow graphs. It generates these graphs by tracing a program's execution and recording every value-producing operation that takes place, building up a complete computational history of every value produced. For that execution, by considering the par ..."
Abstract - Cited by 22 (6 self) - Add to MetaCart
Abstract Redux is a tool that generates dynamic dataflow graphs. It generates these graphs by tracing a program's execution and recording every value-producing operation that takes place, building up a complete computational history of every value produced. For that execution, by considering the parts of the graph reachable from system call inputs, we can choose to see only the dataflow that affects the outside world. Redux works with program binaries, and thus is not restricted to programs written in any particular language. We explain how Redux works, and show how dynamic dataflow graphs give the essence of a program's computation. We show how Redux can be used for debugging and program slicing, and consider a range of other possible uses. 1 Introduction Redux is a tool that generates dynamic dataflow graphs (DDFGs). These graphs represent the entire computational history of a program. 1.1 Overview Redux supervises a program as it executes, and records the dataflow--inputs and outputs--of every operation that produces a value. Every register and word of memory is shadowed by a pointer to a sub-graph that shows how the value was computed.

A Semantics for Tracing Declarative Multi-Paradigm Programs

by B. Brassel, M. Hanus, F. Huch - In Proceedings of the 6th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP’04 , 2004
"... We introduce the theoretical basis for tracing lazy functional logic computations in a declarative multi-paradigm language like Curry. Tracing computations is a difficult task due to the subtleties of the underlying operational semantics which combines laziness and non-determinism. In this work, we ..."
Abstract - Cited by 19 (11 self) - Add to MetaCart
We introduce the theoretical basis for tracing lazy functional logic computations in a declarative multi-paradigm language like Curry. Tracing computations is a difficult task due to the subtleties of the underlying operational semantics which combines laziness and non-determinism. In this work, we define an instrumented operational semantics that generates not only the computed values and bindings but also an appropriate data structure—a sort of redex trail—which can be used to trace computations at an adequate level of abstraction. In contrast to previous approaches, which rely solely on a transformation to instrument source programs, the formal definition of a tracing semantics improves the understanding of the tracing process. Furthermore, it allows us to formally prove the correctness of the computed trail. A prototype implementation of a tracer based on this semantics demonstrates the usefulness of our approach.

Testing and tracing lazy functional programs using Quickcheck and Hat

by Koen Claessen, Colin Runciman, Olaf Chitil, John Hughes, Malcolm Wallace - In 4th Summer School in Advanced Functional Programming, number 2638 in LNCS , 2003
"... ..."
Abstract - Cited by 13 (9 self) - Add to MetaCart
Abstract not found

Observing Functional Logic Computations

by Bernd Braßel, Olaf Chitil, Michael Hanus, Frank Huch - In Proc. of the Sixth International Symposium on Practical Aspects of Declarative Languages (PADL’04 , 2004
"... Abstract. A lightweight approach to debugging functional logic programs by observations is presented, implemented for the language Curry. The Curry Object Observation System (COOSy) comprises a portable library plus a viewing tool. A programmer can observe data structures and functions by annotating ..."
Abstract - Cited by 11 (9 self) - Add to MetaCart
Abstract. A lightweight approach to debugging functional logic programs by observations is presented, implemented for the language Curry. The Curry Object Observation System (COOSy) comprises a portable library plus a viewing tool. A programmer can observe data structures and functions by annotating expressions in his program. The possibly partial values of observed expressions that are computed during program execution are recorded in a trace file, including information on non-deterministic choices and logical variables. A separate viewing tool displays the trace content. COOSy covers all aspects of modern functional logic multiparadigm languages such as lazy evaluation, higher order functions, non-deterministic search, logical variables, concurrency and constraints. Both use and implementation of COOSy are described. 1

GHood -- Graphical Visualisation and Animation of Haskell Object Observations

by Claus Reinke , 2001
"... ... The visualisation of program behaviour via animations of data structure observations has uses for program comprehension and exposition, in development, debugging and education. We find that the graphical structure facilitates orientation even when textual labels are no longer readable due to sca ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
... The visualisation of program behaviour via animations of data structure observations has uses for program comprehension and exposition, in development, debugging and education. We find that the graphical structure facilitates orientation even when textual labels are no longer readable due to scaling, suggesting advantages over a purely textual visualisation. A novel application area is opened by the use of GHood as an applet on web pages- discussions of Haskell program behaviour, e.g., in educational online material or in explanations of functional algorithms, can now easily be augmented with graphical animations of the issues being discussed.

Lazy Call-By-Value Evaluation

by Bernd Braßel, Sebastian Fischer, Michael Hanus, Frank Huch - In Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP’07 , 2007
"... Designing debugging tools for lazy functional programming languages is a complex task which is often solved by expensive tracing of lazy computations. We present a new approach in which the information collected as a trace is reduced considerably (kilobytes instead of megabytes). The idea is to coll ..."
Abstract - Cited by 6 (5 self) - Add to MetaCart
Designing debugging tools for lazy functional programming languages is a complex task which is often solved by expensive tracing of lazy computations. We present a new approach in which the information collected as a trace is reduced considerably (kilobytes instead of megabytes). The idea is to collect a kind of step information for a call-by-value interpreter, which can then efficiently reconstruct the computation for debugging/viewing tools, like declarative debugging. We show the correctness of the approach, discuss a proof-of-concept implementation with a declarative debugger as back end and present some benchmarks comparing our new approach with the Haskell debugger Hat.

Towards a theory of tracing for functional programs based on graph rewriting

by Olaf Chitil, Yong Luo - Draft Proceedings of the 3rd International Workshop on Term Graph Rewriting, Termgraph 2006 , 2006
"... The tracer Hat records in a detailed trace the computation of a program written in the lazy functional language Haskell. The trace can then be viewed in various ways to support program comprehension and debugging. Here we describe a model of the trace that captures its essential properties and allow ..."
Abstract - Cited by 4 (3 self) - Add to MetaCart
The tracer Hat records in a detailed trace the computation of a program written in the lazy functional language Haskell. The trace can then be viewed in various ways to support program comprehension and debugging. Here we describe a model of the trace that captures its essential properties and allows formal reasoning. The trace structure was inspired by standard graph rewriting implementations of functional languages. The trace is a graph which is constructed by graph rewriting but goes beyond simple term graphs.

HsDebug: Debugging Lazy Programs by Not Being Lazy

by Robert Ennals, Simon Peyton Jones - IN HASKELL ’03: PROCEEDINGS OF THE 2003 ACM SIGPLAN WORKSHOP ON HASKELL , 2003
"... ..."
Abstract - Cited by 3 (0 self) - Add to MetaCart
Abstract not found
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University