ATOM: A System for Building Customized Program Analysis Tools.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Systems Analysis, Prototyping and Iteration Systems Analysis.
Systems Software.
Programming Creating programs that run on your PC
Software: Systems and Application Software
Computer Concepts 5th Edition Parsons/Oja Page 546 CHAPTER 11 Software Engineering Section A PARSONS/OJA Computer Programming.
Computers: Tools for an Information Age
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
Table 1. Software Hierarchy Levels.. Essential Tools An assembler is a program that converts source-code programs into a machine language (object file).
SOFTWARE SYSTEMS SOFTWARE APPLICATIONS SOFTWARE PROGRAMMING LANGUAGES.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Efficient Instruction Set Randomization Using Software Dynamic Translation Michael Crane Wei Hu.
Types of software. Sonam Dema..
An ide for teaching and learning prolog
Other Features Index and table of contents Macros and VBA.
Installing Windows Vista Lesson 2. Skills Matrix Technology SkillObjective DomainObjective # Performing a Clean Installation Set up Windows Vista as the.
Comparing Python and Visual Basic
Introduction to Programming End Show. Resource Team R.P Ranjan-Lecturer, SPICTEC, Galle. W.M.A.S. Wijesekara-Centre manager,CRC Hali-Ela H.P.U.S Indra.
TH-OCR NK. content introduction go to next page background assumptions overall structure chart IPO for overall structure dataflow diagram of overall structure.
CW-V1 SDD 0201 Principals of Software Design and Development Introduction to Programming Languages.
Chapter 5 – Part II IT Infrastructure and Emerging Technologies.
Programming and Application Packages
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
CCS APPS CODE COVERAGE. CCS APPS Code Coverage Definition: –The amount of code within a program that is exercised Uses: –Important for discovering code.
CHAPTER FOUR COMPUTER SOFTWARE.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Configuration Management (CM)
Introduction to C++ Programming Language
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Information Systems Overview (COIS 20024) Lecture: Week 3 Computer Software (Information Systems Resources)
Introduction to Programming Lecture No. 1. Books  Deitel & Deitel :– C++ How to Program  Kernighan and Ritchie:- The C Programming Language.
Database What is a database? A database is a collection of information that is typically organized so that it can easily be storing, managing and retrieving.
Chapter 12 WinGP Otasuke GP-EX! WinGP Chapter 12.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
CS CS CS IA: Procedural Programming CS IB: Object-Oriented Programming.
Processes Introduction to Operating Systems: Module 3.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
CS Computer Science I. BCPL was developed in 1967 as a language for writing operating systems and software compilers In 1970, the creators of the.
Computer Software Types Three layers of software Operation.
CREATED BY – UPENDRA SHARMA
Programming Fundamentals Lecture No. 2. Course Objectives Objectives of this course are three fold 1. To appreciate the need for a programming language.
Click to add text Systems Analysis, Prototyping and Iteration.
Getting ready. Why C? Design Features – Efficiency (C programs tend to be compact and to run quickly.) – Portability (C programs written on one system.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
DOCUMENTATION REF: Essentials of IT (Hamilton et al) Chapter 1.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Engineering Algorithms, Compilers, & Lifecycle.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Why don’t programmers have to program in machine code?
Object Oriented Programming
Operating System Interface between a user and the computer hardware
CSCI-235 Micro-Computer Applications
Microprocessor and Assembly Language
Unit# 8: Introduction to Computer Programming
(Course Introduction)
Training Module Introduction to the TB9100/P25 CG/P25 TAG Customer Service Software (CSS) Describes Release 3.95 for Trunked TB9100 and P25 TAG Release.
Do it now – PAGE 10 You will find your do it now task in your workbook – look for the start button! Tuesday, 15 January 2019.
CS IA: Procedural Programming CS IB: Object-Oriented Programming
Presentation transcript:

ATOM: A System for Building Customized Program Analysis Tools

2 Papers on ATOM  A. Srivastava and D. Wall. A Practical System for Intermodule Code Optimization at Link-Time. Journal of Programming Language, 1(1), pp 1-18, March  A. Eustace and A. Srivastava. ATOM: A Flexible Interface for Building High Performance Program Analysis Tools. In Proceedings USENIX Technical Conference, pp , January  Digital Equipment Corporation. ATOM Reference Manual, 1993  Digital Equipment Corporation. ATOM User Manual, 1993

3 Limitations of Existing Tools 1.Similar tools are designed for profiling a single task 2.Difficult to modify most other tools 3.Most address tracing tools compute much too detailed information and this can render the tool inefficient for the user 4.Tools based solely on instruction-level profiling add a large overhead to the profiling time 5.Tools that instrument assembly language code may change the application program’s heap addresses 6.Data in the form of address traces is communicated to the data analysis routines through inter-process communication, or files on disk…both are expensive!

4 How ATOM overcomes the limitations of previous systems  ATOM is a tool building system  ATOM allows selective instrumentation The user simply has to specify the tool details  Communication of data is through procedure calls  Precise information about the application program is presented to analysis routines at all times  ATOM compiler and language independent

5 How ATOM Works

6 How to Run ATOM  atom prog inst.c anal.c –o prog.atom 1.Application program object module that is to be instrumented 2.The instrumentation routines specify where the program is to be instrumented and the procedure calls to be made 3.The analysis routines provide the code for the procedures in the instrumentation routines

7 ATOM Example: Instruction Profiling

8 Key Features of ATOM  Provides hardware and software designers with the power to build selective profiling tools  Less expensive than most other tools due to using procedure calls for communication between application program and analysis routines  Easy to build new tools Instrumentation can be inserted using a few lines of code Most analysis tools can be built in a few pages of code