Daikon FAQ (Frequently Asked Questions)

Daikon FAQ (Frequently Asked Questions) - Daikon FAQ...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
[ Home | FAQ | Download | Documentation | Publications | Mailing lists ] Daikon FAQ (Frequently Asked Questions) Contents: How can I get Daikon? What is Daikon? What is an operational abstraction? What is an operational abstraction good for? How is an operational abstraction used? How accurate is Daikon? How can I change my program to make Daikon work better? What does the name Daikon mean? What's new in Daikon? How can I get help? How can I learn more? How can I help? How can I get Daikon? Daikon is available for download, including source code, binaries, and documentation, at http://pag.csail.mit.edu/daikon/download/ . What is Daikon? Daikon is an invariant detector . Given a data source (such as the values computed by a program at runtime), Daikon generalizes over the observed values and reports properties that are true about the data. Daikon implements a type of machine learning to summarize the raw data into a small set of easily comprehensible formulas. What is an operational abstraction? The set of formulas that Daikon outputs is called an operational abstraction . The operational abstraction states properties about a program's data structures — the sort that might be written in an assert statement or a formal specification. Here is a simple example of Daikon's output: StackAr.html . The colored annotations starting with “ @ ” (in JML format) were automatically detected by Daikon and automatically inserted in the source code. Many other uses for invariants are possible in addition to insertion as documentation. Daikon FAQ (Frequently Asked Questions) http://groups.csail.mit.edu/pag/daikon/faq.html 2/24/2012 12:12 PM You created this PDF from an application that is not licensed to print to novaPDF printer ( http://www.novapdf.com )
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
What is an operational abstraction good for? Program properties (such as specifications and dynamically detected invariants) are useful for a wide variety of software construction, understanding, reuse, and modification tasks. The properties may be examined by a human or used as input to a tool Direct uses of invariants by a human include: Document code, indicating the structure of its data and computation. Maintain invariants to avoid introducing bugs; if a property is established at one point in a program, it is likely to be depended on elsewhere, but if the invariant is not documented, it is all to easy to accidentally violate it, introducing a bug in a far-removed part of the program.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 02/24/2012 for the course CSE 503 taught by Professor Davidnotikin during the Spring '11 term at University of Washington.

Page1 / 4

Daikon FAQ (Frequently Asked Questions) - Daikon FAQ...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online