Run Time Environment. Implementing Object-Oriented Languages

Size: px
Start display at page:

Download "Run Time Environment. Implementing Object-Oriented Languages"

Transcription

1 Run Time Environment Implementing Objet-Oriented Languages Copright 2017, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers lass at the Universit of Southern California have epliit permission to make opies of these materials for their personal use. 1

2 What Have We Learned? Reapitulation AR is a Run-Time struture to hold State regarding the eeution of a proedure AR an be alloated in Stati, Stak or even Heap Links to allow Call-Return and Aess to Non-loal Variables Smbol- plas important role Not Yet Done with Proedures Saving Contet before all and restoring after the all Need to understand how to generate ode for bod 2

3 Implementing Objet-Oriented Lang. Mapping message or names to methods Stati mapping, known at ompile-time (Java, C++) Fied offsets & indiret alls Dnami mapping, unknown until run-time (Smalltalk) Look up name in lass of methods Want uniform plaement of standard servies (NEW, PRINT, ) This is reall a Data-Strutures Problem Build a Table of Funtion Pointers Use a Standard Invoation Sequene 3

4 Implementing Objet-Oriented Lang. With stati, ompile-time mapped lasses Class A fee() fie() foe() fum() z i j k i j k i j k objets of lass A Class B band() bend() bind() bond() Message dispath beomes an indiret all through a funtion m n a b a b objets of lass B 4

5 Implementing Objet-Oriented Lang. Method Code: void A:fee(){ ->i = 0; Class A fee() fie() foe() i j k t0 = & + 4; *t0 = 0; fum() z i j i j k k objets of lass A Method Aesses Objet Data as Offsets from the Referene 5

6 Single Inheritane & Dnami Dispath Use prefiing of s Class Point Class Point { int, ; publi void draw(); publi void d2o(); draw d2o Point:draw Point:d20 Class ColorPoint draw ColorPoint:draw Class ColorPoint etends Point { Color ; publi void draw(); publi void rev(); d2o rev ColorPoint:rev 6

7 The Inheritane Hierarh To simplif objet reation, we allow a lass to inherit methods from an anestor, or superlass. The desendant lass is alled the sublass of its anestor. The Conept: a fee() fie() One Method is an etension of from One b fee() foe() fie() foe() fum() d e Two z Three Priniple: B sublass A Þ d Î B an be used wherever a Î A is epeted B has all the methods defined in its super lass B ma override a method definition from A Sublass provides all the interfaes of superlass 7

8 The Inheritane Hierarh Two distint Implementation Philosophies Stati Class Struture Can map name to ode at ompile time Leads to 1-level jump vetor Cop superlass methods Fied offsets & indiret alls Less fleible & epressive Dnami Class Struture Cannot map name to ode at ompile time Multiple jump vetor (1/lass) Must searh for method Run-time lookups ahing Muh more epensive to run Impat on name spae Method an see instane variables of, lass, & superlasses Man different levels where a value an reside In essene, OOL differs from ALL in the shape of its name spae AND in the mehanism used to bind names to implementations 8

9 Multiple Inheritane The Idea: Allow more fleible sharing of methods & attributes Rela the inlusion requirement If B is a sublass of A, it need not implement all of A s methods Need a linguisti mehanism for speifing partial inheritane Problems when C inherits from both A & B C s method an etend A or B, but not both Laout of an objet reord for C beomes trik Other lasses, sa D, an inherit from C & B Adjustments to offsets beome omple Sa, both A & B might provide fum() whih is seen in C? C++ produes a snta error when fum() is used 9

10 Multiple Inheritane Eample Use Prefiing of Storage Class Point { int, ; Class CThing { Color ; Class CPoint etends Point, CThing { Issue: does asting work properl? 10

11 Multiple Inheritane Eample Use Prefiing of Storage Class Point Class Point { int, ; void draw(); void d2o(); draw d2o Class CThing Point: draw Point: d2o Class CThing { Color ; void rev(); rev Class CPoint CThing: rev draw CPoint:draw Class Cpoint etends Point, CThing { void draw() d2o rev +=12 11

12 Casting with Multiple Inheritane Usage as Point: No etra ation (prefiing does everthing) Usage as CThing: Inrement b 12 Usage as CPoint: La out data for CThing at + 12 When alling rev Call in points to a trampoline funtion that adds 12 to, then alls rev Ensures that rev, whih assumes that points to a CThing data area, gets the right data 12

13 Multiple Inheritane (Eample) Assume that C inherits fee() from A, fie() from B, & defines both foe() and fum() A vars B vars C vars fee() fie() foe() fum() + offset This implementation Uses trampoline funtions Optimizes well with inlining Adds overhead where needed (Zero offsets go awa) Folds inheritane into data struture, rather than linkage fie() ode ode ode ode Trampoline funtion Assumes stati lass struture For dnami, wh not rebuild on a hange in struture? 13

14 Implementing Objet-Oriented Lang. So, what an an Eeuting Method see? The Objet s own Attributes & Private Variables The Attributes & Private Variables of Classes that define it Ma be man suh lasses, in man ombinations Class variables are visible to methods that inherit the lass Objet defined in the Global Name Spae (or sope) Objets ma ontain other objets Objets that ontain their definition A lass as an instane variable of another lass,... An Eeuting Method might referene an of these Making this work requires ompile-time elaboration for stati ase and run-time elaboration for dnami ase Making it run quikl takes are, planning, and triker 14

15 Summar Support for Objet-Oriented Languages: Mostl fous on message dispathing Finding the orret funtion in the Class Hierarh Adjusting Objet Laout and Class Referenes An Invoation Stak is still needed... 15

Runtime Support for OOLs Part II Comp 412

Runtime Support for OOLs Part II Comp 412 COMP 412 FALL 2017 Runtime Support for OOLs Part II Comp 412 soure IR Front End Optimizer Bak End IR target Copright 2017, Keith D. Cooper & Linda Torzon, all rights reserved. Students enrolled in Comp

More information

Object Oriented Languages. Hwansoo Han

Object Oriented Languages. Hwansoo Han Object Oriented Languages Hwansoo Han Object-Oriented Languages An object is an abstract data tpe Encapsulates data, operations and internal state behind a simple, consistent interface. z Data Code Data

More information

Recursion examples: Problem 2. (More) Recursion and Lists. Tail recursion. Recursion examples: Problem 2. Recursion examples: Problem 3

Recursion examples: Problem 2. (More) Recursion and Lists. Tail recursion. Recursion examples: Problem 2. Recursion examples: Problem 3 Reursion eamples: Problem 2 (More) Reursion and s Reursive funtion to reverse a string publi String revstring(string str) { if(str.equals( )) return str; return revstring(str.substring(1, str.length()))

More information

Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412

Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412 COMP 412 FALL 2017 Runtime Support for OOLs Object Records, Code Vectors, Inheritance Comp 412 source IR Front End Optimizer Back End IR target Copyright 2017, Keith D. Cooper & Linda Torczon, all rights

More information

Review. Type equivalence. Java declarations. Type equivalence. Declared vs. implicit subtyping. CS 412 Introduction to Compilers

Review. Type equivalence. Java declarations. Type equivalence. Declared vs. implicit subtyping. CS 412 Introduction to Compilers CS 412 Introdution to Comilers Andrew Mers Cornell Universit Leture 21: Subting 16 Marh 01 Review Multile imlementations suorted b subting Subting harateried b new judgement: S

More information

The Procedure Abstraction

The Procedure Abstraction The Procedure Abstraction Procedure Abstraction Begins Chapter 6 in EAC The compiler must deal with interface between compile time and run time Most of the tricky issues arise in implementing procedures

More information

What about Object-Oriented Languages?

What about Object-Oriented Languages? What about Object-Oriented Languages? What is an OOL? A language that supports object-oriented programming How does an OOL differ from an ALL? (ALGOL-Like Language) Data-centric name scopes for values

More information

Classes. Compiling Methods. Code Generation for Objects. Implementing Objects. Methods. Fields

Classes. Compiling Methods. Code Generation for Objects. Implementing Objects. Methods. Fields Classes Implementing Objects Components fields/instance variables values differ from to usuall mutable methods values shared b all s of a class usuall immutable component visibilit: public/private/protected

More information

Implementing Object-Oriented Languages. Implementing instance variable access. Implementing dynamic dispatching (virtual functions)

Implementing Object-Oriented Languages. Implementing instance variable access. Implementing dynamic dispatching (virtual functions) Implementing Object-Oriented Languages Implementing instance variable access Ke features: inheritance (possibl multiple) subtping & subtpe polmorphism message passing, dnamic binding, run-time tpe testing

More information

Interconnection Styles

Interconnection Styles Interonnetion tyles oftware Design Following the Export (erver) tyle 2 M1 M4 M5 4 M3 M6 1 3 oftware Design Following the Export (Client) tyle e 2 e M1 M4 M5 4 M3 M6 1 e 3 oftware Design Following the Export

More information

O Type of array element

O Type of array element ! " #! $ % % # & : ; a ontiguous sequene of variables. all of the sae type. Eah variable is identified by its index. Index values are integers. Index of first entry is. ' ( ) * + May /,. - ( & ( ( J K

More information

Object Oriented Programming (OOP) Overview CS61A Lecture 14

Object Oriented Programming (OOP) Overview CS61A Lecture 14 Objet Oriented Programming (OOP) Overview CS6A Leture 4 0-07-3 Colleen Lewis Multiple independent intelligent agents Message passing, loal state, inheritane define-lass, instantiate, ask, method, instane-vars,

More information

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Test I Solutions

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Test I Solutions Department of Eletrial Engineering and Computer iene MAACHUETT INTITUTE OF TECHNOLOGY 6.035 Fall 2016 Test I olutions 1 I Regular Expressions and Finite-tate Automata For Questions 1, 2, and 3, let the

More information

Total 100

Total 100 CS331 SOLUTION Problem # Points 1 10 2 15 3 25 4 20 5 15 6 15 Total 100 1. ssume you are dealing with a ompiler for a Java-like language. For eah of the following errors, irle whih phase would normally

More information

Introductory Programming, IMM, DTU Systematic Software Test. Software test (afprøvning) Motivation. Structural test and functional test

Introductory Programming, IMM, DTU Systematic Software Test. Software test (afprøvning) Motivation. Structural test and functional test Introdutory Programming, IMM, DTU Systemati Software Test Peter Sestoft a Programs often ontain unintended errors how do you find them? Strutural test Funtional test Notes: Systemati Software Test, http://www.dina.kvl.dk/

More information

Outline: Software Design

Outline: Software Design Outline: Software Design. Goals History of software design ideas Design priniples Design methods Life belt or leg iron? (Budgen) Copyright Nany Leveson, Sept. 1999 A Little History... At first, struggling

More information

Design Patterns. Patterns.mkr Page 223 Wednesday, August 25, :17 AM

Design Patterns. Patterns.mkr Page 223 Wednesday, August 25, :17 AM Patterns.mkr Page 223 Wednesday, August 25, 1999 2:17 AM Design Patterns n the earlier hapters, we have seen that a entral goal of objet-oriented programming is the support of ode reuse. This hapter examines

More information

1 The Knuth-Morris-Pratt Algorithm

1 The Knuth-Morris-Pratt Algorithm 5-45/65: Design & Analysis of Algorithms September 26, 26 Leture #9: String Mathing last hanged: September 26, 27 There s an entire field dediated to solving problems on strings. The book Algorithms on

More information

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A.

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A. Compilation 0368-3133 Leture 11a Text book: Modern ompiler implementation in C Andrew A. Appel Register Alloation Noam Rinetzky 1 Registers Dediated memory loations that an be aessed quikly, an have omputations

More information

Reducing Runtime Complexity of Long-Running Application Services via Dynamic Profiling and Dynamic Bytecode Adaptation for Improved Quality of Service

Reducing Runtime Complexity of Long-Running Application Services via Dynamic Profiling and Dynamic Bytecode Adaptation for Improved Quality of Service Reduing Runtime Complexity of Long-Running Appliation Servies via Dynami Profiling and Dynami Byteode Adaptation for Improved Quality of Servie ABSTRACT John Bergin Performane Engineering Laboratory University

More information

Run Time Environment. Procedure Abstraction. The Procedure as a Control Abstraction. The Procedure as a Control Abstraction

Run Time Environment. Procedure Abstraction. The Procedure as a Control Abstraction. The Procedure as a Control Abstraction Procedure Abstraction Run Time Environment Records Procedure Linkage Name Translation and Variable Access Copyright 2010, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at

More information

Procedure and Function Calls, Part II. Comp 412 COMP 412 FALL Chapter 6 in EaC2e. target code. source code Front End Optimizer Back End

Procedure and Function Calls, Part II. Comp 412 COMP 412 FALL Chapter 6 in EaC2e. target code. source code Front End Optimizer Back End COMP 412 FALL 2017 Procedure and Function Calls, Part II Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon, all rights reserved. Students

More information

Data Structures in Java

Data Structures in Java Data Strutures in Java Leture 8: Trees and Tree Traversals. 10/5/2015 Daniel Bauer 1 Trees in Computer Siene A lot of data omes in a hierarhial/nested struture. Mathematial expressions. Program struture.

More information

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System Algorithms, Mehanisms and Proedures for the Computer-aided Projet Generation System Anton O. Butko 1*, Aleksandr P. Briukhovetskii 2, Dmitry E. Grigoriev 2# and Konstantin S. Kalashnikov 3 1 Department

More information

Announcements. Lecture Caching Issues for Multi-core Processors. Shared Vs. Private Caches for Small-scale Multi-core

Announcements. Lecture Caching Issues for Multi-core Processors. Shared Vs. Private Caches for Small-scale Multi-core Announements Your fous should be on the lass projet now Leture 17: Cahing Issues for Multi-ore Proessors This week: status update and meeting A short presentation on: projet desription (problem, importane,

More information

Register Allocation 3/16/11. What a Smart Allocator Needs to Do. Global Register Allocation. Global Register Allocation. Outline.

Register Allocation 3/16/11. What a Smart Allocator Needs to Do. Global Register Allocation. Global Register Allocation. Outline. What a Smart Allocator Needs to Do Register Allocation Global Register Allocation Webs and Graph Coloring Node Splitting and Other Transformations Determine ranges for each variable can benefit from using

More information

COMP 181. Prelude. Intermediate representations. Today. Types of IRs. High-level IR. Intermediate representations and code generation

COMP 181. Prelude. Intermediate representations. Today. Types of IRs. High-level IR. Intermediate representations and code generation Prelude COMP 181 Intermediate representations and ode generation November, 009 What is this devie? Large Hadron Collider What is a hadron? Subatomi partile made up of quarks bound by the strong fore What

More information

Red-Black Trees 10/19/2009. Red-Black Trees. Example. Red-Black Properties. Black Height. Example

Red-Black Trees 10/19/2009. Red-Black Trees. Example. Red-Black Properties. Black Height. Example lgorithms Red-lak Trees 13-2 Red-lak Trees Red-lak Trees ll binar searh tree operations take O(h) time, here h is the height of the tree Therefore, it is important to `balane the tree so that its height

More information

Runtime Support for Algol-Like Languages Comp 412

Runtime Support for Algol-Like Languages Comp 412 COMP 412 FALL 2018 Runtime Support for Algol-Like Languages Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students

More information

PBFT: A Byzantine Renaissance. The Setup. What could possibly go wrong? The General Idea. Practical Byzantine Fault-Tolerance (CL99, CL00)

PBFT: A Byzantine Renaissance. The Setup. What could possibly go wrong? The General Idea. Practical Byzantine Fault-Tolerance (CL99, CL00) PBFT: A Byzantine Renaissane Pratial Byzantine Fault-Tolerane (CL99, CL00) first to be safe in asynhronous systems live under weak synhrony assumptions -Byzantine Paos! The Setup Crypto System Model Asynhronous

More information

Semantics (cont.) Symbol Table. Static Scope. Static Scope. Static Scope. CSE 3302 Programming Languages. Static vs. Dynamic Scope

Semantics (cont.) Symbol Table. Static Scope. Static Scope. Static Scope. CSE 3302 Programming Languages. Static vs. Dynamic Scope -2-1 CSE 3302 Programming Languages Semantics (cont.) Smbol Table Smbol Table: maintain bindings. Can be viewed as functions that map names to their attributes. Names SmbolTable Attributes Chengkai Li,

More information

Parametric Abstract Domains for Shape Analysis

Parametric Abstract Domains for Shape Analysis Parametri Abstrat Domains for Shape Analysis Xavier RIVAL (INRIA & Éole Normale Supérieure) Joint work with Bor-Yuh Evan CHANG (University of Maryland U University of Colorado) and George NECULA (University

More information

Implementing Object-Oriented Languages - 2

Implementing Object-Oriented Languages - 2 Implementing Object-Oriented Languages - 2 Y.N. Srikant Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of the Lecture

More information

WORKSHOP 20 CREATING PCL FUNCTIONS

WORKSHOP 20 CREATING PCL FUNCTIONS WORKSHOP 20 CREATING PCL FUNCTIONS WS20-1 WS20-2 Problem Desription This exerise involves reating two PCL funtions that an be used to easily hange the view of a model. The PCL funtions are reated by reording

More information

Back To LinkedLists 1. 3 public Node left; 4 public Node right; 6 public Node(int data, Node left, Node right) {

Back To LinkedLists 1. 3 public Node left; 4 public Node right; 6 public Node(int data, Node left, Node right) { Adam Blank Leture Autumn 0 CSE 3X Aelerated Computer Programming I/II CSE 3X: Aelerated Computer Programming I/II Binary Trees 0 00 00 00 00 0 000 00 00 0 00 0 000 000 000 0 0 00 0000 00 000 00 00 0 000

More information

Naming in OOLs and Storage Layout Comp 412

Naming in OOLs and Storage Layout Comp 412 COMP 412 FALL 2018 Naming in OOLs and Storage Layout Comp 412 source IR IR target Front End Optimizer Back End Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled in

More information

Typical Compiler. Ahead- of- time compiler. Compilers... that target interpreters. Interpreter 12/9/15. compile time. run time

Typical Compiler. Ahead- of- time compiler. Compilers... that target interpreters. Interpreter 12/9/15. compile time. run time Ahead- of- time Tpical Compiler compile time C source C 86 assembl 86 assembler 86 machine Source Leical Analzer Snta Analzer Semantic Analzer Analsis Intermediate Code Generator Snthesis run time 86 machine

More information

-z c = c T - c T B B-1 A 1 - c T B B-1 b. x B B -1 A 0 B -1 b. (a) (b) Figure 1. Simplex Tableau in Matrix Form

-z c = c T - c T B B-1 A 1 - c T B B-1 b. x B B -1 A 0 B -1 b. (a) (b) Figure 1. Simplex Tableau in Matrix Form 3. he Revised Simple Method he LP min, s.t. A = b ( ),, an be represented by Figure (a) below. At any Simple step, with known and -, the Simple tableau an be represented by Figure (b) below. he minimum

More information

Run Time Environment. Activation Records Procedure Linkage Name Translation and Variable Access

Run Time Environment. Activation Records Procedure Linkage Name Translation and Variable Access Run Time Environment Activation Records Procedure Linkage Name Translation and Variable Access Copyright 2015, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University

More information

Why then another BFT protocol? Zyzzyva. Simplify, simplify. Simplify, simplify. Complex decision tree hampers BFT adoption. H.D. Thoreau. H.D.

Why then another BFT protocol? Zyzzyva. Simplify, simplify. Simplify, simplify. Complex decision tree hampers BFT adoption. H.D. Thoreau. H.D. Why then another BFT protool? Yes No Zyzzyva Yes No Yes No Comple deision tree hampers BFT adoption Simplify, simplify H.D. Thoreau Simplify, simplify H.D. Thoreau Yes No Yes No Yes Yes No One protool

More information

Effecting Parallel Graph Eigensolvers Through Library Composition

Effecting Parallel Graph Eigensolvers Through Library Composition Effeting Parallel Graph Eigensolvers Through Library Composition Alex Breuer, Peter Gottshling, Douglas Gregor, Andrew Lumsdaine Open Systems Laboratory Indiana University Bloomington, IN 47405 {abreuer,pgottsh,dgregor,lums@osl.iu.edu

More information

Gray Codes for Reflectable Languages

Gray Codes for Reflectable Languages Gray Codes for Refletable Languages Yue Li Joe Sawada Marh 8, 2008 Abstrat We lassify a type of language alled a refletable language. We then develop a generi algorithm that an be used to list all strings

More information

The recursive decoupling method for solving tridiagonal linear systems

The recursive decoupling method for solving tridiagonal linear systems Loughborough University Institutional Repository The reursive deoupling method for solving tridiagonal linear systems This item was submitted to Loughborough University's Institutional Repository by the/an

More information

Orientation of the coordinate system

Orientation of the coordinate system Orientation of the oordinate system Right-handed oordinate system: -axis by a positive, around the -axis. The -axis is mapped to the i.e., antilokwise, rotation of The -axis is mapped to the -axis by a

More information

Procedure and Object- Oriented Abstraction

Procedure and Object- Oriented Abstraction Procedure and Object- Oriented Abstraction Scope and storage management cs5363 1 Procedure abstractions Procedures are fundamental programming abstractions They are used to support dynamically nested blocks

More information

Module Mechanisms CS412/413. Modules + abstract types. Abstract types. Multiple Implementations. How to type-check?

Module Mechanisms CS412/413. Modules + abstract types. Abstract types. Multiple Implementations. How to type-check? CS412/413 Introduction to Compilers and Translators Andrew Mers Cornell Universit Lecture 19: ADT mechanisms 10 March 00 Module Mechanisms Last time: modules, was to implement ADTs Module collection of

More information

Complex Rational Expressions

Complex Rational Expressions Comple ational Epressions What is a Comple ational Epression? A omple rational epression is similar to a omple fration whih has one or more frations in its numerator, denominator, or both The following

More information

Drawing lines. Naïve line drawing algorithm. drawpixel(x, round(y)); double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx; double y = y0;

Drawing lines. Naïve line drawing algorithm. drawpixel(x, round(y)); double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx; double y = y0; Naïve line drawing algorithm // Connet to grid points(x0,y0) and // (x1,y1) by a line. void drawline(int x0, int y0, int x1, int y1) { int x; double dy = y1 - y0; double dx = x1 - x0; double m = dy / dx;

More information

Writing Libraries in MPI*

Writing Libraries in MPI* Writing Libraries in MPI* Anthony Skjellumt Nathan E. Doss Purushotham V. Bangaloret Computer Siene Departmentt & NSF Engineering Researh Center for Computational Field Simulation Mississippi State University

More information

Winter Compiler Construction T9 IR part 2 + Runtime organization. Announcements. Today. Know thy group s code

Winter Compiler Construction T9 IR part 2 + Runtime organization. Announcements. Today. Know thy group s code Winter 26-27 Compiler Construction T9 IR part 2 + Runtime organization Mool Sagiv and Roman Manevich School of Computer Science Tel-Aviv Universit Announcements What is epected in PA3 documentation (5

More information

p[4] p[3] p[2] p[1] p[0]

p[4] p[3] p[2] p[1] p[0] CMSC 425 : Sring 208 Dave Mount and Roger Eastman Homework Due: Wed, Marh 28, :00m. Submit through ELMS as a df file. It an either be distilled from a tyeset doument or handwritten, sanned, and enhaned

More information

9.4 Exponential Growth and Decay Functions

9.4 Exponential Growth and Decay Functions Setion 9. Eponential Growth and Dea Funtions 56 9. Eponential Growth and Dea Funtions S Model Eponential Growth. Model Eponential Dea. Now that we an graph eponential funtions, let s learn about eponential

More information

Building up a language SICP Variations on a Scheme. Meval. The Core Evaluator. Eval. Apply. 2. syntax procedures. 1.

Building up a language SICP Variations on a Scheme. Meval. The Core Evaluator. Eval. Apply. 2. syntax procedures. 1. 6.001 SICP Variations on a Scheme Scheme Evaluator A Grand Tour Techniques for language design: Interpretation: eval/appl Semantics vs. snta Sntactic transformations Building up a language... 3. 1. eval/appl

More information

A Novel Validity Index for Determination of the Optimal Number of Clusters

A Novel Validity Index for Determination of the Optimal Number of Clusters IEICE TRANS. INF. & SYST., VOL.E84 D, NO.2 FEBRUARY 2001 281 LETTER A Novel Validity Index for Determination of the Optimal Number of Clusters Do-Jong KIM, Yong-Woon PARK, and Dong-Jo PARK, Nonmembers

More information

Subtyping (Dynamic Polymorphism)

Subtyping (Dynamic Polymorphism) Fall 2018 Subtyping (Dynamic Polymorphism) Yu Zhang Course web site: http://staff.ustc.edu.cn/~yuzhang/tpl References PFPL - Chapter 24 Structural Subtyping - Chapter 27 Inheritance TAPL (pdf) - Chapter

More information

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425)

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425) Automati Physial Design Tuning: Workload as a Sequene Sanjay Agrawal Mirosoft Researh One Mirosoft Way Redmond, WA, USA +1-(425) 75-357 sagrawal@mirosoft.om Eri Chu * Computer Sienes Department University

More information

Last Class: Multiple Inheritance. Implementing Polymorphism. Criteria. Problem. Smalltalk Message Passing. Smalltalk

Last Class: Multiple Inheritance. Implementing Polymorphism. Criteria. Problem. Smalltalk Message Passing. Smalltalk Last lass: Multiple Inheritance Multiple Inheritance Renaming Delegation Tricky cases in inheritance (stretchable circles) Implementing Polymorphism Not in the book... Problem How to efficiently find and

More information

We P9 16 Eigenray Tracing in 3D Heterogeneous Media

We P9 16 Eigenray Tracing in 3D Heterogeneous Media We P9 Eigenray Traing in 3D Heterogeneous Media Z. Koren* (Emerson), I. Ravve (Emerson) Summary Conventional two-point ray traing in a general 3D heterogeneous medium is normally performed by a shooting

More information

Syntactic Directed Translation

Syntactic Directed Translation Sntactic Directed Translation What is Sntax-Directed Translation? Translation Process guided b Context-Free Grammars Attach Attributes to Grammar Smbols Attribute Grammars & Sntax-Directed Definitions

More information

Contents Contents...I List of Tables...VIII List of Figures...IX 1. Introduction Information Retrieval... 8

Contents Contents...I List of Tables...VIII List of Figures...IX 1. Introduction Information Retrieval... 8 Contents Contents...I List of Tables...VIII List of Figures...IX 1. Introdution... 1 1.1. Internet Information...2 1.2. Internet Information Retrieval...3 1.2.1. Doument Indexing...4 1.2.2. Doument Retrieval...4

More information

8 Instruction Selection

8 Instruction Selection 8 Instrution Seletion The IR ode instrutions were designed to do exatly one operation: load/store, add, subtrat, jump, et. The mahine instrutions of a real CPU often perform several of these primitive

More information

CA Test Data Manager 4.x Implementation Proven Professional Exam (CAT-681) Study Guide Version 1.0

CA Test Data Manager 4.x Implementation Proven Professional Exam (CAT-681) Study Guide Version 1.0 Implementation Proven Professional Study Guide Version 1.0 PROPRIETARY AND CONFIDENTIAL INFORMATION 2017 CA. All rights reserved. CA onfidential & proprietary information. For CA, CA Partner and CA Customer

More information

Learning Convention Propagation in BeerAdvocate Reviews from a etwork Perspective. Abstract

Learning Convention Propagation in BeerAdvocate Reviews from a etwork Perspective. Abstract CS 9 Projet Final Report: Learning Convention Propagation in BeerAdvoate Reviews from a etwork Perspetive Abstrat We look at the way onventions propagate between reviews on the BeerAdvoate dataset, and

More information

Simple example. Analysis of programs with pointers. Program model. Points-to relation

Simple example. Analysis of programs with pointers. Program model. Points-to relation Simple eample Analsis of programs with pointers := 5 ptr := & *ptr := 9 := program S1 S2 S3 S4 What are the defs and uses of in this program? Problem: just looking at variable names will not give ou the

More information

Efficient Implementation of Beam-Search Incremental Parsers

Efficient Implementation of Beam-Search Incremental Parsers Effiient Implementation of Beam-Searh Inremental Parsers Yoav Goldberg Dept. of Computer Siene Bar-Ilan University Ramat Gan, Tel Aviv, 5290002 Israel yoav.goldberg@gmail.om Kai Zhao Liang Huang Graduate

More information

Static Interprocedural Optimizations in Java

Static Interprocedural Optimizations in Java ! "! " " # $ % & $ ' ( % ) * +, -. / 0 / 1 2 3 ) ) * 4 5 6 7 5 8 9 : 8 ; 5 < 5 = 8 >? : 6 @ = 8 = A A 5 A 4 : B C D 7 = 7 E : 6 ; E > 5 F 6 E G 5 8 < E 7 H I J K K L : D 7? M = E 6 L 7 8 5 5 7 4 ; @ 4

More information

Object-oriented Programming. Object-oriented Programming

Object-oriented Programming. Object-oriented Programming 2014-06-13 Object-oriented Programming Object-oriented Programming 2014-06-13 Object-oriented Programming 1 Object-oriented Languages object-based: language that supports objects class-based: language

More information

Doubly LinkedList is Symmetrical! LinkedList Efficiency. Monday, April 8, 13. insert insert remove remove remove walk

Doubly LinkedList is Symmetrical! LinkedList Efficiency. Monday, April 8, 13. insert insert remove remove remove walk How Can We Improve the State of Experimental Evaluation in Computer Siene Peter Sweeney IBM Researh, TJ Watson Friday, April 12, 12:00 Kendade 307 1 Doubly LinkedList is Symmetrial! insert insert remove

More information

Multicore Software and Applications

Multicore Software and Applications Multiore Software and Appliations Nir Shavit MIT CSAIL Where do we ome from? What are we? Where are we going? Paul Gauguin [Image Credit: Museum of Fine Arts Boston] 64 Cores Today, 1000 in Near Future

More information

Tackling IPv6 Address Scalability from the Root

Tackling IPv6 Address Scalability from the Root Takling IPv6 Address Salability from the Root Mei Wang Ashish Goel Balaji Prabhakar Stanford University {wmei, ashishg, balaji}@stanford.edu ABSTRACT Internet address alloation shemes have a huge impat

More information

Re-programming a many-to-many merge with Hash Objects

Re-programming a many-to-many merge with Hash Objects Re-programming a many-to-many merge with Hash Objets CS05 PhUSE 2012 Budapest D. J. Garbutt 17 Otober 2012 Why? 1 In this talk I will demonstrate how you an re-program a many-to-many merge using hash objets

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Object typing and subtypes

Object typing and subtypes CS 242 2012 Object typing and subtypes Reading Chapter 10, section 10.2.3 Chapter 11, sections 11.3.2 and 11.7 Chapter 12, section 12.4 Chapter 13, section 13.3 Subtyping and Inheritance Interface The

More information

Compiler construction

Compiler construction This lecture Compiler construction Lecture 5: Project etensions Magnus Mreen Spring 2018 Chalmers Universit o Technolog Gothenburg Universit Some project etensions: Arras Pointers and structures Object-oriented

More information

Self-Adaptive Parent to Mean-Centric Recombination for Real-Parameter Optimization

Self-Adaptive Parent to Mean-Centric Recombination for Real-Parameter Optimization Self-Adaptive Parent to Mean-Centri Reombination for Real-Parameter Optimization Kalyanmoy Deb and Himanshu Jain Department of Mehanial Engineering Indian Institute of Tehnology Kanpur Kanpur, PIN 86 {deb,hjain}@iitk.a.in

More information

CSCI-4972/6963 Advanced Computer Graphics

CSCI-4972/6963 Advanced Computer Graphics Luo Jr. CSCI-497/696 Advaned Computer Graphis http://www.s.rpi.edu/~utler/lasses/advanedgraphis/s8/ Professor Barb Cutler utler@s.rpi.edu MRC 9A Piar Animation Studios, 986 Topis for the Semester Mesh

More information

Data we are discussing in the class. Scalar/vector/tensor. Heterogeneous. Scientific data. 3D+time (n<4) Information data

Data we are discussing in the class. Scalar/vector/tensor. Heterogeneous. Scientific data. 3D+time (n<4) Information data Data we are disussing in the lass Soure: VIS, Universit of Stuttgart Sientifi data 3D+time (n3 Heterogeneous Salar Data Analsis Salar Fields The approimation

More information

- 1 - S 21. Directory-based Administration of Virtual Private Networks: Policy & Configuration. Charles A Kunzinger.

- 1 - S 21. Directory-based Administration of Virtual Private Networks: Policy & Configuration. Charles A Kunzinger. - 1 - S 21 Diretory-based Administration of Virtual Private Networks: Poliy & Configuration Charles A Kunzinger kunzinge@us.ibm.om - 2 - Clik here Agenda to type page title What is a VPN? What is VPN Poliy?

More information

Incremental Mining of Partial Periodic Patterns in Time-series Databases

Incremental Mining of Partial Periodic Patterns in Time-series Databases CERIAS Teh Report 2000-03 Inremental Mining of Partial Periodi Patterns in Time-series Dataases Mohamed G. Elfeky Center for Eduation and Researh in Information Assurane and Seurity Purdue University,

More information

Multi-objective Classification Rule Mining Using Gene Expression Programming

Multi-objective Classification Rule Mining Using Gene Expression Programming Third 2008 International Conferene on Convergene and Hybrid Information Tehnology Multi-objetive Classifiation Rule Mining Using Gene Epression Programming Sathidananda Dehuri, Department of Information

More information

This fact makes it difficult to evaluate the cost function to be minimized

This fact makes it difficult to evaluate the cost function to be minimized RSOURC LLOCTION N SSINMNT In the resoure alloation step the amount of resoures required to exeute the different types of proesses is determined. We will refer to the time interval during whih a proess

More information

KENDRIYA VIDYALAYA SANGATHAN(PATNA REGION) CLASS XII SAMPLE PAPER BOARD EXAMINATION

KENDRIYA VIDYALAYA SANGATHAN(PATNA REGION) CLASS XII SAMPLE PAPER BOARD EXAMINATION KENDRIYA VIDYALAYA SANGATHAN(PATNA REGION) CLASS XII SAMPLE PAPER BOARD EXAMINATION 0-5 Time Allotted: Hrs. Subjet: COMPUTER SCIENCE Max. Marks: 70 a Differentiate between Call by value and Call by referene?

More information

Lazy Updates: An Efficient Technique to Continuously Monitoring Reverse knn

Lazy Updates: An Efficient Technique to Continuously Monitoring Reverse knn Lazy Updates: An Effiient Tehniue to Continuously onitoring Reverse k uhammad Aamir Cheema, Xuemin Lin, Ying Zhang, Wei Wang, Wenjie Zhang The University of ew South Wales, Australia ICTA, Australia {maheema,

More information

Definitions Homework. Quine McCluskey Optimal solutions are possible for some large functions Espresso heuristic. Definitions Homework

Definitions Homework. Quine McCluskey Optimal solutions are possible for some large functions Espresso heuristic. Definitions Homework EECS 33 There be Dragons here http://ziyang.ees.northwestern.edu/ees33/ Teaher: Offie: Email: Phone: L477 Teh dikrp@northwestern.edu 847 467 2298 Today s material might at first appear diffiult Perhaps

More information

A Formal Hybrid Analysis Technique for Composite Web Services Verification

A Formal Hybrid Analysis Technique for Composite Web Services Verification A Formal Hybrid Analysis Tehnique for Composite Web Servies Verifiation MAY HAIDAR 1,2, HICHAM H. HALLAL 1 1 Computer Siene Department / Department of Eletrial Engineering Fahad Bin Sultan University P.O

More information

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Malaysian Journal of Computer Siene, Vol 10 No 1, June 1997, pp 36-41 A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Md Rafiqul Islam, Harihodin Selamat and Mohd Noor Md Sap Faulty of Computer Siene and

More information

A service-oriented UML profile with formal support

A service-oriented UML profile with formal support A servie-oriented UML profile with formal support Roberto Bruni 1, Matthias Hölzl 3, Nora Koh 2,3, Alberto Lluh Lafuente 1, Philip Mayer 3, Ugo Montanari 1, and Andreas Shroeder 3 1 University of Pisa,

More information

VIRTUAL FUNCTIONS Chapter 10

VIRTUAL FUNCTIONS Chapter 10 1 VIRTUAL FUNCTIONS Chapter 10 OBJECTIVES Polymorphism in C++ Pointers to derived classes Important point on inheritance Introduction to virtual functions Virtual destructors More about virtual functions

More information

Recall: Function Calls to Create Transform Matrices

Recall: Function Calls to Create Transform Matrices Reall: Fntion Calls to Create Transform Matries Previosl made fntion alls to generate 44 matries for identit, translate, sale, rotate transforms Pt transform matri into CTM Eample mat4 m = Identit(; CTM

More information

C++ Part 2 <: <: C++ Run-Time Representation. Smalltalk vs. C++ Dynamic Dispatch. Smalltalk vs. C++ Dynamic Dispatch

C++ Part 2 <: <: C++ Run-Time Representation. Smalltalk vs. C++ Dynamic Dispatch. Smalltalk vs. C++ Dynamic Dispatch C++ Run-Time Representation Point object Point vtable Code for move C++ Part x y CSCI 4 Stephen Freund ColorPoint object x 4 y 5 c red ColorPoint vtable Code for move Code for darken Data at same offset

More information

Evolutionary Feature Synthesis for Image Databases

Evolutionary Feature Synthesis for Image Databases Evolutionary Feature Synthesis for Image Databases Anlei Dong, Bir Bhanu, Yingqiang Lin Center for Researh in Intelligent Systems University of California, Riverside, California 92521, USA {adong, bhanu,

More information

Adobe Certified Associate

Adobe Certified Associate Adobe Certified Assoiate About the Adobe Certified Assoiate (ACA) Program The Adobe Certified Assoiate (ACA) program is for graphi designers, Web designers, video prodution designers, and digital professionals

More information

Week 7. Statically-typed OO languages: C++ Closer look at subtyping

Week 7. Statically-typed OO languages: C++ Closer look at subtyping C++ & Subtyping Week 7 Statically-typed OO languages: C++ Closer look at subtyping Why talk about C++? C++ is an OO extension of C Efficiency and flexibility from C OO program organization from Simula

More information

Announcements. CSCI 334: Principles of Programming Languages. Lecture 19: C++

Announcements. CSCI 334: Principles of Programming Languages. Lecture 19: C++ Announcements CSCI 4: Principles of Programming Languages Lecture 19: C++ HW8 pro tip: the HW7 solutions have a complete, correct implementation of the CPS version of bubble sort in SML. All ou need to

More information

ZDT -A Debugging Program for the Z80

ZDT -A Debugging Program for the Z80 ZDT -A Debugging Program for the Z80 il I,, 1651 Third Ave.. New York, N.Y. 10028 (212) 860-o300 lnt'l Telex 220501 ZOT - A DEBUGGING PROGRAM FOR THE ZAO Distributed by: Lifeboat Assoiates 1651 Third Avenue

More information

Semantics. Names. Binding Time

Semantics. Names. Binding Time /24/ CSE 3302 Programming Languages Semantics Chengkai Li, Weimin He Spring Names Names: identif language entities variables, procedures, functions, constants, data tpes, Attributes: properties of names

More information

IN structured P2P overlay networks, each node and file key

IN structured P2P overlay networks, each node and file key 242 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 21, NO. 2, FEBRUARY 2010 Elasti Routing Table with Provable Performane for Congestion Control in DHT Networks Haiying Shen, Member, IEEE,

More information

Cross-layer Resource Allocation on Broadband Power Line Based on Novel QoS-priority Scheduling Function in MAC Layer

Cross-layer Resource Allocation on Broadband Power Line Based on Novel QoS-priority Scheduling Function in MAC Layer Communiations and Networ, 2013, 5, 69-73 http://dx.doi.org/10.4236/n.2013.53b2014 Published Online September 2013 (http://www.sirp.org/journal/n) Cross-layer Resoure Alloation on Broadband Power Line Based

More information

What about asynchronous systems? The Game of Paxos. Quorum Systems. The Game of Paxos

What about asynchronous systems? The Game of Paxos. Quorum Systems. The Game of Paxos What about asynhronous systems? FLP says onsensus annot be solved... For benign failures, Paos provides net best thing always safe And for Byzantine failures? The Game of Paos Proesses are ompeting to

More information

CS250 Intro to CS II. Spring CS250 - Intro to CS II 1

CS250 Intro to CS II. Spring CS250 - Intro to CS II 1 CS250 Intro to CS II Spring 2017 CS250 - Intro to CS II 1 Topics Virtual Functions Pure Virtual Functions Abstract Classes Concrete Classes Binding Time, Static Binding, Dynamic Binding Overriding vs Redefining

More information