Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
MC697 Object-Oriented Programming Using Java. In this class, we will cover: How the class will be structured Difference between object-oriented programming.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 1.1 of…
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
XML Prashant Karmarkar Brendan Nolan Alexander Roda.
Implementation of One Stop Search by XSLT By Dave Low University of Hong Kong 9-Dec-2003.
ASP.NET Programming with C# and SQL Server First Edition
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
Overview of Search Engines
Chapter 13 XML Concept of XML Simple Example of XML XML vs. HTML in Syntax XML Structure DTD and CDATA Sections Concept of SAX Processing Download and.
BASIC JAVA PROGRAMMING TUTORIAL. History  James Gosling and Sun Microsystems  Oak  Java, May 20, 1995, Sun World  Hot Java –The first Java-enabled.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Advanced Java New York University School of Continuing and Professional Studies.
Building a UI with Zen Pat McGibbon –Sales Engineer.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Object and component “wiring” standards This presentation reviews the features of software component wiring and the emerging world of XML-based standards.
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.
Windows Presentation Foundation. Goal The goal of Windows Presentation Foundation (WPF) is to provide these advances for Windows. Included in version.
DSpace UI Alexey Maslov. DSpace in general A digital library tool useful for storage, maintenance, and retrieval of digital documents Two types of interaction:
Lecture 15 Introduction to Web Services Web Service Applications.
Intro. to XML & XML DB Bun Yue Professor, CS/CIS UHCL.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
Using XML for Test Case Definition, Storage and Presentation Michael Ensminger
POS 406 Java Technology And Beginning Java Code
Web Services for Satellite Emulation Development Kathy J. LiszkaAllen P. Holtz The University of AkronNASA Glenn Research Center.
March 28, 2001XSP Session O’Reilly Enterprise Java Conference 1 XSP Session Sue Spielman President/Consulting Engineer President/Consulting Engineer
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Discovering Computers 2009 Chapter 13 Programming Languages and Program Development.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
1 Overview of XSL. 2 Outline We will use Roger Costello’s tutorial The purpose of this presentation is  To give a quick overview of XSL  To describe.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
XML and Its Applications Ben Y. Zhao, CS294-7 Spring 1999.
Justin Tilton uPortal Framework and User Interface Demonstration.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
JavaScript Overview Developer Essentials How to Code Language Constructs The DOM concept- API, (use W3C model) Objects –properties Methods Events Applications;
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Chapter – 8 Software Tools.
SOOT By Joe Palmer Information taken from
I Copyright © 2004, Oracle. All rights reserved. Introduction.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Applications Active Web Documents Active Web Documents.
Lecture 1: Multi-tier Architecture Overview
XML Problems and Solutions
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Getting Started With Solr
Introducing Java.
Chap 1. Getting Started Objectives
Web Application Development Using PHP
Unit 6 - XML Transformations
Presentation transcript:

Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November 18-19, 2002

Presentation outline Introduction Framework overview JIL SOOT STEP JIMPLEX Future work

Introduction Code visualization: why and where? Program understanding. Compiler development. Visualization of an optimizable IR. Motivation: Expose both static & dynamic program attributes which are hidden in the raw IR. Design goals: Intuitive, portable, & modular.

Framework overview Java class files MyClass.java JVM/JVMPI (execution profile) Tools with JIL support Visualizers with JIL support JIL documents SOOT STEP static data (JIL) dynamic data (JIL) JIMPLEX (XSL/HTML) MyVisualizer (my language) DTD (d)(c)(b)(a)

Java Intermediate Language (JIL) XML-based representation of code. A metalanguage used to describe other languages and their characteristics. Encapsulates IRs as code objects which can be extended with both static and dynamic data.

JIL document structure contributing toolsruntime accessesruntime invokes name, returns, access invoke targets definitions uses name, type, accessversion, created myclass historyfields name, type parameters name, type locals statement count name labels live variables in/out flow information jimple declaration line number, label statements type, handler exceptions methods myclass extension base element legend required

Benefits of using XML Extensible: add or remove elements without breaking existing structure. Supported by existing parsers, APIs, software, databases, servers, etc. Portable across platforms and networks. Human readable, editable.

JIL Let’s take a look at an example JIL document…

Static vs. dynamic data Static data: Collected at compile-time Program attributes Flow information Analysis results Basis for program understanding We chose SOOT as a source of static data…

SOOT Java optimization framework and API. Uses intermediate languages (IRs) to perform analyses and transformations. Provides several output formats, including JIL. Jimple source (.jimple) SOOT Java source (.java) Java class (.class) JIL document (.xml) Baf, Grimp, and Jimple analysis & optimization Grimp source (.grimp) Baf source (.baf) javac

SOOT as a source of JIL SOOT was modified to generate Jimple as XML. The resulting XML contains general program characteristics and flow information. Static analysis results can be linked to applicable code elements.

SOOT elements in JIL As a source of static data: Flow information Live variable analysis Variable uses and definitions Class hierarchy analysis Variable type analysis

Static vs. dynamic data Dynamic data: Collected at runtime Profiling results Variable access and use counts Temporal data Basis for evaluation Especially important for OOP languages

STEP Toolkit for extensible profiling. Encodes and compresses trace data in a trace definition language. JIL document (.xml) STEP Java class (.class) EVolve trace format Profiling agent (JVMPI, Kaffe, SOOT) event pipe

STEP as a source of JIL STEP as a source of profiling data. Visualizers becomes consumers at the backend of the event pipe. STEP traces are read and converted to JIL. JIMPLEX has full control over what elements are included and in what format.

STEP elements in JIL As a source of runtime dynamic data: field accesses method invocations object allocations

Separation of data from data Static and dynamic data are generated as independent XML sources. Trace results from different profiling runs can be swapped in and out. Data sources can live on separate servers.

Merging XML data sources To visualize both static and dynamic elements simultaneously, the data is merged into a single source. XML can be merged on the fly using XSL.

Separation of data and interface Interfaces are independent of data. Can be implemented using any combination of languages or technologies. One possible interface will be presented here…

JIMPLEX Web-based visualization interface implemented using HTML and XSL. Uses JIL documents as data sources, allowing them to exist remotely. Runs on any machine equipped with a web browser. Portable across platforms and networks. Modular and extensible.

JIMPLEX interface myclass.xml (JIL document) (c) (b) (a) Server A: JIL document storage web server jimplex.xsl (XSL stylesheet) Server B: JIMPLEX server web server JIMPLEX (web page) Client 1: JIMPLEX web client JIMPLEX (web page) Client n: JIMPLEX web client … XML data HTML data XML/XSL transformation

Example Interface

JIMPLEX interface Let’s take a look at the interface…

Contributions JIL document format DTD specifications SOOT extensions JIL document output format STEP extensions JIL document generating backend JIMPLEX visualizer XSL stylesheets

Future Work: JIL Extract more runtime attributes from STEP, such as temporal data. Use XML merging to support multiple STEP streams, allowing multi-dimensional profiling. Use XML differentiation to support program and trace comparison, allowing better evaluation of optimizations.

Future Work: UI Any updates to JIL should be reflected in the UI (ie. multi-dimensional profiling). With the inclusion of more and more data, an application-based interface would provide better performance. Profiling and other dynamic data are more suited towards a graphical representation.

Links Java Intermediate Language (JIL): JIL papers, resources, and the JIMPLEX visualizer. SOOT: SOOT papers, documentation, and downloads. STEP: STEP papers, more to come.