A Static Analysis Framework For Embedded Systems Nathan Cooprider John Regehr's Embedded Systems Group.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

Reliable Scripting Using Push Logic Push Logic David Greaves, Daniel Gordon University of Cambridge Computer Laboratory Reliable Scripting.
INSPIRE The Insieme Parallel Intermediate Representation Herbert Jordan, Peter Thoman, Simone Pellegrini, Klaus Kofler, and Thomas Fahringer University.
Course Outline Traditional Static Program Analysis Software Testing
1 CS 201 Compiler Construction Lecture 3 Data Flow Analysis.
Course Outline Traditional Static Program Analysis –Theory Compiler Optimizations; Control Flow Graphs Data-flow Analysis – today’s class –Classic analyses.
Data-Flow Analysis Framework Domain – What kind of solution is the analysis looking for? Ex. Variables have not yet been defined – Algorithm assigns a.
Control Flow Analysis (Chapter 7) Mooly Sagiv (with Contributions by Hanne Riis Nielson)
Whole-Program Linear-Constant Analysis with Applications to Link-Time Optimization Ludo Van Put – Dominique Chanet – Koen De Bosschere Ghent University.
Program Representations. Representing programs Goals.
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
Testing and Analysis of Device Drivers Supervisor: Abhik Roychoudhury Author: Pham Van Thuan 1.
Chapter 13 Embedded Systems
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Static Analysis of Embedded C Code John Regehr University of Utah Joint work with Nathan Cooprider.
TM Pro64™: Performance Compilers For IA-64™ Jim Dehnert Principal Engineer 5 June 2000.
Recap from last time We were trying to do Common Subexpression Elimination Compute expressions that are available at each program point.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
1 HOIST: A System for Automatically Deriving Static Analyzers for Embedded Systems John Regehr Alastair Reid School of Computing, University of Utah.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
1 Efficient Memory Safety for TinyOS Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing † Intel Research.
Cpeg421-08S/final-review1 Course Review Tom St. John.
1 TinyOS 2.1: Deploying Memory Safety Nathan Cooprider Yang Chen Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing †
1 Intermediate representation Goals: –encode knowledge about the program –facilitate analysis –facilitate retargeting –facilitate optimization scanning.
Random Testing of Interrupt-Driven Software John Regehr University of Utah.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Static Analysis of Embedded C John Regehr University of Utah Joint work with Nathan Cooprider.
1 Efficient Memory Safety for TinyOS 2.1 Yang Chen Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing.
High-Level Optimizations for Low-Level Software John Regehr University of Utah.
Establishing the overall structure of a software system
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Recap from last time: live variables x := 5 y := x + 2 x := x + 1 y := x y...
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
1 EE249 Discussion System Architecture Directions for Networked Sensors (J. Hill, et al) Presented By: Sarah Bergbreiter EE249 Discussion Section October.
Evolving Real-Time Systems using Hierarchical Scheduling and Concurrency Analysis John Regehr Alastair Reid Kirk Webb Michael Parker Jay Lepreau School.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Operating Systems: Internals and Design Principles.
Procedure Optimizations and Interprocedural Analysis Chapter 15, 19 Mooly Sagiv.
Using the Clang Integrated Assembler to Compile the Linux Kernel Bryce Adelstein-Lelbach, Louisiana State University.
Alleviating False Alarm Problem of Static Buffer Overflow Analysis Youil Kim
April 15, 2005TinyOS: A Component Based OSPage 1 of 27 TinyOS A Component-Based Operating System for Networked Embedded Systems Tom Bush Graduate College.
Data-Flow Analysis. Approaches Static Analysis Inspections Dependence analysis Symbolic execution Software Verification Data flow analysis Concurrency.
Control Flow Resolution in Dynamic Language Author: Štěpán Šindelář Supervisor: Filip Zavoral, Ph.D.
Flex Compiler Compiler Case Study By Mee Ka Chang.
ICD-C Compiler Framework Dr. Heiko Falk  H. Falk, ICD/ES, 2008 ICD-C Compiler Framework 1.Highlights and Features 2.Basic Concepts 3.Extensions.
Department of Computer Science A Static Program Analyzer to increase software reuse Ramakrishnan Venkitaraman and Gopal Gupta.
C++
1 Efficient Type and Memory Safety for Tiny Embedded Systems John Regehr Nathan Cooprider Will Archer Eric Eide University of Utah School of Computing.
C# Versus Java Author: Eaddy, Marc Source: Software Tools for the Professional Programmer. Dr. Dobb's Journal. Feb2001, Vol. 26 Issue 2, p74 Hong Lu CS699A.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
Static Program Analyses of DSP Software Systems Ramakrishnan Venkitaraman and Gopal Gupta.
Pluggable Domains for C Dataflow Analysis Nathan Cooprider and John Regehr {coop, School of Computing, University of Utah.
Static Program Analysis of Embedded Software Ramakrishnan Venkitaraman Graduate Student, Computer Science Advisor: Dr. Gopal Gupta
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Embedded Lab. Park Yeongseong.  Introduction  State of the art  Core values  Design  Experiment  Discussion  Conclusion  Q&A.
Finding and Understanding Bugs in C Compilers Xuejun Yang Yang Chen Eric Eide John Regehr University of Utah.
Pluggable Domains for C Dataflow Analysis Nathan Cooprider and John Regehr {coop, School of Computing, University of Utah.
TinyOS and nesC. Outline ● Wireless sensor networks and TinyOS ● Networked embedded system C (nesC) – Components – Interfaces – Concurrency model – Tool.
Nathan Cooprider and John Regehr University of Utah School of Computing Pluggable Abstract Domains for Analyzing Embedded Software.
Computer System Structures
Operating System for Sensor Network
State your reasons or how to keep proofs while optimizing code
Software Design Methodology
Topic 17: Memory Analysis
Chapter 15, Exploring the Digital Domain
Efficient Memory Safety for TinyOS 2.1
Fall Compiler Principles Lecture 10: Loop Optimizations
Dynamic Binary Translators and Instrumenters
Presentation transcript:

A Static Analysis Framework For Embedded Systems Nathan Cooprider John Regehr's Embedded Systems Group

, nesC and C ● – OS for wireless sensor network devices ● nesC – language designed for building applications for the TinyOS platform – It is really just an extension to C – The produced code is then compiled by gcc ● C – the lingua franca of embedded systems software development

CIL ● C Intermediate Language – developed at UCB ● Cleans up C to a few core constructs – removes syntactic sugar (like “->” notation) – arrays become pointers – all loops become while loops ● Works on real programs – handles ANSI-C, C, and GNU C – SPEC 95, linux kernel,, bzip

The Framework ● Classical dataflow analysis – Maintain variable information – Analyze until a fixed point is reached – Perform transformation based on analysis ● Its an infrastructure for future research ● Future work: Concurrency, backwards operations, degrees of context and/or path sensitivity

Flexibility ● The transformation, analysis, and variable information may all be switched out – Transformations: constant propagation, program verification through asserts, code elimination – Analysis: symbolic execution – Variable information: constant domain, value set domain, parity domain, interval domain, bitwise domain