Next: Installing Daikon, Previous: Top, Up: Top [Contents][Index]
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 ‘x.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 Enhancing Daikon output, or see 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++, C#, Eiffel, F#, Java, Perl, and Visual Basic 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.
Daikon is freely available for download from download-site. The distribution includes both source code and documentation, and Daikon’s license permits unrestricted use (see License). Many researchers and practitioners have used Daikon; those uses, and Daikon itself, are described in various publications.
For more information on Daikon, see Introduction 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.
• Mailing lists: |
Up: Introduction [Contents][Index]
The following mailing lists (and their archives) are available:
A low-volume, announcement-only list. For example, announcements of new releases are sent to this list. To subscribe, visit https://groups.google.com/forum/#!forum/daikon-announce.
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://groups.google.com/forum/#!forum/daikon-discuss.
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.
Do not send the same message to multiple mailing lists. Doing so is antisocial: it causes confusion and extra work. If you do so, your question will not be answered.
Up: Introduction [Contents][Index]