520 Principles of Programming Languages. Memory Management. Memory Management... 35: Garbage Collection

Size: px
Start display at page:

Download "520 Principles of Programming Languages. Memory Management. Memory Management... 35: Garbage Collection"

Transcription

1 Dynmic Memory Mngement 50 Principles of Progrmming Lnguges 35: Grbge Collection Christin Collberg Deprtment of Computer Science University of Arizon The run-time system linked in with the generted code should contin routines for lloction/delloction of dynmic memory. Pscl, C, C++, Modul- Explicit delloction of dynmic memory only. I.e. the progrmmer is required to keep trck of ll llocted memory nd when it s sfe to free it. Eiffel Implicit delloction only. Dynmic memory which is no longer used is recycled by the grbge collector. Ad Implicit or explicit delloction (implementtion defined). Modul-3 Implicit nd explicit delloction (progrmmer s choice). [1] 50 [] Memory Mngement Memory Mngement... In lnguge such s C or Pscl, there re three wys to llocte memory: 1. Sttic lloction. Globl vribles re llocted t compile time, by reserving. Stck lloction. The stck is used to store ctivtion records, which holds procedure cll chins nd locl vribles. 3. Dynmic lloction. The user cn crete new memory t will, by clling new or (in unix) mlloc procedure. The compiler nd run-time system divide the vilble ddress spce (memory) into three sections, one for ech type of lloction: 1. The sttic section is generted by the compiler nd cnnot be extended t run-time. Clled the uninitilized dt section in unix s.out.. The stck. The stck grows nd shrinks during execution, ccording to the depth of the cll chin. Infinite recursion often leds to stck overflow. Lrge prmeters cn lso result in the progrm running out of stck spce. 3. The hep. When the progrm mkes request for more dynmic memory (by clling mlloc, for exmple), suitble chunk of memory is llocted on the hep.

2 Memory Mngement... Interfce to Dynmic lloction Sttic lloction Globl vribles Stck lloction Procedure cll chins, Locl vribles. Dynmic lloction NEW, mlloc, On the hep. Progrm Code Initilized Dt (strings,rels...) Uninitilized Dt (Globl Vribles) Stck ep C, C++: chr* mlloc(size) nd free(chr*) re stndrd librry routines. Pscl: new(pointer vr) nd dispose(pointer vr) re builtin stndrd procedures. Jv: new(clss nme) is stndrd function. LISP: cons cretes new cells: ed Til (cons (b c)) b b c null (b c) ( b c) c null [5] 50 [6] Explicit Delloction Implicit Delloction Pscl s new/dispose, Modul- s ALLOCATE/DEALLOCATE, C s mlloc/free, C++ s new/delete, Ad s new/unchecked delloction (some implementtions). Problem 1: Dngling references: p=mlloc(); q=p; free(p);. Problem : Memory leks, ep frgmenttion. Smll cell free list: ep: LISP, Prolog Equl-sized cells; No chnges to old cells. Eiffel, Modul-3 Different-sized cells; Frequent chnges to old cells. When do we GC? Stop-nd-copy Perform GC whenever we run out of hepspce (Modul-3). Rel-time/Incrementl Perform prtil GC for ech pointer ssignment or new (Eiffel, Modul-3). Concurrent Run the GC in seprte process. Lrge cell free list: 18 51

3 Implicit Delloction... Finding the Object Grph Frgmenttion Compct the hep s prt of the GC, or only when the GC fils to return lrge enough block. Algorithms: Reference counts, Mrk/ssweep, Copying, Genertionl. Finding the roots: The dynmic objects in progrm form grph. Most GC lgorithms need to trverse this grph. The roots of the grph cn be in 1. globl vribles. registers 3. locl vribles/forml prmeters on the stck. ence, the compiler must communicte to the GC which registers/vribles contin roots. [9] 50 [10] Finding the Object Grph... Finding the Object Grph... Finding internl pointers: Structured vribles (rrys, records, objects) my contin internl pointers. These must be known to the GC so tht it cn trverse the grph. ence, the compiler must communicte to the GC the type of ech dynmic object nd the internl structure of ech type. Finding the beginning of objects: Wht hppens if the only pointer to n object points somewhere in the middle of the object? We must either be ble to find the beginning of the object, or mke sure the compiler does not generte such code. AR for P AR for Q AR for R Execution Stck templte A %r8 C Globls G ep O: templte 8: O: templte 8: 1: O: templte 8: Ptrs: [1] Size:96 Templte for P Ptrs: [0] Size:4 Templte for MAIN Ptrs: [4,1] Size:3 Templte for T1 Ptrs: [8] Size: 4 Templte for T

4 Pointer Mps Pointer Mps... The internl structure of ctivtion records & structured vribles is described by run-time templtes. Every run-time object hs n extr word tht points to type descriptor (or Templte), structure describing which words in the object re pointers. This mp is constructed t compile-time nd stored stticlly in the dt segment of the executble. When the GC is invoked, registers my lso contin vlid pointers. The compiler must therefore lso generte (for every point where the GC my be clled) pointer mp tht describes which registers hold live pointers t this point. For this reson, we usully only llow the GC to run t certin points, often the points where new is clled. We must lso provide pointer mps for every function cll point. A function P my cll Q which clls new which invokes the GC. We need to know which words in P s ctivtion record tht t this point contin live pointers. [13] 50 [14] Pointer Mps... Algorithm: Reference Counts ow does the GC look up which pointer mp belongs to prticulr cll to procedure P t prticulr ddress? The pointer mps re indexed by the return ddress of P! So, to trverse the stck of ctivtion records, the GC looks t ech frme, extrcts the return ddress, finds the pointer mp for tht ddress, nd extrcts ech pointer ccording to the mp. An extr field is kept in ech object contining count of the number of pointers which point to the object. Ech time pointer is mde to point to n object, tht object s count hs to be incremented. Similrly, every time pointer no longer points to n object, tht object s count hs to be decremented. When we run out of dynmic memory we scn through the hep nd put objects with zero reference count bck on the free-list. Mintining the reference count is costly. Also, circulr structures (circulr linked lists, for exmple) will not be collected.

5 Algorithm: Reference Counts... Algorithm: Reference Counts... Every object records the number of pointers pointing to it. When pointer chnges, the corresponding object s reference count hs to be updted. GC: reclim objects with zero count. Circulr structures will not be reclimed. Live cells Globl Vribles b Grbge (will be reclimed) 1 Grbge (won t be reclimed) e p NEW(p) is implemented s: mlloc(p); p.rc := 0; p.next:=q is implemented s: z := p.next; if z nil then z.rc--; if z.rc = 0 then reclim z endif endif; p.next := q; q.rc++; This code sequence hs to be inserted by the compiler for every pointer ssignment in the progrm. This is very expensive. [17] 50 [18] Algorithm: Mrk nd Sweep Algorithm: Mrk nd Sweep... The bsic ide behind Mrk-nd-Sweep is to trverse nd mrk ll the cells tht cn be reched from the root cells. A root cell is ny pointer on the stck or in globl memory which points to objects on the hep. Once ll the live cells (those which re pointed to by globl vrible or some other live cells) hve been mrked, we scn through the hep nd seprte the live dt from the grbge. If we re deling with equl size objects only (this is the cse in LISP, for exmple) the we scn the hep nd link ll the unmrked objects onto the free list. At the sme time we cn unmrk the live cells. If we hve cells of different sizes, just linking the freed objects together my result in hep frgmenttion. Insted we need to compct the hep, by collecting live cells together in contiguous memory re on the hep nd doing the sme with the grbge cells in nother re.

6 Algorithm: Mrk nd Sweep... Mrking Phse Mrking Phse: 1. Mrk ll objects unmrked.. Find ll roots, i.e. hep pointers in stck, regs & globls. 3. Mrk rechble blocks using depth first serch strting t the roots. () DFS my run out of stck spce! (b) Use non-recursive (Deutsch-Schorr-Wite) DFS. Scnning Phse: sme-size-cells Scn hep nd put un-mrked (non-rechble) cells bck on free-list. different-size-cells Compct the hep to prevent frgmenttion. [1] 50 A stright-forwrd implementtion of mrk nd sweep my run into memory problems itself! A depth-first-serch mkes use of stck, nd the size of the stck will be the sme s the depth of the object grph. Remember tht the stck nd the hep shre the sme memory spce, nd my even grow towrds echother. So, if we re out of luck we might run into this sitution: the hep is full (otherwise we wouldn t be gc:ing!), the object grph is deep, we run out of stck spce during the mrking phse. We re now out of memory lltogether. Difficult to recover from! [] Mrking Phse... Fortuntely, there is smrt lgorithm for mrking in constnt spce, clled the Deutsch-Schorr-Wite lgorithm. Actully, it ws developed simultneously by Peter Deutsch nd by erbert Schorr nd W. M. Wite. The bsic ide is to store the DFS stck in the object grph itself. When new node (object) is encountered 1. we set the mrked -bit to 1,. the node (object) is mde to point to the previous node, 3. two globl vribles current nd previous re updted. current points to the current cell, previous to the previously visited cell. Mrking: Look M, No Stck! Use pointer reversl to encode the DFS stck in the object grph itself. When the DFS reches new cell, chnge pointer in the cell to point bck to the DFS prent cell. When we cn go no deeper, return, following the bck links, restoring the links. (1) (1) M current () (4) / (3) () (3) / B B (4) M M (5) / / (5) / / M / / B = Bck Pointer M = Mrked previous

7 Sweeping: Compction Copying Collection dt1 dt dt3 A B C D E dt1 dt dt3 Compction A B C D E 1. Clculte the forwrding ddress of ech cell.. Store the forwrding ddress of cell B in B.forw ddr. 3. If p points to cell B, replce p with B.forw ddr. 4. Move ll cells to their forwrding ddresses. F F Even if most of the hepspce is grbge, mrk nd sweep lgorithm will touch the entire hep. In such cses it would be better if the lgorithm only touched the live objects. Copying collection is such n lgorithm. The bsic ide is: 1. The hep is divided into two spces, the from-spce nd the to-spce.. We strt out by llocting objects in the from-spce. 3. When from-spce is full, ll live objects re copied from from-spce to to-spce. 4. We then continue llocting in to-spce until it fills up, nd new GC strts. [5] 50 [6] Copying Collection... Copying Collection... An importnt side-effect of copying collection is tht we get utomtic compction fter collection to-spce consists of the live objects in contiguous piece of memory, followed by the free spce. This sounds relly esy, but : We hve to trverse the object grph (just like in mrk nd sweep), nd so we need to decide the order in which this should be done, depth-first or bredth-first. DFS requires stck (but we cn, of course, use pointer reversl just s with mrk nd sweep), nd BFS queue. We will see lter tht encoding queue is very simple, nd hence most implementtions of copying collection mke use of BFS. This sounds relly esy, but An object in from-spce will generlly hve severl objects pointing to it. So, when n object is moved from from-spce to to-spce we hve to mke sure tht we chnge the pointers to point to the new copy.

8 Copying Collection... Copying Collection... Mrk-nd-sweep touches the entire hep, even if most of it is grbge. Copying collection only touches live cells. Copying collection divides the hep in two prts: from-spce nd to-spce. to-spce is utomticlly compcted. ow to trverse object grph: BFS or DFS? ow to updte pointers to moved objects? 1. Strt llocting in from-spce. Algorithm:. When from-spce is full, copy live objects to to-spce. Trversing the Object Grph: Most implementtions use BFS. Use the to-spce s the queue. Updting (Forwrding) Pointers: When n object is moved its new ddress is stored first in the old copy. from spce to spce Exmple: GC from spce to spce 3. Now llocte in to-spce. [9] 50 roots: [30] roots: Copying Collection Algorithm Copying Collection Exmple... (A) 1. scn := next := ADDR(to-spce) [scn next] hold the BFS queue. from spce A roots from spce A roots to spce D Objects bove scn point into to-spce. Objects between scn nd next point into from-spce.. Copy objects pointed to by the root pointers to to-spce. 3. Updte the root pointers to point to to-spce. B C D B C D B next scn 4. Put ech object s new ddress first in the originl. E E 5. Repet (recursively) with ll the pointers in the new to-spce. F F () Updte scn to point pst the lst processed node. (b) Updte next to pointe pst the lst copied node. Continue while scn < next.

9 Copying Collection Exmple... (B) Genertionl Collection from spce A B C D E roots to spce D B next scn from spce A B C D E roots to spce D B E next scn Works best for functionl nd logic lnguges (LISP, Prolog, ML,... ) becuse 1. they rrely modify llocted cells. newly creted objects only point to older objects ((CONS A B) cretes new two-pointer cell with pointers to old objects), 3. new cells re shorter lived thn older cells, nd old objects re unlikely to die nytime soon. F F [33] 50 [34] Genertionl Collection... Genertionl Collection... Genertionl Collection therefore 1. divides the hep into genertions, G 0 is the youngest, G n the oldest.. lloctes new objects in G GC s only newer genertions. We hve to keep trck of bck pointers (from old genertions to new). Functionl Lnguge: (cons (b c)) t 1 : x new (b c); t : y new ; t 3 : return new cons(x, y) A new object (creted t time t 3 ) points to older objects. Object Oriented Lnguge: t 1 : t : t 3 : T new Tble(0); x new Integer(5); T.insert(x); A new object (creted t time t ) is inserted into n older object, which then points to the news object.

10 Genertionl Collection... Genertionl Collection After GC(G 0 ) Remembered Set: Roots: Remembered Set: Roots: G G 1 G 0 G 1 G G 0 [37] 50 [38] Genertionl Collection... Since old objects (in G n G 1 ) re rrely chnged (to point to new objects) they re unlikely to point into G 0. Apply the GC only to the youngest genertion (G 0 ), since it is most likely to contin lot of grbge. Use the stck nd globls s roots. There might be some bck pointers, pointing from n older genertion into G 0. Mintin specil set of such pointers, nd use them s roots. Occsionlly GC older (G 1 G k ) genertions. Use either mrk-nd-sweep or copying collection to GC G 0. Remembering Bck Pointers Remembered List After ech pointer updte x.f :=, the compiler dds code to insert x in list of updted memory loctions: x.f := x.f := ; insert(updtedlist, x);

11 Remembering Bck Pointers Remembering Bck Pointers... Remembered Set As bove, but set bit in the updted object so tht it is inserted only once in the list: x.f := x.f := ; IF NOT x.inserted TEN insert(updtedlist, x); x. inserted := TRUE; ENDIF Crd mrking Divide the hep into crds of size k. Keep n rry dirty of bits, indexed by crd number. After pointer updte x.f :=, set the dirty bit for crd c tht x is on: x.f := x.f := ; dirty[x div k ] := TRUE; [41] 50 [4] Remembering Bck Pointers... Remembering Bck Pointers... Pge mrking I Similr to Crd mrking, but let the crds be virtul memory pges. When x is updted the VM system utomticlly sets the dirty bit of the pge tht x is on. We don t hve to insert ny extr code! Pge mrking II The OS my not let us red the VM system s dirty bits. Insted, we write-protect the pge x is on. On n updte x.f := protection fult is generted. We ctch this fult nd set dirty bit mnully. We don t hve to insert ny extr code!

12 Uncoopertive Lnguges Uncoopertive Lnguges... There is some informtion which is necessry in order to perform utomtic memory mngement: 1. We need to find the roots of the object grph, i.e. the pointers from the stck, registers, or globl vribles which point to objects on the hep.. We need to know the size, the beginning, nd end of ech object. 3. For ech object we need to find which of its fields re pointers. C nd C++ don t seprte sfe nd unsfe fetures (such s ddress nd bit mnipultion) which re sometimes needed in systems progrmming. Modul-3 hs similr unsfe fetures s C nd C++ but they cn be encpsulted into unsfe modules, which don t mess up the sfety of the min (sfe) prt of the progrm. Unfortuntely, some lnguges hve been designed so tht it is impossible to determine this informtion. C nd C++ re the two most populr such lnguges. [45] 50 [46] Uncoopertive Lnguges... Most GC lgorithms ssume tht there is lwys pointer to the beginning of every object. Depending on the code genertor, tht my or my not be true. f(g,s) chr (*g)(); chr * s; { int i; int l = strlen(s); for (i = 0; i < l; i++) s[i] = (*g)(s[i]); } There my be no pointer to s[0]. Uncoopertive Lnguges... We need to know 1. the roots of the object grph.. the size, the beginning, nd end of ech object. 3. which object fields re pointers. Finding Roots: Foo* f = new foo; // f = 0x53f36 f = NULL; // f* is grbge int i = 0x53f36; // points to f...

13 Uncoopertive Lnguges... Conservtive GC Finding the beginning: chr* str = new chr[6]; strcpy(str, "This is string"); str += 10; // Only ptr to str... Finding pointers: union Unsure {chr* str; int i} x; Works OK for uncoopertive lnguges (C, C++) where we cn t distinguish between pointers nd integers. Sometimes fils to reclim ll grbge. Min Ides: Allocte memory in chunks. Ech chunk holds collection of objects of certin size (i.e. it s esy to find the strt of objects). Chunks re numbered. A pointer consists of 1 bits of chunk number (C) + 0 bits of offset within the chunk (O). [49] 50 [50] Conservtive GC... Conservtive GC... To check whether vlue V = (C, O) is pointer to some object we check tht 1. ep-bottom V ep-top,. FirstChunk# C LstChunk# 3. the offset O is multiple of the object size in chunk C. Chunk List: Chunk 1: 8 bytes ech size = 8 mrk bits..... Objects 4K bytes Chunk 7: size mrk = 3 bits 3 bytes ech Objects V: Chunk number Offset within chunk (1 bits) (0 bits)

14 Unobrusive Grbge Collection Incrementl GC GC Requirements: btch progrms: We wnt short totl GC time. interctive progrms: We wnt unnoticble GCs. Unobtrusive GC: Incrementl Collection Do little GC-work every time n object is llocted, or pointer is chnged. Concurrent Collection Run the collector nd the progrm in different processes, or on different processors. Use copying collection, but rther thn stop when you run out of memory nd then do ll the GC work in one shot, do little bit whenever pointer vrible is referenced or when new object is llocted. We strt out by forwrding (copying) the objects pointed to by globl vribles. Then, insted of continuing forwrding recursively, we resume the progrm. Every time pointer is referenced we check to see whether it is pointing into from-spce. If it is, we forwrd tht object too. [53] 50 [54] Incrementl GC... Incrementl GC... Even objects which re not explicitly referenced hve to be checked, to see if they hve become grbge. Therefore, every time we llocte new object we forwrd k pointers. A good vlue for k hs to be determined by experimenttion. Eventully scn will ctch up with next nd we switch from-spce nd to-spce nd strt n new cycle. Bker s lgorithm (on the next slide) is vrint of copying collection. 1. Copy nd updte objects pointed to by globl pointers to to-spce.. Resume progrm. 3. When n object in from-spce is referenced, first copy it to to-spce. p := x.next; (implemented s) IF x from spce TEN copy x to to-spce; updte x, scn, nd next; x := x s new ddress in to-spce; END; p := x.next; 4. Every time NEW is clled, k pointers re forwrded.

15 Cost of Grbge Collection Cost of GC Mrk-nd-Sweep The size of the hep is, the mount of rechble memory is R, the mount of memory reclimed is R. Wht is the cost of the different GC lgorithms? e p Rechble=R mortized GC cost = = epsize= Reclimed= R time spent in GC mount of grbge collected time spent in GC R [57] 50 e p Rechble=R epsize= Reclimed= R The mrk phse touches ll live nodes. ence, it tkes time c 1, for some constnt c 1. c 1 10? The sweep phse touches the whole hep. ence, it tkes time c R, for some constnt c. c 3? GC cost = c 1R + c R [58] 10R + 3 R Cost of GC Mrk-nd-Sweep... Cost of GC Copying Collection e p epsize= e p epsize= Rechble=R GC cost = c 1R + c R Reclimed= R 10R + 3 R If R we reclim very litte, nd the cost of GC goes up. In this cse the GC should grow the hep (increse ). Rechble=R Reclimed= R The bredth first serch phse touches ll live nodes. ence, it tkes time c 3 R, for some constnt c 3. c 3 10? The hep is divided into from-spce nd to-spce, so ech collection reclims R words. GC cost = c 3R R 10R R

16 Cost of GC Copying Collection... Cost of GC Genertionl Collection GC cost = c 3R R 10R R If there re few live objects ( R) the GC cost is low. If = 4R, we get GC cost = c 3R 4R R 10. This is expensive: 4 times s much memory s rechble dt, 10 instruction GC cost per object llocted. e p Rechble=R epsize= Reclimed= R Assume the youngest genertion (G 0 ) hs 10% live dt, i.e. = 10R. Assume we re using copying collection for G 0. GC cost G0 = c 3R R = c 3R 10R R 10R 4R =.5 [61] 50 [6] st of GC Genertionl Collection... Exm Problem e p GC cost G0 = Rechble=R epsize= c 3R R = Reclimed= R c 3R 10R R 10R 4R =.5 If R 100 kilobytes in G 0, then 1 megbyte. In other words, we ve wsted bout 900 kilobytes, to get.5 instruction/word GC cost (for G 0 ). 1. Why is genertionl collection more pproprite for functionl nd logic lnguges (such s LISP nd Prolog), thn for object-oriented lnguges (such s Eiffel nd Modul-3)?. The hep in the figure on the next slide holds 7 objects. All objects hve one integer field nd one or two pointer fields (blck dots). The only roots re the three globl vribles X, Y, nd Z. Free spce is shded. Show the stte of To-Spce fter copying grbge collection hs been performed on From-Spce. Note tht severl nswers re possible, depending on the visit strtegy (Depth-First or Bredth-First Serch) you chose.

17 Exm Problem I... Exm Problem... From Spce 5 Roots: 6 X Y Z Nme five grbge collection lgorithms!. Describe the Deutsch-Schorr-Wite lgorithm! When is it used? Why is it used? ow does it work? 3. Wht re the differences between stop-nd-copy, incrementl nd concurrent grbge collection? When would we prefer one over the other? [65] 50 [66] Redings nd References Redings nd References... Red Scott, pp Apple s Tiger book, pp Topics in dvnced lnguge implementtion, Chpter 4, Andrew Appel, Grbge Collection. Chpter 5, Dvid L. Detlefs, Concurrent Grbge Collection for C++. ISBN Aho, opcroft, Ullmn. Dt Structures nd Algorithms, Chpter 1, Memory Mngement. Nndkumr Snkrn, A Bibliogrphy on Grbge Collection nd Relted Topics, ACM SIGPLAN Notices, Volume 9, No. 9, Sep J. Cohen. Grbge Collection of Linked Dt Structures, Computing Surveys, Vol. 13, No. 3, pp

Memory Management. Memory Management... Memory Management... Interface to Dynamic allocation

Memory Management. Memory Management... Memory Management... Interface to Dynamic allocation CSc 453 Compilers and Systems Software 24 : Garbage Collection Introduction Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2009 Christian Collberg Dynamic Memory Management

More information

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation Alloctor Bsics Dynmic Memory Alloction in the Hep (mlloc nd free) Pges too corse-grined for llocting individul objects. Insted: flexible-sized, word-ligned blocks. Allocted block (4 words) Free block (3

More information

Page 1. Memory Allocation and Usage CSE 361S. Different free lists for different size classes

Page 1. Memory Allocation and Usage CSE 361S. Different free lists for different size classes Keeping Trck o Free Blocks Method 1: : Implicit list using lengths -- links ll blocks Memory Alloction nd Usge Method : : Explicit list mong the ree blocks using pointers within the ree blocks CSE 361S

More information

CS201 Discussion 10 DRAWTREE + TRIES

CS201 Discussion 10 DRAWTREE + TRIES CS201 Discussion 10 DRAWTREE + TRIES DrwTree First instinct: recursion As very generic structure, we could tckle this problem s follows: drw(): Find the root drw(root) drw(root): Write the line for the

More information

Outline CS 412/413. Function calls. Stack layout. Tiling a call. Two translations

Outline CS 412/413. Function calls. Stack layout. Tiling a call. Two translations CS 412/413 Introduction to Compilers nd Trnsltors Cornell University Andrew Myers Outline Implementing function clls Implementing functions Optimizing wy the pointer Dynmiclly-llocted structures strings

More information

Mid-term exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Oct 25, Student's name: Student ID:

Mid-term exam. Scores. Fall term 2012 KAIST EE209 Programming Structures for EE. Thursday Oct 25, Student's name: Student ID: Fll term 2012 KAIST EE209 Progrmming Structures for EE Mid-term exm Thursdy Oct 25, 2012 Student's nme: Student ID: The exm is closed book nd notes. Red the questions crefully nd focus your nswers on wht

More information

Outline. Tiling, formally. Expression tile as rule. Statement tiles as rules. Function calls. CS 412 Introduction to Compilers

Outline. Tiling, formally. Expression tile as rule. Statement tiles as rules. Function calls. CS 412 Introduction to Compilers CS 412 Introduction to Compilers Andrew Myers Cornell University Lectur8 Finishing genertion 9 Mr 01 Outline Tiling s syntx-directed trnsltion Implementing function clls Implementing functions Optimizing

More information

MIPS I/O and Interrupt

MIPS I/O and Interrupt MIPS I/O nd Interrupt Review Floting point instructions re crried out on seprte chip clled coprocessor 1 You hve to move dt to/from coprocessor 1 to do most common opertions such s printing, clling functions,

More information

Keeping Track of Free Blocks The course that gives CMU its Zip! Dynamic Memory Allocation II Nov 7, Allocating From Explicit Free Lists

Keeping Track of Free Blocks The course that gives CMU its Zip! Dynamic Memory Allocation II Nov 7, Allocating From Explicit Free Lists Dynmic Memory Alloction II Nov 7, 2002 clss22.ppt 15-213 The course tht gives CMU its Zip! Topics Explicit doubly-linked ree lists Segregted ree lists Grbge collection Memory-relted perils nd pitlls Keeping

More information

Midterm 2 Sample solution

Midterm 2 Sample solution Nme: Instructions Midterm 2 Smple solution CMSC 430 Introduction to Compilers Fll 2012 November 28, 2012 This exm contins 9 pges, including this one. Mke sure you hve ll the pges. Write your nme on the

More information

Fig.25: the Role of LEX

Fig.25: the Role of LEX The Lnguge for Specifying Lexicl Anlyzer We shll now study how to uild lexicl nlyzer from specifiction of tokens in the form of list of regulr expressions The discussion centers round the design of n existing

More information

Section 3.1: Sequences and Series

Section 3.1: Sequences and Series Section.: Sequences d Series Sequences Let s strt out with the definition of sequence: sequence: ordered list of numbers, often with definite pttern Recll tht in set, order doesn t mtter so this is one

More information

Data sharing in OpenMP

Data sharing in OpenMP Dt shring in OpenMP Polo Burgio polo.burgio@unimore.it Outline Expressing prllelism Understnding prllel threds Memory Dt mngement Dt cluses Synchroniztion Brriers, locks, criticl sections Work prtitioning

More information

Today. Search Problems. Uninformed Search Methods. Depth-First Search Breadth-First Search Uniform-Cost Search

Today. Search Problems. Uninformed Search Methods. Depth-First Search Breadth-First Search Uniform-Cost Search Uninformed Serch [These slides were creted by Dn Klein nd Pieter Abbeel for CS188 Intro to AI t UC Berkeley. All CS188 mterils re vilble t http://i.berkeley.edu.] Tody Serch Problems Uninformed Serch Methods

More information

In the last lecture, we discussed how valid tokens may be specified by regular expressions.

In the last lecture, we discussed how valid tokens may be specified by regular expressions. LECTURE 5 Scnning SYNTAX ANALYSIS We know from our previous lectures tht the process of verifying the syntx of the progrm is performed in two stges: Scnning: Identifying nd verifying tokens in progrm.

More information

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012 Dynmic Progrmming Andres Klppenecker [prtilly bsed on slides by Prof. Welch] 1 Dynmic Progrmming Optiml substructure An optiml solution to the problem contins within it optiml solutions to subproblems.

More information

COMP 423 lecture 11 Jan. 28, 2008

COMP 423 lecture 11 Jan. 28, 2008 COMP 423 lecture 11 Jn. 28, 2008 Up to now, we hve looked t how some symols in n lphet occur more frequently thn others nd how we cn sve its y using code such tht the codewords for more frequently occuring

More information

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls Redings for Next Two Lectures Text CPSC 213 Switch Sttements, Understnding Pointers - 2nd ed: 3.6.7, 3.10-1st ed: 3.6.6, 3.11 Introduction to Computer Systems Unit 1f Dynmic Control Flow Polymorphism nd

More information

2 Computing all Intersections of a Set of Segments Line Segment Intersection

2 Computing all Intersections of a Set of Segments Line Segment Intersection 15-451/651: Design & Anlysis of Algorithms Novemer 14, 2016 Lecture #21 Sweep-Line nd Segment Intersection lst chnged: Novemer 8, 2017 1 Preliminries The sweep-line prdigm is very powerful lgorithmic design

More information

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li 2nd Interntionl Conference on Electronic & Mechnicl Engineering nd Informtion Technology (EMEIT-212) Complete Coverge Pth Plnning of Mobile Robot Bsed on Dynmic Progrmming Algorithm Peng Zhou, Zhong-min

More information

Scanner Termination. Multi Character Lookahead. to its physical end. Most parsers require an end of file token. Lex and Jlex automatically create an

Scanner Termination. Multi Character Lookahead. to its physical end. Most parsers require an end of file token. Lex and Jlex automatically create an Scnner Termintion A scnner reds input chrcters nd prtitions them into tokens. Wht hppens when the end of the input file is reched? It my be useful to crete n Eof pseudo-chrcter when this occurs. In Jv,

More information

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment File Mnger Quick Reference Guide June 2018 Prepred for the Myo Clinic Enterprise Khu Deployment NVIGTION IN FILE MNGER To nvigte in File Mnger, users will mke use of the left pne to nvigte nd further pnes

More information

What are suffix trees?

What are suffix trees? Suffix Trees 1 Wht re suffix trees? Allow lgorithm designers to store very lrge mount of informtion out strings while still keeping within liner spce Allow users to serch for new strings in the originl

More information

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved.

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved. Dt Flow on Queue Mchine Bruno R. Preiss 2 Outline Genesis of dt-flow rchitectures Sttic vs. dynmic dt-flow rchitectures Pseudo-sttic dt-flow execution model Some dt-flow mchines Simple queue mchine Prioritized

More information

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus Unit #9 : Definite Integrl Properties, Fundmentl Theorem of Clculus Gols: Identify properties of definite integrls Define odd nd even functions, nd reltionship to integrl vlues Introduce the Fundmentl

More information

ECE 468/573 Midterm 1 September 28, 2012

ECE 468/573 Midterm 1 September 28, 2012 ECE 468/573 Midterm 1 September 28, 2012 Nme:! Purdue emil:! Plese sign the following: I ffirm tht the nswers given on this test re mine nd mine lone. I did not receive help from ny person or mteril (other

More information

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016 Solving Prolems y Serching CS 486/686: Introduction to Artificil Intelligence Winter 2016 1 Introduction Serch ws one of the first topics studied in AI - Newell nd Simon (1961) Generl Prolem Solver Centrl

More information

vcloud Director Service Provider Admin Portal Guide vcloud Director 9.1

vcloud Director Service Provider Admin Portal Guide vcloud Director 9.1 vcloud Director Service Provider Admin Portl Guide vcloud Director 9. vcloud Director Service Provider Admin Portl Guide You cn find the most up-to-dte technicl documenttion on the VMwre website t: https://docs.vmwre.com/

More information

Scope, Functions, and Storage Management

Scope, Functions, and Storage Management Scope, Functions, nd Storge Mngement Block-structured lnguges nd stck storge In-le Blocks (previous set of overheds) ctivtion records storge for locl, glol vriles First-order functions (previous set of

More information

Control-Flow Analysis and Loop Detection

Control-Flow Analysis and Loop Detection ! Control-Flow Anlysis nd Loop Detection!Lst time! PRE!Tody! Control-flow nlysis! Loops! Identifying loops using domintors! Reducibility! Using loop identifiction to identify induction vribles CS553 Lecture

More information

Agenda & Reading. Class Exercise. COMPSCI 105 SS 2012 Principles of Computer Science. Arrays

Agenda & Reading. Class Exercise. COMPSCI 105 SS 2012 Principles of Computer Science. Arrays COMPSCI 5 SS Principles of Computer Science Arrys & Multidimensionl Arrys Agend & Reding Agend Arrys Creting & Using Primitive & Reference Types Assignments & Equlity Pss y Vlue & Pss y Reference Copying

More information

From Dependencies to Evaluation Strategies

From Dependencies to Evaluation Strategies From Dependencies to Evlution Strtegies Possile strtegies: 1 let the user define the evlution order 2 utomtic strtegy sed on the dependencies: use locl dependencies to determine which ttriutes to compute

More information

pdfapilot Server 2 Manual

pdfapilot Server 2 Manual pdfpilot Server 2 Mnul 2011 by clls softwre gmbh Schönhuser Allee 6/7 D 10119 Berlin Germny info@cllssoftwre.com www.cllssoftwre.com Mnul clls pdfpilot Server 2 Pge 2 clls pdfpilot Server 2 Mnul Lst modified:

More information

2014 Haskell January Test Regular Expressions and Finite Automata

2014 Haskell January Test Regular Expressions and Finite Automata 0 Hskell Jnury Test Regulr Expressions nd Finite Automt This test comprises four prts nd the mximum mrk is 5. Prts I, II nd III re worth 3 of the 5 mrks vilble. The 0 Hskell Progrmming Prize will be wrded

More information

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Solving Prolems y Serching CS 486/686: Introduction to Artificil Intelligence 1 Introduction Serch ws one of the first topics studied in AI - Newell nd Simon (1961) Generl Prolem Solver Centrl component

More information

CSCI 446: Artificial Intelligence

CSCI 446: Artificial Intelligence CSCI 446: Artificil Intelligence Serch Instructor: Michele Vn Dyne [These slides were creted by Dn Klein nd Pieter Abbeel for CS188 Intro to AI t UC Berkeley. All CS188 mterils re vilble t http://i.berkeley.edu.]

More information

Improper Integrals. October 4, 2017

Improper Integrals. October 4, 2017 Improper Integrls October 4, 7 Introduction We hve seen how to clculte definite integrl when the it is rel number. However, there re times when we re interested to compute the integrl sy for emple 3. Here

More information

1 Quad-Edge Construction Operators

1 Quad-Edge Construction Operators CS48: Computer Grphics Hndout # Geometric Modeling Originl Hndout #5 Stnford University Tuesdy, 8 December 99 Originl Lecture #5: 9 November 99 Topics: Mnipultions with Qud-Edge Dt Structures Scribe: Mike

More information

Fall 2018 Midterm 1 October 11, ˆ You may not ask questions about the exam except for language clarifications.

Fall 2018 Midterm 1 October 11, ˆ You may not ask questions about the exam except for language clarifications. 15-112 Fll 2018 Midterm 1 October 11, 2018 Nme: Andrew ID: Recittion Section: ˆ You my not use ny books, notes, extr pper, or electronic devices during this exm. There should be nothing on your desk or

More information

CSEP 573 Artificial Intelligence Winter 2016

CSEP 573 Artificial Intelligence Winter 2016 CSEP 573 Artificil Intelligence Winter 2016 Luke Zettlemoyer Problem Spces nd Serch slides from Dn Klein, Sturt Russell, Andrew Moore, Dn Weld, Pieter Abbeel, Ali Frhdi Outline Agents tht Pln Ahed Serch

More information

Lists in Lisp and Scheme

Lists in Lisp and Scheme Lists in Lisp nd Scheme Lists in Lisp nd Scheme Lists re Lisp s fundmentl dt structures, ut there re others Arrys, chrcters, strings, etc. Common Lisp hs moved on from eing merely LISt Processor However,

More information

CS 221: Artificial Intelligence Fall 2011

CS 221: Artificial Intelligence Fall 2011 CS 221: Artificil Intelligence Fll 2011 Lecture 2: Serch (Slides from Dn Klein, with help from Sturt Russell, Andrew Moore, Teg Grenger, Peter Norvig) Problem types! Fully observble, deterministic! single-belief-stte

More information

CS 241. Fall 2017 Midterm Review Solutions. October 24, Bits and Bytes 1. 3 MIPS Assembler 6. 4 Regular Languages 7.

CS 241. Fall 2017 Midterm Review Solutions. October 24, Bits and Bytes 1. 3 MIPS Assembler 6. 4 Regular Languages 7. CS 241 Fll 2017 Midterm Review Solutions Octoer 24, 2017 Contents 1 Bits nd Bytes 1 2 MIPS Assemly Lnguge Progrmming 2 3 MIPS Assemler 6 4 Regulr Lnguges 7 5 Scnning 9 1 Bits nd Bytes 1. Give two s complement

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

CSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011

CSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011 CSCI 3130: Forml Lnguges nd utomt Theory Lecture 12 The Chinese University of Hong Kong, Fll 2011 ndrej Bogdnov In progrmming lnguges, uilding prse trees is significnt tsk ecuse prse trees tell us the

More information

Stack. A list whose end points are pointed by top and bottom

Stack. A list whose end points are pointed by top and bottom 4. Stck Stck A list whose end points re pointed by top nd bottom Insertion nd deletion tke plce t the top (cf: Wht is the difference between Stck nd Arry?) Bottom is constnt, but top grows nd shrinks!

More information

Section 10.4 Hyperbolas

Section 10.4 Hyperbolas 66 Section 10.4 Hyperbols Objective : Definition of hyperbol & hyperbols centered t (0, 0). The third type of conic we will study is the hyperbol. It is defined in the sme mnner tht we defined the prbol

More information

Epson Projector Content Manager Operation Guide

Epson Projector Content Manager Operation Guide Epson Projector Content Mnger Opertion Guide Contents 2 Introduction to the Epson Projector Content Mnger Softwre 3 Epson Projector Content Mnger Fetures... 4 Setting Up the Softwre for the First Time

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

3.5.1 Single slit diffraction

3.5.1 Single slit diffraction 3.5.1 Single slit diffrction Wves pssing through single slit will lso diffrct nd produce n interference pttern. The reson for this is to do with the finite width of the slit. We will consider this lter.

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

Fall 2018 Midterm 2 November 15, 2018

Fall 2018 Midterm 2 November 15, 2018 Nme: 15-112 Fll 2018 Midterm 2 November 15, 2018 Andrew ID: Recittion Section: ˆ You my not use ny books, notes, extr pper, or electronic devices during this exm. There should be nothing on your desk or

More information

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5 CS321 Lnguges nd Compiler Design I Winter 2012 Lecture 5 1 FINITE AUTOMATA A non-deterministic finite utomton (NFA) consists of: An input lphet Σ, e.g. Σ =,. A set of sttes S, e.g. S = {1, 3, 5, 7, 11,

More information

Spring 2018 Midterm Exam 1 March 1, You may not use any books, notes, or electronic devices during this exam.

Spring 2018 Midterm Exam 1 March 1, You may not use any books, notes, or electronic devices during this exam. 15-112 Spring 2018 Midterm Exm 1 Mrch 1, 2018 Nme: Andrew ID: Recittion Section: You my not use ny books, notes, or electronic devices during this exm. You my not sk questions bout the exm except for lnguge

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

3.5.1 Single slit diffraction

3.5.1 Single slit diffraction 3..1 Single slit diffrction ves pssing through single slit will lso diffrct nd produce n interference pttern. The reson for this is to do with the finite width of the slit. e will consider this lter. Tke

More information

Outlines. Dynamic Memory Dynamic Memory Dynamic Memory The malloc Package. malloc Example

Outlines. Dynamic Memory Dynamic Memory Dynamic Memory The malloc Package. malloc Example Outlines Dynmic Memory Alloc@on CSCI 01: Mchine Architecture nd Orgniz@on Bsic concepts Implicit free lists Explicit free lists Pen- Chung Yew Deprtment Computer Science nd Engineering University of Minnesot

More information

Geometric transformations

Geometric transformations Geometric trnsformtions Computer Grphics Some slides re bsed on Shy Shlom slides from TAU mn n n m m T A,,,,,, 2 1 2 22 12 1 21 11 Rows become columns nd columns become rows nm n n m m A,,,,,, 1 1 2 22

More information

CMSC 331 First Midterm Exam

CMSC 331 First Midterm Exam 0 00/ 1 20/ 2 05/ 3 15/ 4 15/ 5 15/ 6 20/ 7 30/ 8 30/ 150/ 331 First Midterm Exm 7 October 2003 CMC 331 First Midterm Exm Nme: mple Answers tudent ID#: You will hve seventy-five (75) minutes to complete

More information

UNIT 11. Query Optimization

UNIT 11. Query Optimization UNIT Query Optimiztion Contents Introduction to Query Optimiztion 2 The Optimiztion Process: An Overview 3 Optimiztion in System R 4 Optimiztion in INGRES 5 Implementing the Join Opertors Wei-Png Yng,

More information

Fall 2017 Midterm Exam 1 October 19, You may not use any books, notes, or electronic devices during this exam.

Fall 2017 Midterm Exam 1 October 19, You may not use any books, notes, or electronic devices during this exam. 15-112 Fll 2017 Midterm Exm 1 October 19, 2017 Nme: Andrew ID: Recittion Section: You my not use ny books, notes, or electronic devices during this exm. You my not sk questions bout the exm except for

More information

Unit 5 Vocabulary. A function is a special relationship where each input has a single output.

Unit 5 Vocabulary. A function is a special relationship where each input has a single output. MODULE 3 Terms Definition Picture/Exmple/Nottion 1 Function Nottion Function nottion is n efficient nd effective wy to write functions of ll types. This nottion llows you to identify the input vlue with

More information

Memory Management Functions

Memory Management Functions Meory Mngeent Functions Chpter 9 Meory Mngeent Process of binding vlues to eory loctions Vlues y be sttic or dynic Vlues re ssigned t different plces Sttic eory Run-tie stck Hep 1 Meory Mngeent Sttic Meory

More information

Alignment of Long Sequences. BMI/CS Spring 2012 Colin Dewey

Alignment of Long Sequences. BMI/CS Spring 2012 Colin Dewey Alignment of Long Sequences BMI/CS 776 www.biostt.wisc.edu/bmi776/ Spring 2012 Colin Dewey cdewey@biostt.wisc.edu Gols for Lecture the key concepts to understnd re the following how lrge-scle lignment

More information

Union-Find Problem. Using Arrays And Chains. A Set As A Tree. Result Of A Find Operation

Union-Find Problem. Using Arrays And Chains. A Set As A Tree. Result Of A Find Operation Union-Find Problem Given set {,,, n} of n elements. Initilly ech element is in different set. ƒ {}, {},, {n} An intermixed sequence of union nd find opertions is performed. A union opertion combines two

More information

Symbol Table management

Symbol Table management TDDD Compilers nd interpreters TDDB44 Compiler Construction Symol Tles Symol Tles in the Compiler Symol Tle mngement source progrm Leicl nlysis Syntctic nlysis Semntic nlysis nd Intermedite code gen Code

More information

Chapter 7. Routing with Frame Relay, X.25, and SNA. 7.1 Routing. This chapter discusses Frame Relay, X.25, and SNA Routing. Also see the following:

Chapter 7. Routing with Frame Relay, X.25, and SNA. 7.1 Routing. This chapter discusses Frame Relay, X.25, and SNA Routing. Also see the following: Chpter 7 Routing with Frme Rely, X.25, nd SNA This chpter discusses Frme Rely, X.25, nd SNA Routing. Also see the following: Section 4.2, Identifying the BANDIT in the Network Section 4.3, Defining Globl

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-188 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Pointwise convergence need not behave well with respect to standard properties such as continuity.

Pointwise convergence need not behave well with respect to standard properties such as continuity. Chpter 3 Uniform Convergence Lecture 9 Sequences of functions re of gret importnce in mny res of pure nd pplied mthemtics, nd their properties cn often be studied in the context of metric spces, s in Exmples

More information

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming Lecture 10 Evolutionry Computtion: Evolution strtegies nd genetic progrmming Evolution strtegies Genetic progrmming Summry Negnevitsky, Person Eduction, 2011 1 Evolution Strtegies Another pproch to simulting

More information

Reducing a DFA to a Minimal DFA

Reducing a DFA to a Minimal DFA Lexicl Anlysis - Prt 4 Reducing DFA to Miniml DFA Input: DFA IN Assume DFA IN never gets stuck (dd ded stte if necessry) Output: DFA MIN An equivlent DFA with the minimum numer of sttes. Hrry H. Porter,

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization An Efficient Divide nd Conquer Algorithm for Exct Hzrd Free Logic Minimiztion J.W.J.M. Rutten, M.R.C.M. Berkelr, C.A.J. vn Eijk, M.A.J. Kolsteren Eindhoven University of Technology Informtion nd Communiction

More information

CSc 453. Compilers and Systems Software. 4 : Lexical Analysis II. Department of Computer Science University of Arizona

CSc 453. Compilers and Systems Software. 4 : Lexical Analysis II. Department of Computer Science University of Arizona CSc 453 Compilers nd Systems Softwre 4 : Lexicl Anlysis II Deprtment of Computer Science University of Arizon collerg@gmil.com Copyright c 2009 Christin Collerg Implementing Automt NFAs nd DFAs cn e hrd-coded

More information

Reducing Costs with Duck Typing. Structural

Reducing Costs with Duck Typing. Structural Reducing Costs with Duck Typing Structurl 1 Duck Typing In computer progrmming with object-oriented progrmming lnguges, duck typing is lyer of progrmming lnguge nd design rules on top of typing. Typing

More information

MA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork

MA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork MA1008 Clculus nd Liner Algebr for Engineers Course Notes for Section B Stephen Wills Deprtment of Mthemtics University College Cork s.wills@ucc.ie http://euclid.ucc.ie/pges/stff/wills/teching/m1008/ma1008.html

More information

Implementing Automata. CSc 453. Compilers and Systems Software. 4 : Lexical Analysis II. Department of Computer Science University of Arizona

Implementing Automata. CSc 453. Compilers and Systems Software. 4 : Lexical Analysis II. Department of Computer Science University of Arizona Implementing utomt Sc 5 ompilers nd Systems Softwre : Lexicl nlysis II Deprtment of omputer Science University of rizon collerg@gmil.com opyright c 009 hristin ollerg NFs nd DFs cn e hrd-coded using this

More information

Functor (1A) Young Won Lim 8/2/17

Functor (1A) Young Won Lim 8/2/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

CSCI 104. Rafael Ferreira da Silva. Slides adapted from: Mark Redekopp and David Kempe

CSCI 104. Rafael Ferreira da Silva. Slides adapted from: Mark Redekopp and David Kempe CSCI 0 fel Ferreir d Silv rfsilv@isi.edu Slides dpted from: Mrk edekopp nd Dvid Kempe LOG STUCTUED MEGE TEES Series Summtion eview Let n = + + + + k $ = #%& #. Wht is n? n = k+ - Wht is log () + log ()

More information

Dr. D.M. Akbar Hussain

Dr. D.M. Akbar Hussain Dr. D.M. Akr Hussin Lexicl Anlysis. Bsic Ide: Red the source code nd generte tokens, it is similr wht humns will do to red in; just tking on the input nd reking it down in pieces. Ech token is sequence

More information

CS 430 Spring Mike Lam, Professor. Parsing

CS 430 Spring Mike Lam, Professor. Parsing CS 430 Spring 2015 Mike Lm, Professor Prsing Syntx Anlysis We cn now formlly descrie lnguge's syntx Using regulr expressions nd BNF grmmrs How does tht help us? Syntx Anlysis We cn now formlly descrie

More information

1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES)

1. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES) Numbers nd Opertions, Algebr, nd Functions 45. SEQUENCES INVOLVING EXPONENTIAL GROWTH (GEOMETRIC SEQUENCES) In sequence of terms involving eponentil growth, which the testing service lso clls geometric

More information

McAfee Network Security Platform

McAfee Network Security Platform Mnger Applince Quick Strt Guide Revision B McAfee Network Security Pltform This guide is high-level description of how to instll nd configure the Mnger Applince. For more detiled instlltion informtion,

More information

4452 Mathematical Modeling Lecture 4: Lagrange Multipliers

4452 Mathematical Modeling Lecture 4: Lagrange Multipliers Mth Modeling Lecture 4: Lgrnge Multipliers Pge 4452 Mthemticl Modeling Lecture 4: Lgrnge Multipliers Lgrnge multipliers re high powered mthemticl technique to find the mximum nd minimum of multidimensionl

More information

Reference types and their characteristics Class Definition Constructors and Object Creation Special objects: Strings and Arrays

Reference types and their characteristics Class Definition Constructors and Object Creation Special objects: Strings and Arrays Objects nd Clsses Reference types nd their chrcteristics Clss Definition Constructors nd Object Cretion Specil objects: Strings nd Arrys OOAD 1999/2000 Cludi Niederée, Jochim W. Schmidt Softwre Systems

More information

Agilent Mass Hunter Software

Agilent Mass Hunter Software Agilent Mss Hunter Softwre Quick Strt Guide Use this guide to get strted with the Mss Hunter softwre. Wht is Mss Hunter Softwre? Mss Hunter is n integrl prt of Agilent TOF softwre (version A.02.00). Mss

More information

Functor (1A) Young Won Lim 10/5/17

Functor (1A) Young Won Lim 10/5/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

c360 Add-On Solutions

c360 Add-On Solutions c360 Add-On Solutions Functionlity Dynmics CRM 2011 c360 Record Editor Reltionship Explorer Multi-Field Serch Alerts Console c360 Core Productivity Pck "Does your tem resist using CRM becuse updting dt

More information

MATH 25 CLASS 5 NOTES, SEP

MATH 25 CLASS 5 NOTES, SEP MATH 25 CLASS 5 NOTES, SEP 30 2011 Contents 1. A brief diversion: reltively prime numbers 1 2. Lest common multiples 3 3. Finding ll solutions to x + by = c 4 Quick links to definitions/theorems Euclid

More information

pdftoolbox Server 4 Manual

pdftoolbox Server 4 Manual pdftoolbox Server 4 Mnul Mnul Pge 2 Mnul Lst modified: 27 Februry 2009 2009 by clls softwre gmbh, Berlin, Germny All rights reserved All trdemrks re the property of their respective owners. Mnul Pge Content

More information

10.5 Graphing Quadratic Functions

10.5 Graphing Quadratic Functions 0.5 Grphing Qudrtic Functions Now tht we cn solve qudrtic equtions, we wnt to lern how to grph the function ssocited with the qudrtic eqution. We cll this the qudrtic function. Grphs of Qudrtic Functions

More information

Eliminating left recursion grammar transformation. The transformed expression grammar

Eliminating left recursion grammar transformation. The transformed expression grammar Eliminting left recursion grmmr trnsformtion Originl! rnsformed! 0 0! 0 α β α α α α α α α α β he two grmmrs generte the sme lnguge, but the one on the right genertes the rst, nd then string of s, using

More information

Preserving Constraints for Aggregation Relationship Type Update in XML Document

Preserving Constraints for Aggregation Relationship Type Update in XML Document Preserving Constrints for Aggregtion Reltionship Type Updte in XML Document Eric Prdede 1, J. Wenny Rhyu 1, nd Dvid Tnir 2 1 Deprtment of Computer Science nd Computer Engineering, L Trobe University, Bundoor

More information

Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples

Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples EURSIP Journl on pplied Signl Processing 2003:6, 54 529 c 2003 Hindwi Publishing orportion Memory-Optimized Softwre Synthesis from tflow Progrm Grphs withlrgesizetsmples Hyunok Oh The School of Electricl

More information

Tries. Yufei Tao KAIST. April 9, Y. Tao, April 9, 2013 Tries

Tries. Yufei Tao KAIST. April 9, Y. Tao, April 9, 2013 Tries Tries Yufei To KAIST April 9, 2013 Y. To, April 9, 2013 Tries In this lecture, we will discuss the following exct mtching prolem on strings. Prolem Let S e set of strings, ech of which hs unique integer

More information

Real-Time Programming in Java

Real-Time Programming in Java ARTIST2 Summer School 2008 in Europe Autrns (ner Grenole), Frnce Septemer 8-12, 8 2008 Rel-Time Progrmming in Jv Rel-Time in the Age of Complex Systems Invited Speker: Dvid F. Bcon IBM Reserch 0 Clssicl

More information

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών ΕΠΛ323 - Θωρία και Πρακτική Μταγλωττιστών Lecture 3 Lexicl Anlysis Elis Athnsopoulos elisthn@cs.ucy.c.cy Recognition of Tokens if expressions nd reltionl opertors if è if then è then else è else relop

More information

Lexical analysis, scanners. Construction of a scanner

Lexical analysis, scanners. Construction of a scanner Lexicl nlysis scnners (NB. Pges 4-5 re for those who need to refresh their knowledge of DFAs nd NFAs. These re not presented during the lectures) Construction of scnner Tools: stte utomt nd trnsition digrms.

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

PYTHON PROGRAMMING. The History of Python. Features of Python. This Course

PYTHON PROGRAMMING. The History of Python. Features of Python. This Course The History of Python PYTHON PROGRAMMING Dr Christin Hill 7 9 November 2016 Invented by Guido vn Rossum* t the Centrum Wiskunde & Informtic in Amsterdm in the erly 1990s Nmed fter Monty Python s Flying

More information