Recitation 8: Static Analysis

Size: px
Start display at page:

Download "Recitation 8: Static Analysis"

Transcription

1 Recitation 8: Static Analysis GOALS This recitation seeks to prepare you for Homework 6. More generally, the goals of this recitation are: Practice creating control flow graphs, Understand data flow analysis, Practice applying static analysis to program code, Practice understanding and extracting useful information from code disassembly. PART 1: CONTROL FLOW GRAPH Consider the following program: import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.inputstream; import java.io.outputstream; public class StreamDemo { public static void main(string[] args) throws Exception { OutputStream os = null; InputStream is = new FileInputStream("in.txt"); int i; try { os = new FileOutputStream("out.txt"); System.out.println("Copying in progress..."); while ((i = is.read())!= -1) { // Read till the end of the stream os.write(i); if (os!= null) { os.close(); catch (Exception e) { e.printstacktrace(); is.close(); ACTIVITIES

2 1. Identify the problem with the code and suggest a way to fix it. 2. Create a control flow graph for the main() method. Part 2: FindBugs 1. Set up Findbugs to run in Eclipse 1. Follow the instructions at to download Findbugs for Eclipse (use the official release site and download all the Findbugs packages) 2. Download Eclipse PDE 1. Navigate to 2. Drag the install button from the page to your running Eclipse program 2. Create the Findbugs control flow graph output to see the results *You ll be using the Findbugs plugin named ControlFlowPrinterPlugin in the Piazza resource page, (on the page where the homeworks are) in the recitation section. You ll also be using the file StreamDemo.java, which is the Java file of part 1. It may be a good idea for you to download the plugin and then skip to step i. Follow the steps the rest of the way to see the Findbugs output, and then later do steps 1 through 8 to set up your own plugin. 1. Create an empty plugin project in Eclipse (or create a Java Project and then right-click on the project, select Configure and then convert to plug-in project) 2. Select the MANIFEST.MF file and click the add button in the required plugins 1. (In the Dependencies tab) Search for Findbugs and select the plugin that appears. The required plugins list should now show the findbugs plugin. 2. (In the Extensions tab) Search for the findbugsplugin and add that to the list. 3. (In the MANIFEST.MF tab) change the line that reads Bundle-SymbolicName: ControlFlowPrinterPlugin to Bundle-SymbolicName: ControlFlowPrinterPlugin;singleton:=true 3. Copy bcel-5.2.jar and findbugs.jar into your project (add them to the build path) - these files are in the plugin on the Piazza page 4. Create a file for your plugin (this can be a class file) in the src folder. Name a package and then create a class which extends CFGDetector. 1. Eclipse should throw an error that you have an unimplemented method so add that method to get rid of the compile error. 2. If you started with any other classes in your source file, delete those classes. 3. Have the file look similar to the sample ControlFlowPrinter.java - my advice is to copy the methods over from the sample plugin on piazza 5. Select the plugin.xml tab and change the code to read, where <package.detectorclassname> is replaced with the package and file of your bug detector:

3 plugin.xml: <?xml version="1.0" encoding="utf-8"?> <?eclipse version="3.4"?> <plugin> <extension id="<package.detectorclassname> point="edu.umd.cs.findbugs.plugin.eclipse.findbugsplugins"> <findbugsplugin fbpluginid="<package.detectorclassname>" librarypath="./bin" /> </extension> </plugin> 6. Select the build.properties tab and change it to read: source.. = src/ output.. = bin/ bin.includes = META-INF/,\.,\ plugin.xml 7. Create a file findbugs.xml in the src folder 1. Change the provider attribute value to your initials 2. from the sample findbugs.xml file, change the class to <package.detectorclassname>, where <package.detectorclassname> is the package and classname of your plugin 3. change the abbrev value to an abbreviation of the bug (or something short) 4. change the type to CFGPRINTERROR (or whatever you used in the detector file) 8. Create a file messages.xml in the src folder 1. change the Detector s value to <package.detectorclassname> 2. change the bug pattern to CFGPRINTERROR (or whatever you used in the detector file) 3. Change description text to descriptions of the error 4. In the BugCode, change the abbrev value to an abbreviation of the bug and the element text to a longer version of the detected bug. 9. Right click your project, select Run as and select Eclipse Application - another Eclipse application should start 10.Create new project with a new Java file in this new Eclipse Application instance. Make the file contain the code from the original control flow section (StreamDemo.java). 11.Single click the project and then select Project then Properties from the Toolbar 12.In the new menu, select Findbugs (then check the print output in the original Eclipse application, if you have a stack trace that mentions your plugin, there was an error along the way and you need to correct the error and then restart the second Eclipse application) 13.Assuming everything went well, check Enable Project Specific Setting and then select the Detector Configuration Tab 1. uncheck all of the default Findbugs checks and make sure your new detector check is enabled - this is not required but it speeds up running your check multiple times which your will be doing when debugging your plugin. Then click ok 14.Right click your project and select the Findbugs option. The detector should run and display 2 errors. One for the default class constructor (which doesn t even have to written out) and one for the main method.

4 15.Go back to the original Eclipse application and either expand the console output or copy the output in the console into another text editor so it easier to read (click in the console, ctrl+a, and then ctrl+v) 16.Examine the control flow graph of the method. Notice how all statements in Java can throw a runtime exception and thus blocks are commonly only one statement long. Also note that the instructions are in Java Byte Code, the assembly language of the Java Virtual Machine. The byte code is how other languages like Scala, are able to interact with Java. The byte code is explained in the next section. 17.If you have time, draw out the control flow graph created by findbugs to see how it differs from the control flow graph from part 1. PART 3: CODE DISASSEMBLY To see the Java Byte code generated by a Java file, first compile the file and then run javap -c on the compiled class file. Javap will produce a similar output to the one below when ran on StreamDemo.java. The first method below is the default constructor for the class. The second method is the main method from above. Java Byte Code consists of instructions that operate on the JVM stack. This simplified the instruction set and supports a wider range of computers. For example aconst_null pushes null on the stack. Then astore_1 saves the null value as the first local variable. These two instructions are the result of translating OutputStream os = null to byte code. Use to look up what specific instructions do. Some instructions, such as 37: if_icmpeq 48 contain a reference to another instruction. This statement is saying, if the top two integers on the stack are equal, then jump to instruction 48. Otherwise continue on. Other instructions contain references to outside tables. 8: invokespecial #4 // Method java/io/fileinputstream."<init>":(ljava/lang/string;)v the #4 refers to the line printed after the comment. The total command is to invoke the method <init> (which creates a new instance of the object), has the parameter of type string (Ljava/lang/String means the class type java/lang/string) and returns a void type other than the object instantiated. The exception table at the end of the printout Exception table: from to target type Class java/lang/exception says that from instruction 12 to instruction 56 any Exception thrown will jump to instruction 59. This corresponds to the try-catch statement in the program. Running: $ javac StreamDemo.java $ javap -c StreamDemo.class produces the following output for the main() method: public class StreamDemo { public StreamDemo(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/object."<init>":()v

5 4: return public static void main(java.lang.string[]) throws java.lang.exception; Code: 0: aconst_null 1: astore_1 2: new #2 // class java/io/fileinputstream 5: dup 6: ldc #3 // String in.txt 8: invokespecial #4 // Method java/io/fileinputstream."<init>":(ljava/lang/string;)v 11: astore_2 12: new #5 // class java/io/fileoutputstream 15: dup 16: ldc #6 // String out.txt 18: invokespecial #7 // Method java/io/fileoutputstream."<init>":(ljava/lang/string;)v 21: astore_1 22: getstatic #8 // Field java/lang/system.out:ljava/io/printstream; 25: ldc #9 // String Copying in progress... 27: invokevirtual #10 // Method java/io/printstream.println:(ljava/lang/string;)v 30: aload_2 31: invokevirtual #11 // Method java/io/inputstream.read:()i 34: dup 35: istore_3 36: iconst_m1 37: if_icmpeq 48 40: aload_1 41: iload_3 42: invokevirtual #12 // Method java/io/outputstream.write:(i)v 45: goto 30 48: aload_1 49: ifnull 56 52: aload_1 53: invokevirtual #13 // Method java/io/outputstream.close:()v 56: goto 66 59: astore 4 61: aload 4 63: invokevirtual #15 // Method java/lang/exception.printstacktrace:()v 66: aload_2 67: invokevirtual #16 // Method java/io/inputstream.close:()v 70: return Exception table: from to target type Class java/lang/exception ACTIVITIES 1. Identify what lines of the javap output correspond to the if statement, the while loop, and the exception handling. 2. Identify the problem with the code in the javap output.

Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part...

Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part... Part 1 Java Language Tools This beginning, ground-level part presents reference information for setting up the Java development environment and for compiling and running Java programs. This includes downloading

More information

02 B The Java Virtual Machine

02 B The Java Virtual Machine 02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual

More information

Installing the Android SDK

Installing the Android SDK Installing the Android SDK To get started with development, we first need to set up and configure our PCs for working with Java, and the Android SDK. We ll be installing and configuring four packages today

More information

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program

More information

University of Twente. A simulation of the Java Virtual Machine using graph grammars

University of Twente. A simulation of the Java Virtual Machine using graph grammars University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine

More information

Creating a Java application using Perfect Developer and the Java Develo...

Creating a Java application using Perfect Developer and the Java Develo... 1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the

More information

Hadoop Tutorial. General Instructions

Hadoop Tutorial. General Instructions CS246: Mining Massive Datasets Winter 2016 Hadoop Tutorial Due 11:59pm January 12, 2016 General Instructions The purpose of this tutorial is (1) to get you started with Hadoop and (2) to get you acquainted

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

IDS 561 Big data analytics Assignment 1

IDS 561 Big data analytics Assignment 1 IDS 561 Big data analytics Assignment 1 Due Midnight, October 4th, 2015 General Instructions The purpose of this tutorial is (1) to get you started with Hadoop and (2) to get you acquainted with the code

More information

Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011

Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011 Under the Hood: The Java Virtual Machine Lecture 24 CS 2110 Fall 2011 Compiling for Different Platforms Program written in some high-level language (C, Fortran, ML,...) Compiled to intermediate form Optimized

More information

CSC 8505 Handout : JVM & Jasmin

CSC 8505 Handout : JVM & Jasmin CSC 8505 Handout : JVM & Jasmin Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your

More information

Smooks Dev Tools Reference Guide. Version: 1.1.0.GA

Smooks Dev Tools Reference Guide. Version: 1.1.0.GA Smooks Dev Tools Reference Guide Version: 1.1.0.GA Smooks Dev Tools Reference Guide 1. Introduction... 1 1.1. Key Features of Smooks Tools... 1 1.2. What is Smooks?... 1 1.3. What is Smooks Tools?... 2

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Overview Eclipse Background Obtaining and Installing Eclipse Creating a Workspaces / Projects Creating Classes Compiling and Running Code Debugging Code Sampling of Features Summary

More information

Using Karel with Eclipse

Using Karel with Eclipse Mehran Sahami Handout #6 CS 106A September 23, 2015 Using Karel with Eclipse Based on a handout by Eric Roberts Once you have downloaded a copy of Eclipse as described in Handout #5, your next task is

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

Overview of Web Services API

Overview of Web Services API 1 CHAPTER The Cisco IP Interoperability and Collaboration System (IPICS) 4.5(x) application programming interface (API) provides a web services-based API that enables the management and control of various

More information

Appendix A Using the Java Compiler

Appendix A Using the Java Compiler Appendix A Using the Java Compiler 1. Download the Java Development Kit from Sun: a. Go to http://java.sun.com/j2se/1.4.2/download.html b. Download J2SE v1.4.2 (click the SDK column) 2. Install Java. Simply

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies: Oracle Workshop for WebLogic 10g R3 Hands on Labs Workshop for WebLogic extends Eclipse and Web Tools Platform for development of Web Services, Java, JavaEE, Object Relational Mapping, Spring, Beehive,

More information

Netbeans IDE Tutorial for using the Weka API

Netbeans IDE Tutorial for using the Weka API Netbeans IDE Tutorial for using the Weka API Kevin Amaral University of Massachusetts Boston First, download Netbeans packaged with the JDK from Oracle. http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-

More information

Tutorial for Creating Resources in Java - Client

Tutorial for Creating Resources in Java - Client Tutorial for Creating Resources in Java - Client Overview Overview 1. Preparation 2. Creation of Eclipse Plug-ins 2.1 The flight plugin 2.2 The plugin fragment for unit tests 3. Create an integration test

More information

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by: Mo 4 January 22 th -26 th, 2007, Munich/Germany Eclipse Rich Client Platform Kai Tödter Karsten Becker et al. Organized by: Lindlaustr. 2c, 53842 Troisdorf, Tel.: +49 (0)2241 2341-100, Fax.: +49 (0)2241

More information

Eclipse installation, configuration and operation

Eclipse installation, configuration and operation Eclipse installation, configuration and operation This document aims to walk through the procedures to setup eclipse on different platforms for java programming and to load in the course libraries for

More information

Android Application Development: Hands- On. Dr. Jogesh K. Muppala muppala@cse.ust.hk

Android Application Development: Hands- On. Dr. Jogesh K. Muppala muppala@cse.ust.hk Android Application Development: Hands- On Dr. Jogesh K. Muppala muppala@cse.ust.hk Wi-Fi Access Wi-Fi Access Account Name: aadc201312 2 The Android Wave! 3 Hello, Android! Configure the Android SDK SDK

More information

Developing NFC Applications on the Android Platform. The Definitive Resource

Developing NFC Applications on the Android Platform. The Definitive Resource Developing NFC Applications on the Android Platform The Definitive Resource Part 1 By Kyle Lampert Introduction This guide will use examples from Mac OS X, but the steps are easily adaptable for modern

More information

tools that make every developer a quality expert

tools that make every developer a quality expert tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX

More information

POOSL IDE Installation Manual

POOSL IDE Installation Manual Embedded Systems Innovation by TNO POOSL IDE Installation Manual Tool version 3.4.1 16-7-2015 1 POOSL IDE Installation Manual 1 Installation... 4 1.1 Minimal system requirements... 4 1.2 Installing Eclipse...

More information

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE BEAJRockit Mission Control Using JRockit Mission Control in the Eclipse IDE Mission Control 3.0.2 Document Revised: June, 2008 Contents 1. Introduction Benefits of the Integration................................................

More information

Creating a Simple, Multithreaded Chat System with Java

Creating a Simple, Multithreaded Chat System with Java Creating a Simple, Multithreaded Chat System with Java Introduction by George Crawford III In this edition of Objective Viewpoint, you will learn how to develop a simple chat system. The program will demonstrate

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

Scanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit.

Scanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit. Scanner The Scanner class is intended to be used for input. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit. For example, suppose the input

More information

IT Quick Reference Guides Using Windows 7

IT Quick Reference Guides Using Windows 7 IT Quick Reference Guides Using Windows 7 Windows Guides This sheet covers many of the basic commands for using the Windows 7 operating system. WELCOME TO WINDOWS 7 After you log into your machine, the

More information

Building a Multi-Threaded Web Server

Building a Multi-Threaded Web Server Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous

More information

Windows Firewall Configuration with Group Policy for SyAM System Client Installation

Windows Firewall Configuration with Group Policy for SyAM System Client Installation with Group Policy for SyAM System Client Installation SyAM System Client can be deployed to systems on your network using SyAM Management Utilities. If Windows Firewall is enabled on target systems, it

More information

This section provides a 'Quickstart' guide to using TestDriven.NET any version of Microsoft Visual Studio.NET

This section provides a 'Quickstart' guide to using TestDriven.NET any version of Microsoft Visual Studio.NET Quickstart TestDriven.NET - Quickstart TestDriven.NET Quickstart Introduction Installing Running Tests Ad-hoc Tests Test Output Test With... Test Projects Aborting Stopping Introduction This section provides

More information

WA1826 Designing Cloud Computing Solutions. Classroom Setup Guide. Web Age Solutions Inc. Copyright Web Age Solutions Inc. 1

WA1826 Designing Cloud Computing Solutions. Classroom Setup Guide. Web Age Solutions Inc. Copyright Web Age Solutions Inc. 1 WA1826 Designing Cloud Computing Solutions Classroom Setup Guide Web Age Solutions Inc. Copyright Web Age Solutions Inc. 1 Table of Contents Part 1 - Minimum Hardware Requirements...3 Part 2 - Minimum

More information

Practice Fusion API Client Installation Guide for Windows

Practice Fusion API Client Installation Guide for Windows Practice Fusion API Client Installation Guide for Windows Quickly and easily connect your Results Information System with Practice Fusion s Electronic Health Record (EHR) System Table of Contents Introduction

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Continuous Integration Part 2

Continuous Integration Part 2 1 Continuous Integration Part 2 This blog post is a follow up to my blog post Continuous Integration (CI), in which I described how to execute test cases in Code Tester (CT) in a CI environment. What I

More information

LAB4 Making Classes and Objects

LAB4 Making Classes and Objects LAB4 Making Classes and Objects Objective The main objective of this lab is class creation, how its constructer creation, object creation and instantiation of objects. We will use the definition pane to

More information

Mitigation Planning Portal MPP Reporting System

Mitigation Planning Portal MPP Reporting System Mitigation Planning Portal MPP Reporting System Updated: 7/13/2015 Introduction Access the MPP Reporting System by clicking on the Reports tab and clicking the Launch button. Within the system, you can

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

Developing In Eclipse, with ADT

Developing In Eclipse, with ADT Developing In Eclipse, with ADT Android Developers file://v:\android-sdk-windows\docs\guide\developing\eclipse-adt.html Page 1 of 12 Developing In Eclipse, with ADT The Android Development Tools (ADT)

More information

Android Environment SDK

Android Environment SDK Part 2-a Android Environment SDK Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 1 Android Environment: Eclipse & ADT The Android

More information

Installing Java. Table of contents

Installing Java. Table of contents Table of contents 1 Jargon...3 2 Introduction...4 3 How to install the JDK...4 3.1 Microsoft Windows 95... 4 3.1.1 Installing the JDK... 4 3.1.2 Setting the Path Variable...5 3.2 Microsoft Windows 98...

More information

5 HDFS - Hadoop Distributed System

5 HDFS - Hadoop Distributed System 5 HDFS - Hadoop Distributed System 5.1 Definition and Remarks HDFS is a file system designed for storing very large files with streaming data access patterns running on clusters of commoditive hardware.

More information

Download and Installation Instructions. Android SDK and Android Development Tools (ADT) Microsoft Windows

Download and Installation Instructions. Android SDK and Android Development Tools (ADT) Microsoft Windows Download and Installation Instructions for Android SDK and Android Development Tools (ADT) on Microsoft Windows Updated May, 2012 This document will describe how to download and install the Android SDK

More information

Creating Web Services Applications with IntelliJ IDEA

Creating Web Services Applications with IntelliJ IDEA Creating Web Services Applications with IntelliJ IDEA In this tutorial you will: 1. 2. 3. 4. Create IntelliJ IDEA projects for both client and server-side Web Service parts Learn how to tie them together

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

Opening a Command Shell

Opening a Command Shell Opening a Command Shell Win Cmd Line 1 In WinXP, go to the Programs Menu, select Accessories and then Command Prompt. In Win7, go to the All Programs, select Accessories and then Command Prompt. Note you

More information

With a single download, the ADT Bundle includes everything you need to begin developing apps:

With a single download, the ADT Bundle includes everything you need to begin developing apps: Get the Android SDK The Android SDK provides you the API libraries and developer tools necessary to build, test, and debug apps for Android. The ADT bundle includes the essential Android SDK components

More information

Java Virtual Machine Locks

Java Virtual Machine Locks Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

Lab Experience 17. Programming Language Translation

Lab Experience 17. Programming Language Translation Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly

More information

Waspmote IDE. User Guide

Waspmote IDE. User Guide Waspmote IDE User Guide Index Document Version: v4.1-01/2014 Libelium Comunicaciones Distribuidas S.L. INDEX 1. Introduction... 3 1.1. New features...3 1.2. Other notes...3 2. Installation... 4 2.1. Windows...4

More information

Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3

Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3 Notepad++ The COMPSCI 101 Text Editor for Windows The text editor that we will be using in the Computer Science labs for creating our Python programs is called Notepad++ and http://notepad-plus-plus.org

More information

JAVA - FILES AND I/O

JAVA - FILES AND I/O http://www.tutorialspoint.com/java/java_files_io.htm JAVA - FILES AND I/O Copyright tutorialspoint.com The java.io package contains nearly every class you might ever need to perform input and output I/O

More information

Configuring the LCDS Load Test Tool

Configuring the LCDS Load Test Tool Configuring the LCDS Load Test Tool for Flash Builder 4 David Collie Draft Version TODO Clean up Appendices and also Where to Go From Here section Page 1 Contents Configuring the LCDS Load Test Tool for

More information

LAB 1. Familiarization of Rational Rose Environment And UML for small Java Application Development

LAB 1. Familiarization of Rational Rose Environment And UML for small Java Application Development LAB 1 Familiarization of Rational Rose Environment And UML for small Java Application Development OBJECTIVE AND BACKGROUND The purpose of this first UML lab is to familiarize programmers with Rational

More information

S. Bouzefrane. How to set up the Java Card development environment under Windows? Samia Bouzefrane. samia.bouzefrane@cnam.fr

S. Bouzefrane. How to set up the Java Card development environment under Windows? Samia Bouzefrane. samia.bouzefrane@cnam.fr How to set up the Java Card development environment under Windows? Samia Bouzefrane samia.bouzefrane@cnam.fr 1 Java Card Classic Edition- August 2012 I. Development tools I.1. Hardware 1. A Java Card platform

More information

Introduction. Application Security. Reasons For Reverse Engineering. This lecture. Java Byte Code

Introduction. Application Security. Reasons For Reverse Engineering. This lecture. Java Byte Code Introduction Application Security Tom Chothia Computer Security, Lecture 16 Compiled code is really just data which can be edit and inspected. By examining low level code protections can be removed and

More information

Monitoring Oracle Enterprise Performance Management System Release 11.1.2.3 Deployments from Oracle Enterprise Manager 12c

Monitoring Oracle Enterprise Performance Management System Release 11.1.2.3 Deployments from Oracle Enterprise Manager 12c Monitoring Oracle Enterprise Performance Management System Release 11.1.2.3 Deployments from Oracle Enterprise Manager 12c This document describes how to set up Oracle Enterprise Manager 12c to monitor

More information

Writing new FindBugs detectors

Writing new FindBugs detectors Writing new FindBugs detectors Why? You may find bug patterns in your own code How? Inspect bytecode There are many ways to implement a FindBugs detector Often, simple techniques (e.g., sequential scan)

More information

Chulalongkorn University International School of Engineering Department of Computer Engineering 2140105 Computer Programming Lab.

Chulalongkorn University International School of Engineering Department of Computer Engineering 2140105 Computer Programming Lab. Chulalongkorn University Name International School of Engineering Student ID Department of Computer Engineering Station No. 2140105 Computer Programming Lab. Date Lab 2 Using Java API documents, command

More information

Before you can use the Duke Ambient environment to start working on your projects or

Before you can use the Duke Ambient environment to start working on your projects or Using Ambient by Duke Curious 2004 preparing the environment Before you can use the Duke Ambient environment to start working on your projects or labs, you need to make sure that all configuration settings

More information

CLC Bioinformatics Database

CLC Bioinformatics Database CLC Bioinformatics Database End User USER MANUAL Manual for CLC Bioinformatics Database 4.6 Windows, Mac OS X and Linux September 3, 2015 This software is for research purposes only. QIAGEN Aarhus A/S

More information

Java Software Development Kit (JDK 5.0 Update 14) Installation Step by Step Instructions

Java Software Development Kit (JDK 5.0 Update 14) Installation Step by Step Instructions Java Software Development Kit (JDK 5.0 Update 14) Installation Step by Step Instructions 1. Click the download link Download the Java Software Development Kit (JDK 5.0 Update 14) from Sun Microsystems

More information

Web Services using Tomcat and Eclipse

Web Services using Tomcat and Eclipse Web Services using Tomcat and Eclipse Nauman recluze@gmail.com Security Engineering Research Group Institute of Management Sciences Peshawar, Pakistan http://recluze.wordpress.com http://serg.imsciences.edu.pk

More information

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4 JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4 NOTE: SUN ONE Studio is almost identical with NetBeans. NetBeans is open source and can be downloaded from www.netbeans.org. I

More information

Tutorial - How to Use Lotus Domino Web Services in Java Development

Tutorial - How to Use Lotus Domino Web Services in Java Development Tutorial - How to Use Lotus Domino Web Services in Java Development This tutorial contains detailed information about how can we use Lotus Domino Web Services (using Web Services Provider) in Java Development.

More information

Manual For Using the NetBeans IDE

Manual For Using the NetBeans IDE 1 Manual For Using the NetBeans IDE The content of this document is designed to help you to understand and to use the NetBeans IDE for your Java programming assignments. This is only an introductory presentation,

More information

SARANGSoft WinBackup Business v2.5 Client Installation Guide

SARANGSoft WinBackup Business v2.5 Client Installation Guide SARANGSoft WinBackup Business v2.5 Client Installation Guide (November, 2015) WinBackup Business Client is a part of WinBackup Business application. It runs in the background on every client computer that

More information

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used

More information

Getting Started: Creating a Simple App

Getting Started: Creating a Simple App Getting Started: Creating a Simple App What You will Learn: Setting up your development environment Creating a simple app Personalizing your app Running your app on an emulator The goal of this hour is

More information

Setting Up Your Android Development Environment. For Mac OS X (10.6.8) v1.0. By GoNorthWest. 3 April 2012

Setting Up Your Android Development Environment. For Mac OS X (10.6.8) v1.0. By GoNorthWest. 3 April 2012 Setting Up Your Android Development Environment For Mac OS X (10.6.8) v1.0 By GoNorthWest 3 April 2012 Setting up the Android development environment can be a bit well challenging if you don t have all

More information

MONITORING PERFORMANCE IN WINDOWS 7

MONITORING PERFORMANCE IN WINDOWS 7 MONITORING PERFORMANCE IN WINDOWS 7 Performance Monitor In this demo we will take a look at how we can use the Performance Monitor to capture information about our machine performance. We can access Performance

More information

WRITING DATA TO A BINARY FILE

WRITING DATA TO A BINARY FILE WRITING DATA TO A BINARY FILE TEXT FILES VS. BINARY FILES Up to now, we have looked at how to write and read characters to and from a text file. Text files are files that contain sequences of characters.

More information

Struts Tools Tutorial. Version: 3.3.0.M5

Struts Tools Tutorial. Version: 3.3.0.M5 Struts Tools Tutorial Version: 3.3.0.M5 1. Introduction... 1 1.1. Key Features Struts Tools... 1 1.2. Other relevant resources on the topic... 2 2. Creating a Simple Struts Application... 3 2.1. Starting

More information

v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com

v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com Table of Contents Table of Contents................................................................ ii 1. Overview 2. Workflow...................................................................

More information

Java Programming Unit 1. Your first Java Program Eclipse IDE

Java Programming Unit 1. Your first Java Program Eclipse IDE Java Programming Unit 1 Your first Java Program Eclipse IDE During this training course we ll use the textbook Java Programming 24- Hour Trainer by Yakov Fain. Why Learn Java? Large code base of already

More information

Download and Installation Instructions. Android SDK and Android Development Tools (ADT)

Download and Installation Instructions. Android SDK and Android Development Tools (ADT) Download and Installation Instructions for Android SDK and Android Development Tools (ADT) on Mac OS X Updated October, 2012 This document will describe how to download and install the Android SDK and

More information

Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins

Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins Developing Eclipse Plug-ins* Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk * Based on M. Pawlowski et al: Fundamentals of Eclipse Plug-in and RCP

More information

Hyperoo 2.0 A (Very) Quick Start

Hyperoo 2.0 A (Very) Quick Start Hyperoo 2.0 A (Very) Quick Start Download and install the Hyperoo 2.0 beta Hyperoo 2.0 is a client/server based application and as such requires that you install both the Hyperoo Client and Hyperoo Server

More information

Java Application Development using Eclipse. Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

Java Application Development using Eclipse. Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom 8358 Java Application Development using Eclipse Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom Abstract Learn how to use the powerful features

More information

Web Services API Developer Guide

Web Services API Developer Guide Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting

More information

The Java Virtual Machine (JVM) Pat Morin COMP 3002

The Java Virtual Machine (JVM) Pat Morin COMP 3002 The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive

More information

How to Install Java onto your system

How to Install Java onto your system How to Install Java onto your system 1. In your browser enter the URL: Java SE 2. Choose: Java SE Downloads Java Platform (JDK) 7 jdk-7- windows-i586.exe. 3. Accept the License Agreement and choose the

More information

Arduino & Android. A How to on interfacing these two devices. Bryant Tram

Arduino & Android. A How to on interfacing these two devices. Bryant Tram Arduino & Android A How to on interfacing these two devices Bryant Tram Contents 1 Overview... 2 2 Other Readings... 2 1. Android Debug Bridge -... 2 2. MicroBridge... 2 3. YouTube tutorial video series

More information

SETTING UP YOUR JAVA DEVELOPER ENVIRONMENT

SETTING UP YOUR JAVA DEVELOPER ENVIRONMENT SETTING UP YOUR JAVA DEVELOPER ENVIRONMENT Summary This tipsheet describes how to set up your local developer environment for integrating with Salesforce. This tipsheet describes how to set up your local

More information

Desktop, Web and Mobile Testing Tutorials

Desktop, Web and Mobile Testing Tutorials Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Using Eclipse to Run Java Programs

Using Eclipse to Run Java Programs Using Eclipse to Run Java Programs Downloading and Installing Eclipse Here s how: 1. Visit www.eclipse.org. 2. On that Web site, follow the links for downloading Eclipse. Be sure to pick the version that

More information

Installing Java (Windows) and Writing your First Program

Installing Java (Windows) and Writing your First Program Appendix Installing Java (Windows) and Writing your First Program We will be running Java from the command line and writing Java code in Notepad++ (or similar). The first step is to ensure you have installed

More information

Ready, Set, Go Getting started with Tuscany

Ready, Set, Go Getting started with Tuscany Ready, Set, Go Getting started with Tuscany Install the Tuscany Distribution The first thing you do is to create a folder on you disk into which you will download the TUSCANY distribution. Next you download

More information

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights

More information

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc. WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

Alteryx Predictive Analytics for Oracle R

Alteryx Predictive Analytics for Oracle R Alteryx Predictive Analytics for Oracle R I. Software Installation In order to be able to use Alteryx s predictive analytics tools with an Oracle Database connection, your client machine must be configured

More information

NetBeans Profiler is an

NetBeans Profiler is an NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that

More information

Installing the ASP.NET VETtrak APIs onto IIS 5 or 6

Installing the ASP.NET VETtrak APIs onto IIS 5 or 6 Installing the ASP.NET VETtrak APIs onto IIS 5 or 6 2 Installing the ASP.NET VETtrak APIs onto IIS 5 or 6 3... 3 IIS 5 or 6 1 Step 1- Install/Check 6 Set Up and Configure VETtrak ASP.NET API 2 Step 2 -...

More information