UNO Static Analysis With a Simple Twist.

Slides:



Advertisements
Similar presentations
Symbol Table.
Advertisements

Semantics Static semantics Dynamic semantics attribute grammars
Chapter 10 Code Optimization. A main goal is to achieve a better performance Front End Code Gen Intermediate Code source Code target Code user Machine-
1 Compiler Construction Intermediate Code Generation.
Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Introduction to Optimization Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved.
Program Analysis Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Overview of program analysis Mooly Sagiv html://
Design Synopsys System Verilog API Donations to Accellera João Geada.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Functions in C. Function Terminology Identifier scope Function declaration, definition, and use Parameters and arguments Parameter order, number, and.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Compositional correctness of IP-based system design: Translating C/C++ Models into SIGNAL Processes Rennes, November 04, 2005 Hamoudi Kalla and Jean-Pierre.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
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.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
DTS ( Defect Testing System ) Yang Zhao Hong, Gong Yun Zhan,Xiao Qing, Wang Ya Wen Beijing University of Posts and Telecommunications
Software Testing Łukasz Wojcieszek s2690 Tomasz Wyrzuc s2675.
Compiler Principles Fall Compiler Principles Lecture 0: Local Optimizations Roman Manevich Ben-Gurion University.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Compiler Construction Composed By, Muhammad Bilal Qureshi.
What am I? while b != 0 if a > b a := a − b else b := b − a return a AST == Abstract Syntax Tree.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Today: –Review declaration, implementation, simple class structure. –Add an exception class and show.
Semantic Analysis II Type Checking EECS 483 – Lecture 12 University of Michigan Wednesday, October 18, 2006.
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science The University of Arizona, Tucson
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
LECTURE 10 Semantic Analysis. REVIEW So far, we’ve covered the following: Compilation methods: compilation vs. interpretation. The overall compilation.
CHAPTER 1 INTRODUCTION TO COMPILER SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Integrating Algorithms and Coding into the Mathematics Classroom
Lecture 9 Symbol Table and Attributed Grammars
Code Optimization Code produced by compilation algorithms can often be improved (ideally optimized) in terms of run-time speed and the amount of memory.
Advanced Computer Systems
Semantic analysis Jakub Yaghob
Code Optimization.
More Sophisticated Behavior
Working with Java.
PRINCIPLES OF COMPILER DESIGN
Introduction to Compiler Construction
Lexical and Syntax Analysis
Verification and Validation
Compiler Construction (CS-636)
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Programming Languages and Compilers (CS 421)
C Language By Sra Sontisirikit
Review: Chapter 5: Syntax directed translation
Coding Defensively Coding Defensively
Overview of Compilation The Compiler BACK End
Verification and Validation
Compiler Construction
CS360 Windows Programming
For Example: User level quicksort program Three address code.
Component-Level Design
SUDS: An Infrastructure for Creating Bug Detection Tools
Multiple Aspect Modeling of the Synchronous Language Signal
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Tonga Institute of Higher Education
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science
How to stop Fortran programming problems at the source
Catharine West Bo Aye Saljin LaRocca references
Chapter 4 Action Routines.
Semantic Markup for Semantic Web Tools:
Intermediate Code Generation
Compiler Construction
COP4020 Programming Languages
COP4020 Programming Languages
Chapter 8 - Design Strategies
Intermediate Code Generating machine-independent intermediate form.
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Compiler design Review COMP 442/6421 – Compiler Design
Presentation transcript:

UNO Static Analysis With a Simple Twist. Richard Mancusi CSCI – 297

Essential Principles Uninitialized Variables Null Pointers Out-of-Bounds Array Indices There is a two-fold focus to this tool: Keep things simple and remove the noise associated with other static tools. Allow for a simple means to extend the analysis In particular, the author references the inability of lint tools to be very succinct in its output.

Mechanics Builds upon ctree, a public-domain compiler front-end with a few modifications Parse tree transformation into control flow graph, with interpretations for goto and return statements Statement attributes describing all object usage for use by the dataflow analysis module Global analysis mechanism implemented Extensibility using C-like syntax, …simple.

Example: ‘lint –p’ “lint –p” is a running of lint using its portability option. This is 16 lines of output, 67 words to describe two errors.

The Better Tool (here): The comments generated by this tool targets the possible issues with minimal verbiage. User has be sharper focus.

Example: Extensibility via Properties This property is used to identify any side effect or function call that occurs within a select statement.

References Gerard J. Holzmann, Uno: Static Source Code Checking for User-Defined Properties, 2002. http://spinroot.com/uno