Daikon är en implementation av dynamisk detektion av sannolika invarianter; det vill säga Daikon invariant detektor rapporterar sannolikt programinvarianter. En invariant är en egendom som innehar vid en viss tidpunkt eller punkter i ett program; dessa används ofta i hävda uttalanden, dokumentation och formella specifikationer. Exempel är konstant (x = a), icke-noll (x = 0), vara i ett intervall (a ≤ x ≤ b), linjära relationer (y = ax + b), beställa (x ≤ y), funktioner från ett bibliotek (x = fn(y)), inneslutning (x  till y), sorteradhet (x sorteras) och många fler. Användare kan förlänga Daikon för att kontrollera ytterligare invarianter. Dynamisk invariant upptäckt kör ett program, observerar de värden som programmet beräknar, och sedan rapporterar egenskaper som var sanna över de observerade avrättningar. Dynamisk invariant detektion är en maskininlärning teknik som kan tillämpas på godtyckliga data. Daikon kan upptäcka invarianter i C, C++, Java och Perl program, och i rekordstrukturerade datakällor; det är lätt att utöka Daikon till andra program. Invarianter kan vara användbara i programförståelse och en mängd andra tillämpningar. Daikon's output har använts för att generera testfall, förutsäga inkompatibiliteter i komponentintegration, automatisera teorem-proving, reparera inkonsekventa datastrukturer, och kontrollera giltigheten av dataströmmar, bland andra uppgifter. Daikon är fritt tillgänglig i källa och binär form, tillsammans med omfattande dokumentation, på
Daikon Daikon REF-verktyget upptäcker sannolikt invarianter av C-, C++-, Java- och Perl-program.
The Daikon system for dynamic detection of likely invariants
{'venue': 'Science of Computer Programming', 'journal': None, 'mag_field_of_study': ['Computer Science']}