[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Introduction

Daikon is an implementation of dynamic detection of likely invariants; that is, the Daikon invariant detector reports likely program invariants. An invariant is a property that holds at a certain point or points in a program; these are often seen in assert statements, documentation, and formal specifications. Invariants can be useful in program understanding and a host of other applications. Examples include “.field > abs(y)”; “y = 2*x+3”; “array a is sorted”; “for all list objects lst, lst.next.prev = lst”; “for all treenode objects n, n.left.value < n.right.value”; “p != null => p.content in myArray”; and many more. You can extend Daikon to add new properties (see section Enhancing Daikon output; see (./developer)New invariants section `New invariants' in Daikon Developer Manual).

Dynamic invariant detection runs a program, observes the values that the program computes, and then reports properties that were true over the observed executions. Daikon can detect properties in C, C++, Eiffel, Java, and Perl programs; in spreadsheet files; and in other data sources. (Dynamic invariant detection is a machine learning technique that can be applied to arbitrary data.) It is easy to extend Daikon to other applications; as one example, an interface exists to the Java PathFinder model checker.

Daikon is freely available for download from http://pag.csail.mit.edu/daikon/download/. The distribution includes both source code and documentation, and Daikon's license permits unrestricted use (see section License). Many researchers and practitioners have used Daikon; those uses, and Daikon itself, are described in various publications.

More information on Daikon can be found in the Daikon Developer Manual (see (./developer)Top section `Top' in Daikon Developer Manual). For instance, the Daikon Developer Manual indicates how to extend Daikon with new invariants, new derived variables, and front ends for new languages. It also contains information about the implementation and about debugging flags.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Mailing lists

The following mailing lists (and their archives) are available:

daikon-announce@lists.csail.mit.edu

A low-volume, announcement-only list. For example, announcements of new releases are sent to this list. To subscribe, visit https://lists.csail.mit.edu/mailman/listinfo/daikon-announce.

daikon-discuss@lists.csail.mit.edu

A moderated list for the community of Daikon users. Use it to share tips and successes, and to get help with questions or problems (after checking the documentation). To subscribe, visit https://lists.csail.mit.edu/mailman/listinfo/daikon-discuss.

daikon-developers@lists.csail.mit.edu

This list goes to the Daikon maintainers. Use it for bug reports, suggestions, and the like. If you are an active contributor to Daikon, you may send mail to the list asking to be added.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Daikon User on June, 23 2010 using texi2html 1.78.