Introduction to ASM - ByteCode Manipulating Tool

Size: px
Start display at page:

Download "Introduction to ASM - ByteCode Manipulating Tool"

Transcription

1 Introduction to ASM - ByteCode Manipulating Tool nadeesh.tv@oracle.com ORACLE India Pvt Ltd 19 March 2016

2 Outline 1 Why do we need a byte code manipulating tool? 2 Compiled Class File Structure 3 ASM

3 Why do we need a byte code manipulating tool? Java refers to pair of technologies Java Programming Language Java Virtual Machine More than 200 JVM languages exist Number of other JVM languages increased due to Cross platform nature Improved performance etc Need a tool which helps in exploring JVM

4 Compiled Class File Structure Figure: Class File Structure

5 Compiled Class File Structure Does not contain import and package statements Magic Number - CAFEBABE Major and Minor Version Jdk 8-52, 0 Constant Pool Class names (in internal form) Variable names, Method names Signature (I, B, Z, L;, [) String literals Access Flags ACC PUBLIC, ACC FINAL ACC SUPER, ACC INTERFACE ACC ABSTRACT

6 Compiled Class File Structure

7 Compiled Class File Structure Method invocation create a stack frame Frame consist of Operand stack and Local variables array Figure: Frame Structure Debugging attribute LineNumberTable LocalVariableTable

8 ASM ASM library is a project of the OW2 Consortium Developed by Eric Bruneton Written in Java Become the defacto standard Goals Parsing Generate Transform Analyze Figure: ASM Package Structure

9 ASM : Visitor Based Pattern ASM follows Visitor Based Pattern for it s operation Figure: Visitor Based Pattern

10 Visitor Based Pattern Visitor.java p u b l i c i n t e r f a c e V i s i t o r { p u b l i c v o i d v i s i t C o l l e c t i o n ( C o l l e c t i o n c o l l e c t i o n ) ; p u b l i c v o i d v i s i t S t r i n g ( S t r i n g s t r i n g ) ; } p u b l i c v o i d v i s i t F l o a t ( F l o a t f l o a t ) ; Vistable.java p u b l i c i n t e r f a c e V i s i t a b l e { p u b l i c v o i d a c c e p t ( V i s i t o r v i s i t o r ) ; }

11 Visitor Based Pattern VisitableString.java p u b l i c c l a s s V i s i t a b l e S t r i n g implements V i s i t a b l e { p r i v a t e S t r i n g v a l u e ; p u b l i c V i s i t a b l e S t r i n g ( S t r i n g s t r i n g ) { v a l u e = s t r i n g ; } } p u b l i c v o i d a c c e p t ( V i s i t o r v i s i t o r ) { v i s i t o r. v i s i t S t r i n g ( t h i s ) ; }

12 Visitor Based Pattern PrintVisitor.java p u b l i c c l a s s P r i n t V i s i t o r implements V i s i t o r { p u b l i c v o i d v i s i t C o l l e c t i o n ( C o l l e c t i o n c o l l e c t i o n ) { I t e r a t o r i t e r a t o r = c o l l e c t i o n. i t e r a t o r ( ) w h i l e ( i t e r a t o r. hasnext ( ) ) { O b j e c t o = i t e r a t o r. n e x t ( ) ; i f ( o i n s t a n c e o f V i s i t a b l e ) ( ( V i s i t a b l e ) o ). a c c e p t ( t h i s ) ; } p u b l i c v o i d v i s i t S t r i n g ( S t r i n g s t r i n g ) { System. out. p r i n t l n ( +s t r i n g+ ) ; } } p u b l i c v o i d v i s i t F l o a t ( F l o a t f l o a t ) { System. out. p r i n t l n ( f l o a t. t o S t r i n g ()+ f ) ; }

13 ASM : Class Visitor ClassVisitor.java p u b l i c a b s t r a c t c l a s s C l a s s V i s i t o r { p u b l i c C l a s s V i s i t o r ( i n t a p i ) ; p u b l i c C l a s s V i s i t o r ( i n t api, C l a s s V i s i t o r cv ) ; p u b l i c v o i d v i s i t ( i n t v e r s i o n, i n t a c c e s s, S t r i n g name, S t r i n g s i g n a t u r e, S t r i n g supername, S t r i n g [ ] i n t e r f a c e s ) ; p u b l i c v o i d v i s i t S o u r c e ( S t r i n g s o u r c e, S t r i n g debug ) ; p u b l i c v o i d v i s i t O u t e r C l a s s ( S t r i n g owner, S t r i n g name, S t r i n g d e s c ) ; A n n o t a t i o n V i s i t o r v i s i t A n n o t a t i o n ( S t r i n g desc, b o o l e a n v i s i b l e ) ; p u b l i c v o i d v i s i t A t t r i b u t e ( A t t r i b u t e a t t r ) ; p u b l i c v o i d v i s i t I n n e r C l a s s ( S t r i n g name, S t r i n g outername, String innername, i n t access ) ; p u b l i c F i e l d V i s i t o r v i s i t F i e l d ( i n t a c c e s s, S t r i n g name, S t r i n g desc, String signature, Object value ) ; p u b l i c MethodVisitor visitmethod ( i n t access, String name, String desc, String signature, String [ ] exceptions ) ; v o i d v i s i t E n d ( ) ; }

14 ASM : Class Visitor Methods of a Class Visitor must call in the following order visit visitsource? visitouterclass? (visitannotation visitattribute) * (visitinnerclass visitfield visit Method )* visitend

15 ClassWriter : Generating Classes Based on ClassVisitor Produce as output a byte array that contains the compiled class

16 ClassReader : Parsing Classes Calling the corresponding visitxxx methods on ClassVisitor instance passed as an argument to its accept method

17 ClassAdapter : Transforming Classes Figure: Class Adapter

18 Other important Classes MethodVisitor CheckClassAdapter Asmfier

19 References

20 Thank you

Computer Science Introductory Course MSc - Introduction to Java

Computer Science Introductory Course MSc - Introduction to Java Computer Science Introductory Course MSc - Introduction to Java Lecture 1: Diving into java Pablo Oliveira ENST Outline 1 Introduction 2 Primitive types 3 Operators 4 5 Control Flow

More information

Compiling Techniques

Compiling Techniques Lecture 11: Introduction to 13 November 2015 Table of contents 1 Introduction Overview The Backend The Big Picture 2 Code Shape Overview Introduction Overview The Backend The Big Picture Source code FrontEnd

More information

Modern Functional Programming and Actors With Scala and Akka

Modern Functional Programming and Actors With Scala and Akka Modern Functional Programming and Actors With Scala and Akka Aaron Kosmatin Computer Science Department San Jose State University San Jose, CA 95192 707-508-9143 akosmatin@gmail.com Abstract For many years,

More information

More on Methods and Encapsulation

More on Methods and Encapsulation More on Methods and Encapsulation Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 31, 2009 H.-T. Lin (NTU CSIE) More on Methods and Encapsulation OOP(even) 03/31/2009 0 / 38 Local Variables Local

More information

SYSTEM V APPLICATION BINARY INTERFACE. Intel386 Architecture Processor Supplement. Fourth Edition

SYSTEM V APPLICATION BINARY INTERFACE. Intel386 Architecture Processor Supplement. Fourth Edition SYSTEM V APPLICATION BINARY INTERFACE Intel386 Architecture Processor Supplement Fourth Edition Copyright 1990 1996 The Santa Cruz Operation, Inc. All rights reserved. Copyright 1990 1992 AT&T. All rights

More information

Predicting English keywords from Java Bytecodes using Machine Learning

Predicting English keywords from Java Bytecodes using Machine Learning Predicting English keywords from Java Bytecodes using Machine Learning Pablo Ariel Duboue Les Laboratoires Foulab (Montreal Hackerspace) 999 du College Montreal, QC, H4C 2S3 REcon June 15th, 2012 Outline

More information

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00

FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING OBJECT ORIENTED PROGRAMMING DATE 07/2014 SESSION 8:00-10:00 FACULTY OF SCIENCE ACADEMY OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING MODULE CAMPUS CSC2A10 OBJECT ORIENTED PROGRAMMING AUCKLAND PARK CAMPUS (APK) EXAM JULY 2014 DATE 07/2014 SESSION 8:00-10:00 ASSESOR(S)

More information

More About Methods. Hsuan-Tien Lin. Deptartment of CSIE, NTU. OOP Class, March 8-9, 2010

More About Methods. Hsuan-Tien Lin. Deptartment of CSIE, NTU. OOP Class, March 8-9, 2010 More About Methods Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 8-9, 2010 H.-T. Lin (NTU CSIE) More About Methods OOP 03/08-09/2010 0 / 24 Methods: the Basic Method (1/2, Callee s View) 1 p

More information

- Why aren t there more quantum algorithms? - Quantum Programming Languages. By : Amanda Cieslak and Ahmana Tarin

- Why aren t there more quantum algorithms? - Quantum Programming Languages. By : Amanda Cieslak and Ahmana Tarin - Why aren t there more quantum algorithms? - Quantum Programming Languages By : Amanda Cieslak and Ahmana Tarin Why aren t there more quantum algorithms? there are only a few problems for which quantum

More information

Compiler Design Spring 2017

Compiler Design Spring 2017 Compiler Design Spring 2017 3.4 Bottom-up parsing Dr. Zoltán Majó Compiler Group Java HotSpot Virtual Machine Oracle Corporation 1 Bottom up parsing Goal: Obtain rightmost derivation in reverse w S Reduce

More information

Generics. Hsuan-Tien Lin. OOP Class, May 23, Department of CSIE, NTU. H.-T. Lin (NTU CSIE) Generics OOP 05/23/ / 16

Generics. Hsuan-Tien Lin. OOP Class, May 23, Department of CSIE, NTU. H.-T. Lin (NTU CSIE) Generics OOP 05/23/ / 16 Generics Hsuan-Tien Lin Department of CSIE, NTU OOP Class, May 23, 2013 H.-T. Lin (NTU CSIE) Generics OOP 05/23/2013 0 / 16 How can we write a class for an Integer set of arbitrary size? H.-T. Lin (NTU

More information

Quantum Computing Virtual Machine. Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu

Quantum Computing Virtual Machine. Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu Quantum Computing Virtual Machine Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu Quantum Computing Virtual Machine Quantum Computing Computer science + quantum mechanics = quantum

More information

Scripting Languages Fast development, extensible programs

Scripting Languages Fast development, extensible programs Scripting Languages Fast development, extensible programs Devert Alexandre School of Software Engineering of USTC November 30, 2012 Slide 1/60 Table of Contents 1 Introduction 2 Dynamic languages A Python

More information

Basic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University

Basic Java OOP 10/12/2015. Department of Computer Science & Information Engineering. National Taiwan University Basic Java OOP 10/12/2015 Hsuan-Tien Lin ( 林軒田 ) htlin@csie.ntu.edu.tw Department of Computer Science & Information Engineering National Taiwan University ( 國立台灣大學資訊工程系 ) Hsuan-Tien Lin (NTU CSIE) Basic

More information

A Java introduction SDK, FC 15/12/2009 UMR AMAP. SDK, FC (UMR AMAP) A Java introduction 15/12/ / 50

A Java introduction SDK, FC 15/12/2009 UMR AMAP. SDK, FC (UMR AMAP) A Java introduction 15/12/ / 50 A Java introduction SDK, FC UMR AMAP 15/12/2009 SDK, FC (UMR AMAP) A Java introduction 15/12/2009 1 / 50 Plan 1 Introduction 2 Bases Java Application Variables & Expressions Simple Arrays Exceptions Collections

More information

Lisp Introduction. Dr. Neil T. Dantam. Spring CSCI-498/598 RPM, Colorado School of Mines. Dantam (Mines CSCI, RPM) Lisp Spring / 88

Lisp Introduction. Dr. Neil T. Dantam. Spring CSCI-498/598 RPM, Colorado School of Mines. Dantam (Mines CSCI, RPM) Lisp Spring / 88 Lisp Introduction Dr. Neil T. Dantam CSCI-498/598 RPM, Colorado School of Mines Spring 28 Dantam (Mines CSCI, RPM) Lisp Spring 28 / 88 Outline Lisp Common Lisp by Example Implementation Details Typing

More information

A Reconfigurable Quantum Computer

A Reconfigurable Quantum Computer A Reconfigurable Quantum Computer David Moehring CEO, IonQ, Inc. College Park, MD Quantum Computing for Business 4-6 December 2017, Mountain View, CA IonQ Highlights Full Stack Quantum Computing Company

More information

Anatomy of SINGULAR talk at p. 1

Anatomy of SINGULAR talk at p. 1 Anatomy of SINGULAR talk at MaGiX@LIX 2011- p. 1 Anatomy of SINGULAR talk at MaGiX@LIX 2011 - Hans Schönemann hannes@mathematik.uni-kl.de Department of Mathematics University of Kaiserslautern Anatomy

More information

Introduction to ANTLR (ANother Tool for Language Recognition)

Introduction to ANTLR (ANother Tool for Language Recognition) Introduction to ANTLR (ANother Tool for Language Recognition) Jon Eyolfson University of Waterloo September 27 - October 1, 2010 Outline Introduction Usage Example Demonstration Conclusion Jon Eyolfson

More information

Compiling Techniques

Compiling Techniques Lecture 7: Abstract Syntax 13 October 2015 Table of contents Syntax Tree 1 Syntax Tree Semantic Actions Examples Abstract Grammar 2 Internal Representation AST Builder 3 Visitor Processing Semantic Actions

More information

Computer Science Introductory Course MSc - Introduction to Java

Computer Science Introductory Course MSc - Introduction to Java Computer Science Introductory Course MSc - Introduction to Java Lecture 3:,, Pablo Oliveira ENST Outline 1 2 3 Definition An exception is an event that indicates an abnormal condition

More information

Python. Tutorial. Jan Pöschko. March 22, Graz University of Technology

Python. Tutorial. Jan Pöschko. March 22, Graz University of Technology Tutorial Graz University of Technology March 22, 2010 Why? is: very readable easy to learn interpreted & interactive like a UNIX shell, only better object-oriented but not religious about it slower than

More information

Python. chrysn

Python. chrysn Python chrysn 2008-09-25 Introduction Structure, Language & Syntax Strengths & Weaknesses Introduction Structure, Language & Syntax Strengths & Weaknesses Python Python is an interpreted,

More information

Web-GIS based Framework for Solid Waste Complaint Management for Sustainable and Smart City

Web-GIS based Framework for Solid Waste Complaint Management for Sustainable and Smart City Cloud Publications International Journal of Advanced Remote Sensing and GIS 2016, Volume 5, Issue 10, pp. 1930-1936 ISSN 2320-0243, DOI: 10.23953/cloud.ijarsg.71 Research Article Open Access Web-GIS based

More information

CS-140 Fall 2017 Test 1 Version Practice Practice for Nov. 20, Name:

CS-140 Fall 2017 Test 1 Version Practice Practice for Nov. 20, Name: CS-140 Fall 2017 Test 1 Version Practice Practice for Nov. 20, 2017 Name: 1. (10 points) For the following, Check T if the statement is true, the F if the statement is false. (a) T F : If a child overrides

More information

CS429: Computer Organization and Architecture

CS429: Computer Organization and Architecture CS429: Computer Organization and Architecture Warren Hunt, Jr. and Bill Young Department of Computer Sciences University of Texas at Austin Last updated: September 3, 2014 at 08:38 CS429 Slideset C: 1

More information

Scikit-learn. scikit. Machine learning for the small and the many Gaël Varoquaux. machine learning in Python

Scikit-learn. scikit. Machine learning for the small and the many Gaël Varoquaux. machine learning in Python Scikit-learn Machine learning for the small and the many Gaël Varoquaux scikit machine learning in Python In this meeting, I represent low performance computing Scikit-learn Machine learning for the small

More information

INF5110 Compiler Construction. Spring 2017

INF5110 Compiler Construction. Spring 2017 INF5110 Compiler Construction Spring 2017 1 / 97 Outline 1. Intermediate code generation Intro Intermediate code Three-address code P-code Generating P-code Generation of three address code Basic: From

More information

MURA Office hours Thurs at 12-1pm in CIT 546 Contact for more info.

MURA Office hours Thurs at 12-1pm in CIT 546 Contact for more info. Course Announcements Lecture capture has begun, available from Lectures page. First two and a half weeks are packed. Testing lab done, HTML started, and Stars due next Friday. Department has a lot of student

More information

Sun SPOTs: A Great Solution for Small Device Development

Sun SPOTs: A Great Solution for Small Device Development Sun SPOTs: A Great Solution for Small Device Development Claudio M. Horvilleur Cromasoft, S.A. de C.V. México Agenda What is the Problem? What is a SunSPOT? Adding a New Sensor Hardware Development Issues

More information

11 Parallel programming models

11 Parallel programming models 237 // Program Design 10.3 Assessing parallel programs 11 Parallel programming models Many different models for expressing parallelism in programming languages Actor model Erlang Scala Coordination languages

More information

A Practical Comparison of Agile Web Frameworks

A Practical Comparison of Agile Web Frameworks A Practical Agile Frame David Díaz Clavijo david@diazclavijo.com University of Las Palmas de Gran Canaria School of Computer Science Tutors: Cayetano Guerra Artal Alexis Quesada Arencibia Lydia Esther

More information

Interfaces Dynamic Filter Sorting Sorting SQL. Dynamic LINQ. Radu Nicolescu Department of Computer Science University of Auckland.

Interfaces Dynamic Filter Sorting Sorting SQL. Dynamic LINQ. Radu Nicolescu Department of Computer Science University of Auckland. Dynamic LINQ Radu Nicolescu Department of Computer Science University of Auckland 25 August 2017 1 / 20 1 IEnumerable and IQueryable 2 Dynamic LINQ 3 Dynamic filter Where 4 Dynamic sorting OrderBy 5 Dynamic

More information

GLoBES. Patrick Huber. Physics Department VT. P. Huber p. 1

GLoBES. Patrick Huber. Physics Department VT. P. Huber p. 1 GLoBES Patrick Huber Physics Department VT P. Huber p. 1 P. Huber p. 2 General Long Baseline Experiment Simulator GLoBES is a software package designed for Simulation Analysis Comparison of neutrino oscillation

More information

Directions in Statistical Computing 2014 Renjin's JIT

Directions in Statistical Computing 2014 Renjin's JIT Directions in Statistical Computing 2014 Renjin's JIT Thinking about R as a Query Language Alexander Bertram BeDataDriven 2014 1 Quick Intro: Renjin R-language Interpreter written in Java, uses GNU R core

More information

Structure. Background. them to their higher order equivalents. functionals in Standard ML source code and converts

Structure. Background. them to their higher order equivalents. functionals in Standard ML source code and converts Introduction 3 Background functionals factor out common behaviour map applies a function to every element of a list fun map [ ] = [ ] map f ( x : : xs ) = f x : : map f xs filter keeps only those elements

More information

Turing Machines Part Three

Turing Machines Part Three Turing Machines Part Three What problems can we solve with a computer? What kind of computer? Very Important Terminology Let M be a Turing machine. M accepts a string w if it enters an accept state when

More information

Information Security Theory vs. Reality

Information Security Theory vs. Reality Information Security Theory vs. Reality 0368-4474-01, Winter 2011 Lecture 7: Information flow control Eran Tromer 1 Slides credit: Max Krohn, MIT Ian Goldberg and Urs Hengartner, University of Waterloo

More information

Chapter 9 Intermediate code generation

Chapter 9 Intermediate code generation Chapter 9 generation Course Martin Steffen Spring 2018 Chapter 9 Learning Targets of Chapter generation. 1. intermediate code 2. three-address code and 3. translation to those forms 4. translation between

More information

arxiv: v1 [cs.se] 10 Jan 2018

arxiv: v1 [cs.se] 10 Jan 2018 To Pool or Not To Pool? Revisiting an Old Pattern Ioannis T. Christou Athens Information Technology, 15125 Marousi, Greece Sofoklis Efremidis Athens Information Technology, 15125 Marousi, Greece arxiv:1801.03763v1

More information

Triggering of Just-In-Time Compilation in the Java Virtual Machine

Triggering of Just-In-Time Compilation in the Java Virtual Machine San Jose State University SJSU ScholarWorks Master's Projects Master's Theses and Graduate Research 2009 Triggering of Just-In-Time Compilation in the Java Virtual Machine Rouhollah Gougol San Jose State

More information

I. Numerical Computing

I. Numerical Computing I. Numerical Computing A. Lectures 1-3: Foundations of Numerical Computing Lecture 1 Intro to numerical computing Understand difference and pros/cons of analytical versus numerical solutions Lecture 2

More information

ITI Introduction to Computing II

ITI Introduction to Computing II (with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 11, 2015 Please don t print these lecture notes unless you really need to!

More information

Activities, Fragments and Intents

Activities, Fragments and Intents Mobile App Development 1 2 Design Principles 3 1 2 Design Principles 3 Manifest file Outline AndroidManifest.xml XML file Contains name of the application and a default package, Sets up the various permissions

More information

Inverse Orchestra: An approach to find faster solution of matrix inversion through Cramer s rule

Inverse Orchestra: An approach to find faster solution of matrix inversion through Cramer s rule Inverse Orchestra: An approach to find faster solution of matrix inversion through Cramer s rule Shweta Agrawal, Rajkamal School of Computer Science & Information Technology, DAVV, Indore (M.P.), India

More information

High-performance Technical Computing with Erlang

High-performance Technical Computing with Erlang High-performance Technical Computing with Erlang Alceste Scalas Giovanni Casu Piero Pili Center for Advanced Studies, Research and Development in Sardinia ACM ICFP 2008 Erlang Workshop September 27th,

More information

Finding Motifs in Protein Sequences and Marking Their Positions in Protein Structures

Finding Motifs in Protein Sequences and Marking Their Positions in Protein Structures MotifMarker Demo This document contains a demo of MotifMarker used to study the structures of the CDK2,CDC2, CDK4 and CDK6 highlighting the 3 important domains/motifs, namely, the PSTAIRE region, ATP binding

More information

Web-based Exploration of and Interaction with Large and Deeply Structured Semantic 3D City Models using HTML5 and WebGL

Web-based Exploration of and Interaction with Large and Deeply Structured Semantic 3D City Models using HTML5 and WebGL Web-based Exploration of and Interaction with Large and Deeply Structured Semantic 3D City Models using HTML5 and WebGL KANISHK CHATURVEDI 1, ZHIHANG YAO 2 & THOMAS H. KOLBE 1 Abstract: The aim of the

More information

1. Write a program to calculate distance traveled by light

1. Write a program to calculate distance traveled by light G. H. R a i s o n i C o l l e g e O f E n g i n e e r i n g D i g d o h H i l l s, H i n g n a R o a d, N a g p u r D e p a r t m e n t O f C o m p u t e r S c i e n c e & E n g g P r a c t i c a l M a

More information

DiffSharp An AD Library for.net Languages

DiffSharp An AD Library for.net Languages DiffSharp An AD Library for.net Languages Atılım Güneş Baydin 1 Barak A. Pearlmutter 2 Jeffrey Mark Siskind 3 1 University of Oxford gunes@robots.ox.ac.uk 2 Maynooth University barak@pearlmutter.net 3

More information

A Stochastic Simulation of Natural Organic Matter and Microbes in the Environment

A Stochastic Simulation of Natural Organic Matter and Microbes in the Environment A Stochastic Simulation of Natural Organic Matter and Microbes in the Environment Xiaorong Xiang Gregory Madey Yingping Huang Steve Cabaniss (University of New Mexico) Department of Computer Science and

More information

Meta-programming & you

Meta-programming & you Meta-programming & you Robin Message Cambridge Programming Research Group 10 th May 2010 What s meta-programming about? 1 result=somedb. customers. select 2 { first_name+ +last_name } 3 where name LIKE

More information

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, Name:

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, Name: CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018 Name: 1. (10 points) For the following, Check T if the statement is true, or F if the statement is false. (a) T F : If a child overrides its parent

More information

Building Algorithmic Polytopes. David Bremner with D. Avis, H.R. Tiwary, and O. Watanabe December 16, 2014

Building Algorithmic Polytopes. David Bremner with D. Avis, H.R. Tiwary, and O. Watanabe December 16, 2014 Building Algorithmic Polytopes David Bremner with D. Avis, H.R. Tiwary, and O. Watanabe December 16, 2014 Outline Matchings in graphs Given G = (V, E), M E is called a matching {e M v e} 1 v V A matching

More information

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University Prof. Mi Lu TA: Ehsan Rohani Laboratory Exercise #4 MIPS Assembly and Simulation

More information

Introduction to Computing II (ITI 1121) FINAL EXAMINATION

Introduction to Computing II (ITI 1121) FINAL EXAMINATION Université d Ottawa Faculté de génie École de science informatique et de génie électrique University of Ottawa Faculty of engineering School of Electrical Engineering and Computer Science Introduction

More information

A friendly framework for hiding fault enabled virus for Java based smart cards

A friendly framework for hiding fault enabled virus for Java based smart cards A friendly framework for hiding fault enabled virus for Java based smart cards Tiana Razafindralambo Guillaume Bouffard Jean-Louis Lanet Smart Secure Devices (SSD) Team Xlim Université de Limoges aina.razafindralambo@etu.unilim.fr

More information

ITI Introduction to Computing II

ITI Introduction to Computing II (with contributions from R. Holte) School of Electrical Engineering and Computer Science University of Ottawa Version of January 9, 2019 Please don t print these lecture notes unless you really need to!

More information

PRIMA Astrometric FItting Software (AFIS)

PRIMA Astrometric FItting Software (AFIS) PRIMA Astrometric FItting Software (AFIS) Users Requirements Doc. Nr: JRA4-SPE-2410-0001 Issue: 1.0 Date: July 15 th, 2006 Prepared Damien Ségransan July 15 th, 2006 Approved Gérard Zins Released Signature

More information

JChartLib ver 1.0. Silvio Schneider, June 7, Introduction 3. 2 Chart and Dataset 4. 3 Adding data to a chart 4

JChartLib ver 1.0. Silvio Schneider, June 7, Introduction 3. 2 Chart and Dataset 4. 3 Adding data to a chart 4 JChartLib ver 1.0 Silvio Schneider, contact@suvi.org June 7, 2012 Contents 1 Introduction 3 2 Chart and Dataset 4 3 Adding data to a chart 4 4 Linechart 5 4.1 Linechart Example........................................

More information

GRASS GIS Development APIs

GRASS GIS Development APIs GRASS GIS Development APIs Lifting the fog on the different ways to develop with and for GRASS Moritz Lennert Member of the GRASS GIS Project Steering Comittee PostGISomics Over 30 years of development

More information

DEVELOPMENT AND IMPLEMENTATION OF A NEW WEB MAPPING SYSTEM ARCHITECTURE FOR ARCTIC REGION

DEVELOPMENT AND IMPLEMENTATION OF A NEW WEB MAPPING SYSTEM ARCHITECTURE FOR ARCTIC REGION GEOIDE SSII#109 DEVELOPMENT AND IMPLEMENTATION OF A NEW WEB MAPPING SYSTEM ARCHITECTURE FOR ARCTIC REGION Presenter: Fanny Tsai hftsai@ucalgary.ca Supervisor: Dr. Steve Liang steve.liang@ucalgary.ca Date:

More information

CFLs and Regular Languages. CFLs and Regular Languages. CFLs and Regular Languages. Will show that all Regular Languages are CFLs. Union.

CFLs and Regular Languages. CFLs and Regular Languages. CFLs and Regular Languages. Will show that all Regular Languages are CFLs. Union. We can show that every RL is also a CFL Since a regular grammar is certainly context free. We can also show by only using Regular Expressions and Context Free Grammars That is what we will do in this half.

More information

FREIS: A WEB-BASED RESOURCES AND ENVIRONMENT INFORMATION SYSTEM FOR AGRO-ECOSYSTEM MANAGEMENT

FREIS: A WEB-BASED RESOURCES AND ENVIRONMENT INFORMATION SYSTEM FOR AGRO-ECOSYSTEM MANAGEMENT FREIS: A WEB-BASED RESOURCES AND ENVIRONMENT INFORMATION SYSTEM FOR AGRO-ECOSYSTEM MANAGEMENT Mingxin Men *, Yuepu Qi, Boyang Du, Hao Xu College of Agricultural Resources and Environmental Sciences, Hebei

More information

YYT-C3002 Application Programming in Engineering GIS I. Anas Altartouri Otaniemi

YYT-C3002 Application Programming in Engineering GIS I. Anas Altartouri Otaniemi YYT-C3002 Application Programming in Engineering GIS I Otaniemi Overview: GIS lectures & exercise We will deal with GIS application development in two lectures. Because of the versatility of GIS data models

More information

import java. u t i l. ;... Scanner sc = new Scanner ( System. in ) ;

import java. u t i l. ;... Scanner sc = new Scanner ( System. in ) ; CPSC 490 Input Input will always arrive on stdin. You may assume input is well-formed with respect to the problem specification; inappropriate input (e.g. text where a number was specified, number out

More information

Functional Programming with F# Overview and Basic Concepts

Functional Programming with F# Overview and Basic Concepts Functional Programming with F# Overview and Basic Concepts Radu Nicolescu Department of Computer Science University of Auckland 27 Sep 2017 1 / 52 1 Background 2 Overview 3 Type System and Type Inference

More information

Code Clone Detection using Graphs and Adjacency Structures

Code Clone Detection using Graphs and Adjacency Structures Code Clone Detection using Graphs and Adjacency Structures Mukesh Kumar a, Lalit Kumar Sagar b, Saurabh Kumar c a, b, c Assistant Professor, Dr. K.N.M.I.E.T, India Abstract: - Code clone detection is the

More information

OSGIS Platform. Storing and distributing PostGIS, Deegree, UMN Map Server Desktop visualization JUMP, QGIS, Thuban, udig, gvsig

OSGIS Platform. Storing and distributing PostGIS, Deegree, UMN Map Server Desktop visualization JUMP, QGIS, Thuban, udig, gvsig GIS groups of tasks Geodata collecting, updating Geodata storing and distributing Geodata analysis Geodata visualization: Desktop, Internet, Printing Geodata describing: metadata management Geodata converting:

More information

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work Lab 5 : Linking Name: Sign the following statement: On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work 1 Objective The main objective of this lab is to experiment

More information

Space-aware data flow analysis

Space-aware data flow analysis Space-aware data flow analysis C. Bernardeschi, G. Lettieri, L. Martini, P. Masci Dip. di Ingegneria dell Informazione, Università di Pisa, Via Diotisalvi 2, 56126 Pisa, Italy {cinzia,g.lettieri,luca.martini,paolo.masci}@iet.unipi.it

More information

Introduction to Computer Programming, Spring Term 2018 Practice Assignment 1 Discussion:

Introduction to Computer Programming, Spring Term 2018 Practice Assignment 1 Discussion: German University in Cairo Media Engineering and Technology Prof. Dr. Slim Abdennadher Dr. Rimon Elias Dr. Hisham Othman Introduction to Computer Programming, Spring Term 2018 Practice Assignment 1 Discussion:

More information

4th year Project demo presentation

4th year Project demo presentation 4th year Project demo presentation Colm Ó héigeartaigh CASE4-99387212 coheig-case4@computing.dcu.ie 4th year Project demo presentation p. 1/23 Table of Contents An Introduction to Quantum Computing The

More information

Adaptive Online Program Analysis: Concepts, Infrastructure, and Applications

Adaptive Online Program Analysis: Concepts, Infrastructure, and Applications Technical Report TR-UNL-CSE-2006-0011, Department of Computer Science and Engineering, University of Nebraska Lincoln, Lincoln, Nebraska, USA, 9 September 2006 Adaptive Online Program Analysis: Concepts,

More information

INF5110 Compiler Construction. Spring 2016

INF5110 Compiler Construction. Spring 2016 INF5110 Compiler Construction Spring 2016 1 / 98 Outline 1. Intermediate code generation Intro Intermediate code Three-address code P-code Generating P-code Generation of three address code Basic: From

More information

Web georeference of historical maps

Web georeference of historical maps Vassilios Tsioukas Web georeference of historical maps Keywords: Historical maps, Georeference, Cartography, Cartographic Heritage Summary The creation of an application to perform the geo-referencing

More information

Inf2A: The Pumping Lemma

Inf2A: The Pumping Lemma Inf2A: Stuart Anderson School of Informatics University of Edinburgh October 8, 2009 Outline 1 Deterministic Finite State Machines and Regular Languages 2 3 4 The language of a DFA ( M = Q, Σ, q 0, F,

More information

Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS Berkley University 1

Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS Berkley University 1 Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS 164 -- Berkley University 1 Bottom-Up Parsing Bottom-up parsing is more general than topdown parsing And just as efficient

More information

Oracle Spatial: Essentials

Oracle Spatial: Essentials Oracle University Contact Us: 1.800.529.0165 Oracle Spatial: Essentials Duration: 5 Days What you will learn The course extensively covers the concepts and usage of the native data types, functions and

More information

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ;

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ; 1 Trees The next major set of data structures belongs to what s called Trees. They are called that, because if you try to visualize the structure, it kind of looks like a tree (root, branches, and leafs).

More information

CA Compiler Construction

CA Compiler Construction CA4003 - Compiler Construction Code Generation to MIPS David Sinclair Code Generation The generation o machine code depends heavily on: the intermediate representation;and the target processor. We are

More information

Decidability and Undecidability

Decidability and Undecidability Decidability and Undecidability Major Ideas from Last Time Every TM can be converted into a string representation of itself. The encoding of M is denoted M. The universal Turing machine U TM accepts an

More information

Tests of MATISSE on large spectral datasets from the ESO Archive

Tests of MATISSE on large spectral datasets from the ESO Archive Tests of MATISSE on large spectral datasets from the ESO Archive Preparing MATISSE for the ESA Gaia Mission C.C. Worley, P. de Laverny, A. Recio-Blanco, V. Hill, Y. Vernisse, C. Ordenovic and A. Bijaoui

More information

Software Analysis AdaCore

Software Analysis AdaCore Software Analysis Tools @ AdaCore Yannick Moy LSL Seminar, CEA-LIST December 8 th, 2009 Outline Ada & AdaCore Dynamic Analysis Tools @ AdaCore Static Analysis Tools @ AdaCore Project Hi-Lite 1 / 46 Outline

More information

B553 Lecture 5: Matrix Algebra Review

B553 Lecture 5: Matrix Algebra Review B553 Lecture 5: Matrix Algebra Review Kris Hauser January 19, 2012 We have seen in prior lectures how vectors represent points in R n and gradients of functions. Matrices represent linear transformations

More information

Department of Chemical Engineering University of California, Santa Barbara Spring Exercise 2. Due: Thursday, 4/19/09

Department of Chemical Engineering University of California, Santa Barbara Spring Exercise 2. Due: Thursday, 4/19/09 Department of Chemical Engineering ChE 210D University of California, Santa Barbara Spring 2012 Exercise 2 Due: Thursday, 4/19/09 Objective: To learn how to compile Fortran libraries for Python, and to

More information

OBEUS. (Object-Based Environment for Urban Simulation) Shareware Version. Itzhak Benenson 1,2, Slava Birfur 1, Vlad Kharbash 1

OBEUS. (Object-Based Environment for Urban Simulation) Shareware Version. Itzhak Benenson 1,2, Slava Birfur 1, Vlad Kharbash 1 OBEUS (Object-Based Environment for Urban Simulation) Shareware Version Yaffo model is based on partition of the area into Voronoi polygons, which correspond to real-world houses; neighborhood relationship

More information

SFWR ENG/COMP SCI 2S03 Principles of Programming

SFWR ENG/COMP SCI 2S03 Principles of Programming (Slide 1 of 78) Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Java actually: A Comprehensive Primer in

More information

UCGE Reports Number 20148

UCGE Reports Number 20148 UCGE Reports Number 20148 Department of Geomatics Engineering Development of a Distributed Geoprocessing Service Model (URL: http://www.geomatics.ucalgary.ca/gradtheses.html) by Shuxin Yuan December 2000

More information

AlgAE (Algorithm Animation Engine) Reference Manual Version 3.0. Steven J. Zeil Old Dominion University Dept. of Computer Science

AlgAE (Algorithm Animation Engine) Reference Manual Version 3.0. Steven J. Zeil Old Dominion University Dept. of Computer Science AlgAE (Algorithm Animation Engine) Reference Manual Version 3.0 Steven J. Zeil Old Dominion University Dept. of Computer Science August 20, 2011 i Copyright: This document is c 2011, Steven J. Zeil. Permission

More information

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018 CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018 Name: 1. (10 points) For the following, Check T if the statement is true, or F if the statement is false. (a) T X F : If a child overrides its parent

More information

SideNail. Martín Schonaker, Santiago Martínez

SideNail. Martín Schonaker, Santiago Martínez SideNail Martín Schonaker, Santiago Martínez March 24, 2010 2 Chapter 1 Quickstart 1.1 Hello, World! Listing 1.1 shows the simplest mapping example one can build with SideNail. The example shows how to

More information

Design and implementation of a new meteorology geographic information system

Design and implementation of a new meteorology geographic information system Design and implementation of a new meteorology geographic information system WeiJiang Zheng, Bing. Luo, Zhengguang. Hu, Zhongliang. Lv National Meteorological Center, China Meteorological Administration,

More information

Synthesis of Adaptive Side-Channel Attacks

Synthesis of Adaptive Side-Channel Attacks Synthesis of Adaptive Side-Channel Attacks MALACARIA, P; Phan, Q-S; Pasareanu, C; Bang, L; Bultan, T; 2017 IEEE Computer Security Foundations Symposium (CSF) For additional information about this publication

More information

Parsing Algorithms. CS 4447/CS Stephen Watt University of Western Ontario

Parsing Algorithms. CS 4447/CS Stephen Watt University of Western Ontario Parsing Algorithms CS 4447/CS 9545 -- Stephen Watt University of Western Ontario The Big Picture Develop parsers based on grammars Figure out properties of the grammars Make tables that drive parsing engines

More information

A Spatial Data Infrastructure for Landslides and Floods in Italy

A Spatial Data Infrastructure for Landslides and Floods in Italy V Convegno Nazionale del Gruppo GIT Grottaminarda 14 16 giugno 2010 A Spatial Data Infrastructure for Landslides and Floods in Italy Ivan Marchesini, Vinicio Balducci, Gabriele Tonelli, Mauro Rossi, Fausto

More information

Tryton Technical Training

Tryton Technical Training Tryton Technical Training N. Évrard B 2CK September 18, 2015 N. Évrard (B 2 CK) Tryton Technical Training September 18, 2015 1 / 56 Overview and Installation Outline 1 Overview and Installation Tryton

More information

CMPSCI 105 Final Exam Spring 2016 Professor William T. Verts CMPSCI 105 Final Exam Spring 2016 May 5, 2016 Professor William T. Verts Solution Key

CMPSCI 105 Final Exam Spring 2016 Professor William T. Verts CMPSCI 105 Final Exam Spring 2016 May 5, 2016 Professor William T. Verts Solution Key CMPSCI 105 Final Exam Spring 2016 May 5, 2016 Professor William T. Verts Solution Key Page 1 of 6 GENERAL KNOWLEDGE, SPECIAL TOPICS, & REVIEW 10 Points One point each question. Answer any ten. Answer

More information

Visualizing Energy Usage and Consumption of the World

Visualizing Energy Usage and Consumption of the World Visualizing Energy Usage and Consumption of the World William Liew Abstract As the world becomes more and more environmentally aware, a simple layman s visualization of worldwide energy use is needed to

More information

Theorem Proving beyond Deduction

Theorem Proving beyond Deduction Theorem Proving beyond Deduction Specification and Verification with Higher-Order Logic Arnd Poetzsch-Heffter (Slides by Jens Brandt) Software Technology Group Fachbereich Informatik Technische Universität

More information