A Decision Tree-based Approach to Dynamic Pointcut Evaluation
|
|
- Brett Price
- 5 years ago
- Views:
Transcription
1 A Decision Tree-based Approach to Dynamic Pointcut Robert Dyer and Hridesh Rajan Department of Computer Science Iowa State University October 19, 2008
2 Overview Motivation: Dynamic PCD Approach: Decision-tree based Matching Technical Contributions: Formalization of the PCD problem Algorithms using Decision-tree structures for faster matching Use of implication relationships for partial evaluation of type predicates Robert Dyer and Hridesh Rajan 2 Decision Tree-based Dynamic PCD
3 Overview Terminology PCD a A, the set of attributes o O, the set of operators v V, the set of values Robert Dyer and Hridesh Rajan 3 Decision Tree-based Dynamic PCD
4 Overview Terminology PCD a A, the set of attributes o O, the set of operators v V, the set of values pred ::= ( a, o, v ) fact ::= ( a, v ) Robert Dyer and Hridesh Rajan 4 Decision Tree-based Dynamic PCD
5 Overview Terminology PCD a A, the set of attributes o O, the set of operators v V, the set of values pred ::= ( a, o, v ) fact ::= ( a, v ) PCD ::= pred ( PCD ) pred && PCD pred PCD join point ::= fact fact && join point Robert Dyer and Hridesh Rajan 5 Decision Tree-based Dynamic PCD
6 Overview Terminology PCD A ::= {modifier, type, name} V ::= {v : v is a modifier, type or name in the program} O ::= {==,!=} Robert Dyer and Hridesh Rajan 6 Decision Tree-based Dynamic PCD
7 Overview Terminology PCD A ::= {modifier, type, name} V ::= {v : v is a modifier, type or name in the program} O ::= {==,!=} Example PCD (modifier, ==, public) && (type,!=, void) && (name, ==, "Set") Robert Dyer and Hridesh Rajan 7 Decision Tree-based Dynamic PCD
8 Overview Terminology PCD A ::= {modifier, type, name} V ::= {v : v is a modifier, type or name in the program} O ::= {==,!=} Example PCD (modifier, ==, public) && (type,!=, void) && (name, ==, "Set") Example join point (modifier, public) && (type, FElement) && (name, "Set") Robert Dyer and Hridesh Rajan 8 Decision Tree-based Dynamic PCD
9 Overview Terminology PCD Robert Dyer and Hridesh Rajan 9 Decision Tree-based Dynamic PCD
10 Overview Terminology PCD 2 ways of viewing the problem PCDEval Robert Dyer and Hridesh Rajan 10 Decision Tree-based Dynamic PCD
11 Overview Terminology PCD 2 ways of viewing the problem PCDEval Robert Dyer and Hridesh Rajan 11 Decision Tree-based Dynamic PCD
12 Overview Overview Partial of Types Algorithm overview Order predicates for efficiency Create PCD evaluation tree(s) Add predicates to decision trees Create links to parents Robert Dyer and Hridesh Rajan 12 Decision Tree-based Dynamic PCD
13 Overview Overview Partial of Types Consider the following PCD: Pred1 (Pred2&&Pred3) Robert Dyer and Hridesh Rajan 13 Decision Tree-based Dynamic PCD
14 Overview Overview Partial of Types Order predicates for efficiency Modifiers are simple to match Makes other decision-trees disjoint (smaller) Robert Dyer and Hridesh Rajan 14 Decision Tree-based Dynamic PCD
15 Overview Overview Partial of Types Robert Dyer and Hridesh Rajan 15 Decision Tree-based Dynamic PCD
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Overview Overview Partial of Types Goal: Reduce size of decision-trees Idea: Partially evaluate predicates Robert Dyer and Hridesh Rajan 33 Decision Tree-based Dynamic PCD
34 Overview Overview Partial of Types Known: B C Evaluate: A B, A C Robert Dyer and Hridesh Rajan 34 Decision Tree-based Dynamic PCD
35 Overview Overview Partial of Types Known: B C Evaluate: A B, A C A B B C Robert Dyer and Hridesh Rajan 35 Decision Tree-based Dynamic PCD
36 Overview Overview Partial of Types Known: B C Evaluate: A B, A C A B B C A C Robert Dyer and Hridesh Rajan 36 Decision Tree-based Dynamic PCD
37 Overview Overview Partial of Types Known: B C Evaluate: A B, A C A B B C A C Partially Evaluate: A B Robert Dyer and Hridesh Rajan 37 Decision Tree-based Dynamic PCD
38 Overview Created implementation in Nu virtual machine Bind and Remove primitives for deploying/un-deploying advice Synthetic micro-benchmark Measures time to Bind (add to trees) and match Varies type hierarchy depth Robert Dyer and Hridesh Rajan 38 Decision Tree-based Dynamic PCD
39 Overview Robert Dyer and Hridesh Rajan 39 Decision Tree-based Dynamic PCD
40 Old matching code - ( 40µs constant)
41 Old matching code - average case 3-50x slower worst case 3-88x slower
42 Related Work Overview Efficient Matching Techniques Dynamic Residue Partial Techniques Robert Dyer and Hridesh Rajan 42 Decision Tree-based Dynamic PCD
43 Future Work Overview Example Implementation(s) Real-world s Robert Dyer and Hridesh Rajan 43 Decision Tree-based Dynamic PCD
44 Overview Motivation: Dynamic PCD PCDs arrive dynamically PCDs might be removed later Matching the whole (loaded) system against a PCD is too slow Approach: Decision-tree based Matching Order evaluations based on cost Partially evaluate wherever possible Technical Contributions: Formalization of the PCD problem Algorithms using Decision-tree structures for faster matching Use of implication relationships for partial evaluation of type predicates Robert Dyer and Hridesh Rajan 44 Decision Tree-based Dynamic PCD
45 Overview Questions? nu/ Robert Dyer and Hridesh Rajan 45 Decision Tree-based Dynamic PCD
46
47 C. run C1. run C2. run C3. run.. class C { p u b l i c s t a t i c void run ( ) { measure { Bind.. / / to methods r e t u r n i n g C1 } measure { Bind.. / / to methods r e t u r n i n g C2 } measure { Bind.. / / to methods r e t u r n i n g C3 } } measure { C1. testmethod } measure { C2. testmethod } measure { C3. testmethod } } p u b l i c C testmethod ( ) { r e t u r n NULL }
Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation
Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Robert Dyer and Hridesh Rajan Department of Computer Science Iowa State University {rdyer,hridesh}@cs.iastate.edu
More informationNu: Towards a Flexible and Dynamic Aspect- Oriented Intermediate Language Model
Computer Science Technical Reports Computer Science 2007 Nu: Towards a Flexible and Dynamic Aspect- Oriented Intermediate Language Model Robert Dyer Iowa State University, rdyer@iastate.edu Rakesh Bangalore
More informationEvent Type Polymorphism
Event Type Polymorphism Rex D. Fernando Robert Dyer Hridesh Rajan Department of Computer Science Iowa State University {fernanre,rdyer,hridesh}@iastate.edu This work was supported in part by NSF grant
More informationNu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation
Computer Science Conference Presentations, Posters and Proceedings Computer Science 2008 Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation Robert
More informationNu: Towards a Flexible and Dynamic Aspect- Oriented Intermediate Language Model
Computer Science Technical Reports Computer Science 2007 Nu: Towards a Flexible and Dynamic Aspect- Oriented Intermediate Language Model Robert Dyer Iowa State University, rdyer@iastate.edu Rakesh Bangalore
More informationNu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation
Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Robert Dyer Dept. of Computer Science, Iowa State University rdyer@cs.iastate.edu Hridesh Rajan
More informationLanguage Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study
Computer Science Publications Computer Science 2013 Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study Robert Dyer Iowa State University Hridesh Rajan Iowa State
More informationAn Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces
An Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces Robert Dyer Hridesh Rajan Iowa State University {rdyer,hridesh}@iastate.edu Yuanfang Cai Drexel University
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More informationCS 310 B-trees, Page 1. Motives. Large-scale databases are stored in disks/hard drives.
CS 310 B-trees, Page 1 Motives Large-scale databases are stored in disks/hard drives. Disks are quite different from main memory. Data in a disk are accessed through a read-write head. To read a piece
More informationMining Source Code Repositories with. Boa. Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen
Mining Source Code Repositories with Boa Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen {rdyer,hoan,hridesh,tien}@iastate.edu Iowa State University The research and educational activities described
More informationStreams, Delayed Evaluation and a Normal Order Interpreter. CS 550 Programming Languages Jeremy Johnson
Streams, Delayed Evaluation and a Normal Order Interpreter CS 550 Programming Languages Jeremy Johnson 1 Theme This lecture discusses the stream model of computation and an efficient method of implementation
More informationMining Ultra-Large-Scale Software Repositories with. Boa
Mining Ultra-Large-Scale Software Repositories with Boa Robert Dyer, Hoan Nguyen, Hridesh Rajan, and Tien Nguyen {rdyer,hoan,hridesh,tien}@iastate.edu Iowa State University The research and educational
More informationTyped Scheme: Scheme with Static Types
Typed Scheme: Scheme with Static Types Version 4.1.1 Sam Tobin-Hochstadt October 5, 2008 Typed Scheme is a Scheme-like language, with a type system that supports common Scheme programming idioms. Explicit
More informationWhy Trees? Alternatives. Want: Ordered arrays. Linked lists. A data structure that has quick insertion/deletion, as well as fast search
Why Trees? Alternatives Ordered arrays Fast searching (binary search) Slow insertion (must shift) Linked lists Want: Fast insertion Slow searching (must start from head of list) A data structure that has
More informationModular Reasoning in the Presence of Event Subtyping
Modular Reasoning in the Presence of Event Subtyping Mehdi Bagherzadeh 1, Robert Dyer 2, Rex D. Fernando 3, José Sánchez 4, and Hridesh Rajan 1 1 Iowa State University, USA {mbagherz,hridesh}@iastate.edu
More informationNon-Blocking Inter-Partition Communication with Wait-Free Pair Transactions
Non-Blocking Inter-Partition Communication with Wait-Free Pair Transactions Ethan Blanton and Lukasz Ziarek Fiji Systems, Inc. October 10 th, 2013 WFPT Overview Wait-Free Pair Transactions A communication
More informationTackling Lack of Software Specifications A Sustained, Sustainability and Productivity Crisis
Tackling Lack of Software Specifications A Sustained, Sustainability and Productivity Crisis Hridesh Rajan Collaboration with Hoan A. Nguyen, Tien Nguyen, Gary Leavens, Samantha Khairunnesa, John Singleton,
More informationCS 342 Lecture 6 Scheme Procedures and Closures By: Hridesh Rajan
CS 342 Lecture 6 Scheme Procedures and Closures By: Hridesh Rajan 1 Reading Little Schemer Chapter 8 SICP 1, 3.2 2 Lecture Overview In this lecture, we will cover scheme procedures in a bit more detail
More informationCS 231 Data Structures and Algorithms Fall Recursion and Binary Trees Lecture 21 October 24, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Recursion and Binary Trees Lecture 21 October 24, 2018 Prof. Zadia Codabux 1 Agenda ArrayQueue.java Recursion Binary Tree Terminologies Traversal 2 Administrative
More informationBST Implementation. Data Structures. Lecture 4 Binary search trees (BST) Dr. Mahmoud Attia Sakr University of Ain Shams
Lecture 4 Binary search trees (BST) Dr. Mahmoud Attia Sakr mahmoud.sakr@cis.asu.edu.eg Cairo, Egypt, October 2012 Binary Search Trees (BST) 1. Hierarchical data structure with a single reference to root
More informationB-Trees. Version of October 2, B-Trees Version of October 2, / 22
B-Trees Version of October 2, 2014 B-Trees Version of October 2, 2014 1 / 22 Motivation An AVL tree can be an excellent data structure for implementing dictionary search, insertion and deletion Each operation
More informationRun-Time Environments
1 Run-Time Environments Chapter 7 COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University, 2007-2011 2 Procedure Activation and Lifetime A procedure is activated when called
More informationChapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1
Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development
More informationTowards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations
Computer Science Technical Reports Computer Science 3-31-2010 Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations Bashar Gharaibeh Iowa State University Hridesh
More informationAround Weaving in abc
Around Weaving in abc Objectives Avoid heap allocations Inlining not as the general strategy to avoid code duplication Keep code in original classes to avoid visibility problems The starting point Around
More informationPreserving Separation of Concerns through Compilation
Preserving Separation of Concerns through Compilation A Position Paper Hridesh Rajan Robert Dyer Youssef Hanna Dept. of Computer Science Harish Narayanappa Iowa State University Ames, IA 50010 {hridesh,
More informationTranslucid contracts: Expressive specification and modular verification of aspect oriented interfaces
Graduate Theses and Dissertations Iowa State University Capstones, Theses and Dissertations 2011 Translucid contracts: Expressive specification and modular verification of aspect oriented interfaces Mehdi
More informationObject Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.
CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java
More informationUser-defined Functions. Conditional Expressions in Scheme
User-defined Functions The list (lambda (args (body s to a function with (args as its argument list and (body as the function body. No quotes are needed for (args or (body. (lambda (x (+ x 1 s to the increment
More informationTranslucid Contracts: Expressive Specification and Modular Verification for Aspect-Oriented Interfaces
Translucid Contracts: Expressive Specification and Modular Verification for Aspect-Oriented Interfaces Mehdi Bagherzadeh β, Hridesh Rajan β, Gary T. Leavens θ and Sean Mooney β β Iowa State University,
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationDesign, Semantics and Implementation of the Ptolemy Programming Language: A Language with Quantified Typed Events
Computer Science Technical Reports Computer Science Summer 7-31-2015 Design, Semantics and Implementation of the Ptolemy Programming Language: A Language with Quantified Typed Events Hridesh Rajan Iowa
More informationPrinciples of Computer Science
Principles of Computer Science Binary Trees 08/11/2013 CSCI 2010 - Binary Trees - F.Z. Qureshi 1 Today s Topics Extending LinkedList with Fast Search Sorted Binary Trees Tree Concepts Traversals of a Binary
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 The Union-Find Data Structure Purpose: Great for disjoint sets Operations: Union ( S 1, S 2 ) Find ( x ) Performs a union of two disjoint sets
More information22c:111 Programming Language Concepts. Fall Functions
22c:111 Programming Language Concepts Fall 2008 Functions Copyright 2007-08, The McGraw-Hill Company and Cesare Tinelli. These notes were originally developed by Allen Tucker, Robert Noonan and modified
More informationAccess control for on-demand provisioned cloud infrastructure services Ngo, C.T.
UvA-DARE (Digital Academic Repository) Access control for on-demand provisioned cloud infrastructure services Ngo, C.T. Link to publication Citation for published version (APA): Ngo, C. T. (2016). Access
More informationModular software design with crosscutting interfaces
Computer Science Publications Computer Science 1-2006 Modular software design with crosscutting interfaces W. G. Griswold University of California, San Diego M. Shonle University of California, San Diego
More informationCS 2230 CS II: Data structures. Meeting 21: trees Brandon Myers University of Iowa
CS 2230 CS II: Data structures Meeting 21: trees Brandon Myers University of Iowa Today s learning objectives Define tree (a data structure that can store data hierarchically) and describe trees in terms
More informationXFindBugs: extended FindBugs for AspectJ
XFindBugs: extended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai Jiao Tong University, China A code Is there
More informationHierarchical data structures. Announcements. Motivation for trees. Tree overview
Announcements Midterm exam 2, Thursday, May 18 Closed book/notes but one sheet of paper allowed Covers up to stacks and queues Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps
More informationcsci 210: Data Structures Trees
csci 210: Data Structures Trees 1 Summary Topics general trees, definitions and properties interface and implementation tree traversal algorithms depth and height pre-order traversal post-order traversal
More informationc Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco
c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted
More informationAnnouncements. Midterm exam 2, Thursday, May 18. Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps. Break around 11:45am
Announcements Midterm exam 2, Thursday, May 18 Closed book/notes but one sheet of paper allowed Covers up to stacks and queues Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps
More informationModular Reasoning in the Presence of Event Subtyping
Modular Reasoning in the Presence of Event Subtyping Mehdi Bagherzadeh α Robert Dyer β Rex D. Fernando γ José Sánchez θ Hridesh Rajan α α Iowa State University, USA β Bowling Green State University, USA
More informationJava Object Oriented Design. CSC207 Fall 2014
Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code
More informationChapter 8 The Enhanced Entity- Relationship (EER) Model
Chapter 8 The Enhanced Entity- Relationship (EER) Model Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 Outline Subclasses, Superclasses, and Inheritance Specialization
More informationCollage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications
Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications Bruce Lucas, IBM T J Watson Research Center (bdlucas@us.ibm.com) Charles F Wiecha,
More information1. General. 2. Stream. 3. Aurora. 4. Conclusion
1. General 2. Stream 3. Aurora 4. Conclusion 1. Motivation Applications 2. Definition of Data Streams 3. Data Base Management System (DBMS) vs. Data Stream Management System(DSMS) 4. Stream Projects interpreting
More informationGetting Started With Syntax October 15, 2015
Getting Started With Syntax October 15, 2015 Introduction The Accordance Syntax feature allows both viewing and searching of certain original language texts that have both morphological tagging along with
More informationAlgorithms. Algorithms 1.5 UNION FIND. union find data type quick-find quick-union improvements applications ROBERT SEDGEWICK KEVIN WAYNE
Algorithms ROBERT SEDGEWICK KEVIN WAYNE 1.5 UNION FIND Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE union find data type quick-find quick-union improvements applications http://algs4.cs.princeton.edu
More informationDynamic Data Structures. John Ross Wallrabenstein
Dynamic Data Structures John Ross Wallrabenstein Recursion Review In the previous lecture, I asked you to find a recursive definition for the following problem: Given: A base10 number X Assume X has N
More informationAlgorithms. Deleting from Red-Black Trees B-Trees
Algorithms Deleting from Red-Black Trees B-Trees Recall the rules for BST deletion 1. If vertex to be deleted is a leaf, just delete it. 2. If vertex to be deleted has just one child, replace it with that
More informationTree Structures. A hierarchical data structure whose point of entry is the root node
Binary Trees 1 Tree Structures A tree is A hierarchical data structure whose point of entry is the root node This structure can be partitioned into disjoint subsets These subsets are themselves trees and
More informationLecture 13: Binary Search Trees
cs2010: algorithms and data structures Lecture 13: Binary Search Trees Vasileios Koutavas School of Computer Science and Statistics Trinity College Dublin Algorithms ROBERT SEDGEWICK KEVIN WAYNE 3.2 BINARY
More informationForth Meets Smalltalk. A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman
Forth Meets Smalltalk A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman 1 CONTENTS WHY FMS? NEON HERITAGE SMALLTALK HERITAGE TERMINOLOGY EXAMPLE FMS SYNTAX ACCESSING OVERRIDDEN METHODS THE
More informationMotivation for B-Trees
1 Motivation for Assume that we use an AVL tree to store about 20 million records We end up with a very deep binary tree with lots of different disk accesses; log2 20,000,000 is about 24, so this takes
More informationScheme Quick Reference
Scheme Quick Reference COSC 18 Winter 2003 February 10, 2003 1 Introduction This document is a quick reference guide to common features of the Scheme language. It is by no means intended to be a complete
More informationCustom Memory Allocation For Free
Custom Memory Allocation For Free Alin Jula and Lawrence Rauchwerger Texas A&M University November 4, 2006 Motivation Memory Allocation Matters Goals Speed Data locality Fragmentation Current State of
More informationG Programming Languages Spring 2010 Lecture 4. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 4 Robert Grimm, New York University 1 Review Last week Control Structures Selection Loops 2 Outline Subprograms Calling Sequences Parameter Passing
More informationThe abc Group. Optimising AspectJ. abc Technical Report No. abc BRICS. United Kingdom Denmark Montreal, Canada.
The abc Group Optimising AspectJ abc Technical Report No. abc-2004-3 Pavel Avgustinov 1, Aske Simon Christensen 2, Laurie Hendren 3, Sascha Kuzins 1, Jennifer Lhoták 3, Ondřej Lhoták 3, Oege de Moor 1,
More informationTECHNICAL WHITEPAPER. Performance Evaluation Java Collections Framework. Performance Evaluation Java Collections. Technical Whitepaper.
Performance Evaluation Java Collections Framework TECHNICAL WHITEPAPER Author: Kapil Viren Ahuja Date: October 17, 2008 Table of Contents 1 Introduction...3 1.1 Scope of this document...3 1.2 Intended
More informationCS 342 Lecture 7 Syntax Abstraction By: Hridesh Rajan
CS 342 Lecture 7 Syntax Abstraction By: Hridesh Rajan 1 Reading SICP, page 11-19, Section 1.1.6 Little Schemer, Chapter 2 2 The Idea of Syntax Abstraction Problem. Often programming tasks are repetitive,
More informationOn Exceptions, Events and Observer Chains
Computer Science Technical Reports Computer Science 1-15-2013 On Exceptions, Events and Observer Chains Mehdi Bagherzadeh Iowa State University, mbagherz@iastate.edu Hridesh Rajan Iowa State University
More informationThe Typed Racket Reference
The Typed Racket Reference Version 5.1 Sam Tobin-Hochstadt February 14, 2011 #lang typed/racket/base #lang typed/racket 1 1 Type Reference Any Any Racket value. All other types are subtypes of Any. Nothing
More informationFall Semester, The Metacircular Evaluator. Today we shift perspective from that of a user of computer langugaes to that of a designer of
1 MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Fall Semester, 1996 Lecture Notes { October 31,
More information8 Supervised Overlay Networks
8 Supervised Overlay Networks Every application run on multiple machines needs a mechanism that allows the machines to exchange information. An easy way of solving this problem is that every machine knows
More informationFormally Certified Satisfiability Solving
SAT/SMT Proof Checking Verifying SAT Solver Code Future Work Computer Science, The University of Iowa, USA April 23, 2012 Seoul National University SAT/SMT Proof Checking Verifying SAT Solver Code Future
More informationBalanced Trees Part One
Balanced Trees Part One Balanced Trees Balanced search trees are among the most useful and versatile data structures. Many programming languages ship with a balanced tree library. C++: std::map / std::set
More information;;; Determines if e is a primitive by looking it up in the primitive environment. ;;; Define indentation and output routines for the output for
Page 1/11 (require (lib "trace")) Allow tracing to be turned on and off (define tracing #f) Define a string to hold the error messages created during syntax checking (define error msg ""); Used for fancy
More informationCS350: Data Structures B-Trees
B-Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Introduction All of the data structures that we ve looked at thus far have been memory-based
More informationINF2220: algorithms and data structures Series 1
Universitetet i Oslo Institutt for Informatikk A. Maus, R.K. Runde, I. Yu INF2220: algorithms and data structures Series 1 Topic Trees & estimation of running time (Exercises with hints for solution) Issued:
More informationPredictive Engineering and Computational Sciences. Data Structures and Methods for Unstructured Distributed Meshes. Roy H. Stogner
PECOS Predictive Engineering and Computational Sciences Data Structures and Methods for Unstructured Distributed Meshes Roy H. Stogner The University of Texas at Austin May 23, 2012 Roy H. Stogner Distributed
More informationOperating Systems (2INC0) 2017/18
Operating Systems (2INC0) 2017/18 Memory Management (09) Dr. Courtesy of Dr. I. Radovanovic, Dr. R. Mak (figures from Bic & Shaw) System Architecture and Networking Group Agenda Reminder: OS & resources
More informationData Structures and Algorithms
Data Structures and Algorithms Trees Sidra Malik sidra.malik@ciitlahore.edu.pk Tree? In computer science, a tree is an abstract model of a hierarchical structure A tree is a finite set of one or more nodes
More informationThe minimum spanning tree problem
The minimum spanning tree problem MST is a minimum cost connection problem on graphs The graph can model the connection in a (hydraulic, electric, telecommunication) network: the nodes are the points that
More informationSo, What is an Aspect?
Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join
More informationCSE373 Fall 2013, Final Examination December 10, 2013 Please do not turn the page until the bell rings.
CSE373 Fall 2013, Final Examination December 10, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please stop promptly
More informationCOL728 Minor2 Exam Compiler Design Sem II, Answer all 5 questions Max. Marks: 20
COL728 Minor2 Exam Compiler Design Sem II, 2017-18 Answer all 5 questions Max. Marks: 20 1. Short questions a. Give an example of a program that is not a legal program if we assume static scoping, but
More informationScheme Quick Reference
Scheme Quick Reference COSC 18 Fall 2003 This document is a quick reference guide to common features of the Scheme language. It is not intended to be a complete language reference, but it gives terse summaries
More informationPrinciples of Programming Languages
Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Lesson 6 - Defining a Programming Language Bottom Up Collaboration and Management - Elements of Programming Dana Fisman 1 What we accomplished
More informationAstLog. Outline. Microsoft Research.
AstLog Microsoft Research. Outline Where does it come from? Prolog, with examples. Basic concepts of ASTLog. Simple examples in ASTLog. More complex examples. Why is this (apparently) not very widely used?
More informationIntroduction to. Bruno Harbulot. ESNW, the University of Manchester.
Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation
More informationDisjoint Sets. The obvious data structure for disjoint sets looks like this.
CS61B Summer 2006 Instructor: Erin Korber Lecture 30: 15 Aug. Disjoint Sets Given a set of elements, it is often useful to break them up or partition them into a number of separate, nonoverlapping groups.
More informationDATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11
DATABASE PERFORMANCE AND INDEXES CS121: Relational Databases Fall 2017 Lecture 11 Database Performance 2 Many situations where query performance needs to be improved e.g. as data size grows, query performance
More informationBinary Trees, Binary Search Trees
Binary Trees, Binary Search Trees Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete)
More information(Extended) Entity Relationship
03 - Database Design, UML and (Extended) Entity Relationship Modeling CS530 Database Architecture Models and Design Prof. Ian HORROCKS Dr. Robert STEVENS In this Section Topics Covered Database Design
More informationFundamentals of Concern Manipulation
Fundamentals of Concern Manipulation Harold Ossher IBM T. J. Watson Research Center The CME Team (IBM Hursley Park and IBM Watson) William Chung, Andrew Clement, Matthew Chapman, William Harrison, Helen
More informationRELATIONAL DATA MODEL
RELATIONAL DATA MODEL EGCO321 DATABASE SYSTEMS KANAT POOLSAWASD DEPARTMENT OF COMPUTER ENGINEERING MAHIDOL UNIVERSITY RELATIONAL DATA STRUCTURE (1) Relation: A relation is a table with columns and rows.
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2017S-06 Binary Search Trees David Galles Department of Computer Science University of San Francisco 06-0: Ordered List ADT Operations: Insert an element in the list
More informationEbbRT: A Framework for Building Per-Application Library Operating Systems
EbbRT: A Framework for Building Per-Application Library Operating Systems Overview Motivation Objectives System design Implementation Evaluation Conclusion Motivation Emphasis on CPU performance and software
More informationInterpreter Implementation of Advice Weaving
Interpreter Implementation of Advice Weaving UBC Technical Report TR-21-1 Immad Naseer University of British Columbia inaseer@cs.ubc.ca Ryan M. Golbeck University of British Columbia rmgolbec@cs.ubc.ca
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationMoving Fast with High Reliability: Program Analysis at Uber
Moving Fast with High Reliability: Program Analysis at Uber Manu Sridharan Software Reliability Workshop ETH Zurich OCTOBER 14, 2017 Uber Apps Rider Driver Eats ios and Android Uber Apps Rider Driver Eats
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationInformation Systems (Informationssysteme)
Information Systems (Informationssysteme) Jens Teubner, TU Dortmund jens.teubner@cs.tu-dortmund.de Summer 2018 c Jens Teubner Information Systems Summer 2018 1 Part IX B-Trees c Jens Teubner Information
More informationHierarchical clustering. Copyright 2000, Kevin Wayne 1
Hierarchical Clustering continued & more about trees Clustering genes in microarra eperiments Function prediction Genetic networks Pathwa discover Gene regulation studies Comparative genomics How does
More informationCSC/ECE 774 Advanced Network Security
Computer Science CSC/ECE 774 Advanced Network Security Topic 4.3 Group Key Distribution Acknowledgment: Slides on LKH were originally provided by Dr. Wensheng Zhang at Iowa State. Dr. Peng Ning CSC 774
More informationOutline. Binary Tree
Outline Computer Science Mike Jacobson Department of Computer Science University of Calgary Lectures #8 9 The Dictionary ADT 2 Binary Trees s Relationship Between Size and Height Finding an Element with
More informationCS24 Week 8 Lecture 1
CS24 Week 8 Lecture 1 Kyle Dewey Overview Tree terminology Tree traversals Implementation (if time) Terminology Node The most basic component of a tree - the squares Edge The connections between nodes
More information