Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
LabVIEW ni.com
A Vision for Verificationin LabVIEW
Jeff Kodosky
Co-founder & FellowNational Instruments
LabVIEW ni.com
Background
• Physics, LISP, Computer Science (‘70-’76)
• UT Applied Research Labs (‘73-’80)
• National Instruments (‘76-present)
• LabVIEW (‘86-present)
LabVIEW ni.com
Current Practice
• No formal verification in use
• Validation through testing
• Run-time “sanity” checking
• Complex tools, insufficient training
LabVIEW ni.com
Trends
• NI expanding from test to design
• More complex embedded systems
• Multicore and multithreading
• Notorious failures in the past (Therac-25)
• Tools + Practice + Complexity= Problem
LabVIEW ni.com
Needs
• Languages for designing embedded systems
• I/O and Time as first class elements
• Natural representation of parallelism
• Seamless incorporation of formal verification
LabVIEW ni.com
LabVIEW Basics• Graphical structured dataflow (G)
• Shift register memory element
• Virtual Instruments (VIs) with integral user interface
• Demo...
LabVIEW ni.com
LabVIEW Today
• Compile to machine code (inplace algorithm)
• Targets: desktop, multicore, real-time, FPGA
• Real-time: timed loop, single-cycle loop
• MoCs: simulation, state-chart, mathscript
• 10x Productivity
LabVIEW ni.com
Some ApplicationsBoeing
Phased Array Flyover Noise Test
Nexans
Remotely-OperatedUndersea Vehicle Control
MicroNova
12-cylinder EngineFuel-Injector Simulator
Drivven
Engine Control Unit
Microsoft
Xbox 360 Production Test
Coleman
Crystal Identification
Tristan
Brain Imaging
LabVIEW ni.com
LEGO MINDSTORMS NXT
LabVIEW ni.com
Advantages for Verification• Mostly functional, by-value, no pointers
• Isolated side-effects
• Simple control structures
• Graphical notation
• Extensible
LabVIEW ni.com
Vision for Verificationin LabVIEW
• Use the same language to specify assertions and invariants
• Compile assertions to execute at run time, or
• Verify assertions at compile time
LabVIEW ni.com
ExampleBubble Sort with Breakout
LabVIEW ni.com
Bubble Sortwith Assertions Added
LabVIEW ni.com
User Experience
LabVIEW ni.com
Current Research• Connect LabVIEW to ACL2
• Diagrams to S-expressions
• S-expressions to ACL2 function definitions
• Exploring approaches for handling loops
• Exploring approaches for modeling concurrency
LabVIEW ni.com
Expectations
• Proofs of pure functions straightforward
• Floating point headache is the same
• Stateful SubVIs more challenging
• Fairness, Progress, Real-time?
LabVIEW ni.com
Summary
• Make Verification More Accessible
• Implement Verification Incrementally
• Early Release for Experimentation
• Dataflow MoC Reduces Complexity