FluXQuery: An Optimizing XQuery Processor

Size: px
Start display at page:

Download "FluXQuery: An Optimizing XQuery Processor"

Transcription

1 FluXQuery: An Optimizing XQuery Processor for Streaming XML Data Report by Cătălin Hriţcu International Max Planck Research School for Computer Science 1 Introduction While for languages like XPath there are many processing techniques that use very little memory, the XQuery processing engines often require huge amounts of memory, which leads to important scalability problems. Processing XQuery on XML Streams is thus a significant research challenge, and the paper addresses it by using order constraints extracted from Document Type Definitions. This report presents FluX, an intermediate query representation language that allows event-based query processing on XML Streams. The main goal of FluX is to minimize the amount of buffering by using order constraints. The authors have developed and implemented an efficient algorithm for rewriting XQueries into equivalent FluX queries that have low memory consumption. Finally, the report contains additional experiments which validate the performance claims made by the authors in the original paper. 2 XQuery XQuery [14] is a flexible standard query language for XML. It is applicable to a broad spectrum of XML data sources like XML documents and relational databases. XQuery is a functional language consisting entirely of expressions. It uses XPath expressions to address specific parts of an XML document, but it extends it with powerful SQL-like expressions that support explicit iteration and binding of variables to intermediate results. These are called FLWOR (pronounced flower ) expressions because of their five clauses: for, let, where, order by and return. FLWOR expressions are often useful for computing joins between two or more documents and for transforming data (similar to XSLT). The for and let clauses in a FLWOR expression generate a sequence of tuples of variable bindings, called a tuple stream. The where clause can be used to filter the tuple stream (similar to the where in SQL). The order by clause can be used to reorder the tuple stream (similar to the order by in SQL). Finally, the return clause is evaluated for each tuple in the filtered and reordered tuple Based on Schema-based Scheduling of Event Processors and Buffer Minimization for Queries on Structured Data Streams, Christoph Koch, Stefanie Scherzinger, Nicole Schweikardt, Bernhard Stegmaier, VLDB 2004 [6]. More information about FluX can be found on the project s web site [7]. 1

2 a u th ors a u th or firs t la s t m id d le com m e n t Don a ld Kn u th Ervin com p u t... m a th e m... Th e Ar... Com p u t... An im a... Con cre... Lite ra... Th e cr... Figure 1: The XML document from Listing 1 represented as a tree stream, using the variable bindings in the respective tuples. The result of each evaluation of the return clause is one element in the sequence constituting the result of the whole FLWOR expression. Suppose we have an XML document containing authors and their publications like the one given by Listing 1 and again as a tree in Figure 1. For example, if we want to list all the books written by an author with the last name Knuth in the alphabetical order of their titles we could use the query given in Listing 2. <authors > <author> <f i r s t >Donald</ f i r s t > <l a s t >Knuth</l a s t > <middle>ervin </middle> <f i e l d >computer s c i e n c e </f i e l d > <f i e l d >mathematics</f i e l d > <book>the Art o f Computer Programming</book> <paper>computer programming as an a r t </paper> <paper>an imaginary number system </paper> <book>concrete Mathematics </book> <book>l i t e r a t e Programming</book> <comment>the c r e a t o r o f the TeX</comment> </author> </authors > <knuth> { f o r $a in / authors / author l e t $n := $a/ l a s t $b := $b/ book where $n = Knuth order by $b return <book>{$b}</book> } </knuth> Listing 1: An example XML document Listing 2: An example XQuery Despite its flexibility, XQuery is however hardly applicable to streams because it was designed with the implicit assumption of efficient random access to the XML documents (e.g. the documents are stored in main memory or in a database). Queries like the one in Listing 2 would require large parts of the XML stream to be buffered. In the case of an infinite (or large enough) XML stream this is impossible, and this is the case even for simple queries without the order by clause. 2

3 a u th ors a u th or n a m e s s s firs t m id d le la s t Dona ld Ervin Kn u th com p u t... m a th e m... Th e Ar... Con cre... Lite ra... Com p u t... An im a... Figure 2: The result of applying the query in Listing 3 a u th ors a u th or firs t la s t m id d le com m e n t Don a ld Kn u th Ervin com p u t... m a th e m... Th e Ar... Com p u t... An im a... Con cre... Lite ra... Th e cr... Figure 3: Processing XQuery (all dark red nodes need to be buffered while the green ones can be processed on-the-fly) <authors > { f o r $a in / authors / author return <author> <name> {$a/ f i r s t } {$a/ middle } {$a/ l a s t } </name> <f i e l d s > {$a/ f i e l d } </ f i e l d s > <books> { $a/ book} </books> <papers> { $a/ paper} </papers> </author> } </authors > Listing 3: A simple XQuery Take for example the simple query in Listing 3, which will be used as an ongoing example. It transforms the XML document in Figure 1 into the one in Figure 2. All children of the author node that are not comments are wrapped in groups of names, fields, books and papers. The order of the elements barely changes (only the middle and last elements are switched) so intuitively most of the processing should occur on the fly. However if the XQuery processor does not have any information on the order in which the elements occur in the stream, it must assume that at any given time any element can still occur in the stream. This means that while processing the stream, the only elements that are not buffered are the first name, because it is the first element to be emitted and the comments, because they are not emitted at all. All other elements need to be buffered until the XQuery processor is sure that no first names can occur in the input stream, and this can be done only when the end tag of the author element is encountered (3). We will see later that this situation can be greatly improved by using order constraints. 3 The FluX Query Language 3.1 XQuery FluX is based on XQuery, a fragment of XQuery that contains: 3

4 Fixed-path XPath expressions, which only use the child axis (i.e. sequences a 1 /a 2 /.../a n, where the a 1 are symbols from the DTD and n 1) Atomic conditions (i.e. exists $x/π, $x/π RelOp s, or $x/π RelOp $y/π, where $xis a variable that ranges over XML trees, s is a string, π and π are fixed paths, and RelOp {=, <,, >, }) Arbitrarily nested conditional expressions (ifs) and expressions containing the for, where and return clauses. XQuery does not contain the let or order by clauses, nor does it allow the use of more complex XPath expressions, that use for example the descendent axis or the wildcard operator (e.g. a//b or a/ /b). 3.2 FluX FluX expressions are either process-stream expressions {ps $y: handlers } or simple XQuery expressions that require no buffering. For example, <a> {$x} </a> is a simple XQuery expression while {$x} {$y} is not, because it would require to buffer the nodes used by $y). Every process-stream expression has a non-empty list of handlers separated by semicolons (;): On handlers: on a as $x return FluX expression, which fire immediately when an instance of an element a is encountered as a child of the currently processed node, so no buffering is required. On-first handlers: on-first past( S ) return XQuery expression, which fire as soon as no elements in the set S can be encountered in the input stream. All the elements on which the given XQuery expression depends on are buffered until the moment the on-first handler fires. Also notice that while on handlers can fire zero, one or more times, the on-first handlers fire exactly one time, in the worst case when the ending tag of the currently processed node is encountered. For example if we want to use FluX to process our example stream and output first the books and then the papers, we can output the books on-the-fly (on handler) and buffer all the papers. We can only output the papers when we are sure that no book can appear in the output stream (on-first handler). This moment can be exactly computed from a schema as we will later see. The complete FluX query is given in Listing 4. Notice that FluX provides a strong intuition on how memory buffers are used. { ps $author : on book as $b return {$b } ; on f i r s t past ( book, paper ) return { f o r $p in $author / paper return {$p }}}; Listing 4: We output first the books, then the papers Returning to our ongoing example, we can use the order constrains extracted from a DTD (Listing 5) to drastically reduce the amount of buffering (Figure 4). What we still need to buffer are the papers, because there is no order relation between books and papers and we want the books to appear before the papers in the output stream, and additionally the last name because in the 4

5 a u th ors a u th or firs t la s t m id d le com m e n t Don a ld Kn u th Ervin com p u t... m a th e m... Th e Ar... Com p u t... An im a... Con cre... Lite ra... Th e cr... Figure 4: FluX reduces the amount of buffering (only the dark red nodes need to be buffered while the green ones can be processed on-the-fly) output stream it has to appear after the middle name while in the input stream it appears before it. Listing 6 shows the FluX query that achieves this low memory consumption. <!ELEMENT authors ( author )> <!ELEMENT author ( comment?, f i r s t, l a s t, middle, f i e l d +, ( book paper ), comment?)> <!ELEMENT comment (#PCDATA)> <!ELEMENT f i r s t (#PCDATA)> <!ELEMENT middle (#PCDATA)> <!ELEMENT l a s t (#PCDATA)> <!ELEMENT f i e l d (#PCDATA)> <!ELEMENT book (#PCDATA)> <!ELEMENT paper (#PCDATA)> Listing 5: A DTD we can use to reduce buffering { ps $ROOT: on f i r s t past ( ) r e t u r n <authors >; on authors as $authors r e t u r n { ps $authors : on author as $a r e t u r n { ps $a : on f i r s t past ( ) r e t u r n <author >; on f i r s t past ( ) r e t u r n <name>; on f i r s t as $ f r e t u r n { $ f } ; on middle as $m r e t u r n {$m} ; on f i r s t past ( l a s t, middle ) r e t u r n { f o r $ l i n $a/ l a s t r e t u r n { $ l } } ; on f i r s t past ( f i r s t, l a s t, middle ) r e t u r n </name>; on f i r s t past ( f i r s t, l a s t, middle ) r e t u r n <f i e l d s >; on f i e l d as $ f r e t u r n { $ f } ; on f i r s t past ( f i r s t, l a s t, middle, f i e l d ) r e t u r n </ f i e l d s >; on f i r s t past ( f i r s t, l a s t, middle, f i e l d ) r e t u r n <books >; on book as $b r e t u r n {$b } ; on f i r s t past ( f i r s t, l a s t, middle, f i e l d, book ) r e t u r n </books >; on f i r s t past ( f i r s t, l a s t, middle, f i e l d, book ) r e t u r n <papers >; on f i r s t past ( book, paper ) r e t u r n { f o r $p i n $a/ paper r e t u r n {$p } } ; on f i r s t past ( f i r s t, l a s t, middle, f i e l d, book, paper ) r e t u r n </papers >; on f i r s t past ( f i r s t, l a s t, middle, f i e l d, book, paper ) r e t u r n </author >; } ; } ; on f i r s t past ( authors ) r e t u r n </authors >;} Listing 6: The FluX query equivalent to the XQuery in Listing 3 5

6 comment 1? first? last 1 middle 1 field 1 + (book 1 paper 1 ) comment 2? Figure 5: The regular expression representing the content model of the author elements for the DTD in Listing 5 Figure 6: The Glushkov automaton equivalent to the expression in Figure 5 4 Order Constraints Given a regular expression ρ over Σ, a, b symb(ρ), S Σ and u symb(ρ), we are interested in the following three order constraints: Ord ρ A binary relation over Σ, so that (a, b) Ord ρ when all occurences of a appear before all occurences of b in a valid XML stream (e.g. for ρ in Figure 5 {(field, book), (field, paper)} Ord ρ, but (book, paper) Ord ρ and (paper, book) Ord ρ ). P ast ρ,s (u) A predicate indicating that none of the symbols in S can be encountered after reading the word u from the input stream. first-past ρ,s (u) An event generator which fires the first possible time when P ast ρ,s (u) holds. These constraints can be efficiently computed from the Glushkov automaton [1], which is a DFA in the case of 1-unambiguous regular expressions (DTDs). The Glushkov automaton itself can be constructed in O( ρ 2 ) time and space (by computing the first, last and follow relations). The P ast predicate is computed in O( Q 2 ) by a simple DFS traversal of the Glushkov automaton for each state q i Q we are interested in computing the set of reachable states. P ast ρ (q i, a) q j : q # j = a q j reachable from q i The Ord relation can be computed from the P ast predicate in time O( Q symb(ρ) ) by a simple iteration over all symbols q (see Figure 8) Ord ρ (a, b) q : q # = b P ast ρ (q, a) For each set of symbols S Σ found in an on-first past handler of the FluX query, the value of the past predicate is precomputed and stored in a table (P astt able). P astt able ρ,s (q) a S : P ast ρ (q, a) first past ρ,s (ɛ) := P astt able ρ,s (q 0 ) 6

7 P ast ρ comment first last middle field book paper comment 1 false false false false false false false first 1 false false false false false false false last 1 false true false false false false false middle 1 false true true false false false false field1 1 false true true true false false false book 1 false true true true true false false paper 1 false true true true true false false comment 2 true true true true true true true Figure 7: The P ast predicate corresponding to the automaton in Figure 6 Figure 8: The Ord relation for the automaton in Figure 6 (nodes that can be obtained by transitivity have been omitted) first past ρ,s (u 1...u n ) := P astt able ρ,s (δ(q, u n )) P astt able ρ,s (q) We can thus compute all the three order constraints at run-time in O(1) time (several table look-ups), by using O( ρ 2 ) time and O( ρ 2 ) space for the precomputations. 5 From XQuery to FluX XQuery queries are transformed into FluX queries in two steps. First the query is normalized by using the rewriting rules in Figure 9, until no rule can be applied. The first rule converts all conditional for-loops, into a for containing an if corresponding to the condition. The second rule turns the iteration that could be implied by an XPath expression into an equivalent for loop. The third rule converts multiple-step paths into simple-step ones. The fourth pushes conditionals inside the innermost for-loops. Finally, the last two rules assure that for each subexpression of the form {ifξthenα}, α is either a fixed string or of the form {$x} for some variable $x. This step takes linear time with respect to the query size (O( Q )). <authors> { f o r $authors in $ROOT/ authors return { f o r $a in $authors / author return <author> <name> { f o r $ f i n $a / f i r s t r e t u r n { $ f }} { f o r $m in $a / middle return {$m}} { f o r $ l i n $a / l a s t r e t u r n { $ l }} </name> <f i e l d s > { f o r $ f i n $a / f i e l d r e t u r n { $ f }} </ f i e l d s > <books> { f o r $b in $a / book return {$b}} </books> <papers> { f o r $p in $a / paper return {$p}} </papers> </author >}} </authors> Listing 7: The normalized equivalent to the XQuery in Listing 3 For example, the query in Listing 3 can be normalized by breaking the multiple-step path /authors/author into to, and converting all other XPath 7

8 Figure 9: The rewriting rules used for normalization. expressions into fors (Listing 7). The normalized XQuery expression can be rewritten into a FluX query in time O( D 3 + Q 2 ), which is mainly given by the need to compute dependencies in order to assure safety. A FluX query is called safe for a given DTD if its subexpressions don t refer to paths that might still be encountered in an input stream that is valid with respect to the given DTD. The query rewriting algorithm converts a normalized XQuery into an equivalent FluX query that is safe for the given DTD and has low memory consumption [7]. However, no strong guarantees can be provided in the context of FluX. The authors have also developed a system using XML Stream Attribute Grammars (XSAGs) in which this kind of guarantees can be provided [8], with a high cost on query expressivity though. 6 Experiments We performed new experiments in conditions similar to the one presented in the original paper 1. The two XQuery processors used for comparisons are Galax 0.5 and SAXON The test system was an Intel Pentium 4 at 3.00GHz with 1024MB of memory, running Debian GNU/Linux with kernel version and Java The XML data was generated by XMark [12], from 11MB to 100MB (212MB for Q13) in increments aproximatively 11MB large. The querries used are Q1, Q8 and Q13 from the XML Query Use Cases [15], slightly modified in order to work with FluX. 1 Note: The results in this report are not supposed to be directly compared with the one presented in the original paper. The tests used a more powerful machine and a more recent version of Galax. We also compare to SAXON, a high performance open source XQuery processor instead of the anonymous commercial XQuery processor used in the paper 8

9 In all three cases the memory consumption of FluX is much better than the memory consumption of both Galax and SAXON. In two of the cases (Q1 and Q13) FluX did not buffer any data, while Galax and SAXON used memory in impresive ammounts and actually did run out of it for Q13 when the stream was larger than 190MB. Also the time needed to process the queries (even including preprocessing of the DTD) is very competitive, even better than SAXON for Q1 and Q13. For Q8 the time performance of FluX is worse than the one of SAXON, however the authors argue that techniques for algebraic based query optimization could be used in the future to further improve the performance of FluX. 7 Acknowledgements Stefanie Scherzinger and Prof. Christoph Koch provided helpful insights on the FluX internals and the working implementation of FluX used in the experiments. Special thanks go to Dan Olteanu for his constructive comments an earlier revision of this report. 8 Related Work There was only little related work at the time the paper was published. The only comparable approach was based on transducer networks and it lacked a working implementation [9]. Other efforts were focussed on applying XQuery algebras [13] in the streaming context [3], optimizing XQueries using a set of constraints [2] or doing stream pre-filtering [10]. Finally, a query language that allows for scalable data transformations rather than just document filtering are XML Stream Attribute Grammars (XSAGs). They run strictly in linear time with bounded memory consumption independent of the size of the stream, but are at the same time less expressive than FluX [8]. References [1] A. Bruggemann-Klein, D. Wood: One-Unambiguous Regular Languages. Information and Computation, Volume 142, Number 2, May 1998, pp (25) [2] A. Deutsch and V. Tannen. Reformulation of XML Queries and Constraints. In Proc. ICDT 03, [3] L. Fegaras, D. Levine, S. Bose, and V. Chaluvadi. Query Processing of Streamed XML Data. In Proc. CIKM 2002, pages , [4] D. Florescu, C. Hillery, D. Kossmann, P. Lucas, F. Riccardi, T.Westmann, M. J. Carey, A. Sundararajan, and G. Agrawal. The BEA/XQRL Streaming XQuery Processor. In Proc. VLDB 2003, pages , [5] Galax: An Implementation of XQuery. Available: 9

10 [6] C. Koch, S. Scherzinger, N. Schweikardt, B. Stegmaier: Schema-based Scheduling of Event Processors and Buffer Minimization for Queries on Structured Data Streams. VLDB [7] C. Koch, S. Scherzinger, N. Schweikardt, B. Stegmaier: The FluXQuery Engine. Last updated October 4, Available: [8] C. Koch, S. Scherzinger: Attribute Grammars for Scalable Query Processing on XML Streams. DBPL 2003: [9] B. Ludäscher, P. Mukhopadhyay, and Y. Papakonstantinou. A Transducer- Based XML Query Processor. In Proc. VLDB 2002, pages , [10] A. Marian and J. Simeon. Projecting XML Documents. In Proc. VLDB 2003, pages , [11] M. Kay. SAXON: The XSLT and XQuery Processor. Available: [12] XMark: An XML Benchmark Project. Available: [13] World Wide Web Consortium. XQuery 1.0 and XPath 2.0 Formal Semantics. W3C Candidate Recommendation (3 November 2005), Available: [14] World Wide Web Consortium. XQuery 1.0: An XML Query Language. W3C Candidate Recommendation (3 November 2005), Available: [15] World Wide Web Consortium. XML Query Use Cases. W3C Working Draft (02 May 2003), Available: 10

11 $ " #$! ' #$%&! " 11

12 "#$!"#$ $#!"# 12

13 $! "#$ '! " #$%& 13

Safety Properties for Querying XML Streams

Safety Properties for Querying XML Streams Safety Properties for Querying XML Streams Olivier Gauwin University of Mons joint work with: J. Niehren, S. Tison, M. Benedikt and G. Puppis Workshop on Timed and Infinite Systems Warwick March 30th,

More information

Type Based XML Projection

Type Based XML Projection Type Based XML Projection VLDB 2006, Seoul, Korea Véronique Benzaken Giuseppe Castagna Dario Colazzo Kim Nguy ên : Équipe Bases de Données, LRI, Université Paris-Sud 11, Orsay, France : Équipe Langage,

More information

Evaluating Complex Queries against XML Streams with Polynomial Combined Complexity

Evaluating Complex Queries against XML Streams with Polynomial Combined Complexity INSTITUT FÜR INFORMATIK Lehr- und Forschungseinheit für Programmier- und Modellierungssprachen Oettingenstraße 67, D 80538 München Evaluating Complex Queries against XML Streams with Polynomial Combined

More information

Projection for Nested Word Automata Speeds up XPath Evaluation on XML Streams

Projection for Nested Word Automata Speeds up XPath Evaluation on XML Streams Projection for Nested Word Automata Speeds up XPath Evaluation on XML Streams Tom Sebastian, Joachim Niehren To cite this version: Tom Sebastian, Joachim Niehren. Projection for Nested Word Automata Speeds

More information

Containment for XPath Fragments under DTD Constraints

Containment for XPath Fragments under DTD Constraints Containment for XPath Fragments under DTD Constraints Peter Wood School of Computer Science and Information Systems Birkbeck College University of London United Kingdom email: ptw@dcs.bbk.ac.uk 1 Outline

More information

A uniform programming language for implementing XML standards

A uniform programming language for implementing XML standards A uniform programming language for implementing XML standards Pavel Labath 1, Joachim Niehren 2 1 Commenius University, Bratislava, Slovakia 2 Inria Lille, France Sofsem 2015 Motivation Different data

More information

A Functional Language for Hyperstreaming XSLT

A Functional Language for Hyperstreaming XSLT A Functional Language for Hyperstreaming XSLT Pavel Labath 1, Joachim Niehren 2 1 Commenius University, Bratislava, Slovakia 2 Inria Lille, France May 2013 Motivation some types of tree transformations

More information

Fig. 2 Tree structure of r the best of our knowledge, there is no study on detecting XSLT rules affected by a schema update. On the other hand, there

Fig. 2 Tree structure of r the best of our knowledge, there is no study on detecting XSLT rules affected by a schema update. On the other hand, there An Algorithm for Detecting XSLT Rules Affected by Schema Updates Yang Wu 1,a) Nobutaka Suzuki 2,b) Abstract: Schemas of XML documents are continuously updated according to changes in the real world. Moreover,

More information

XML Security Views. Queries, Updates, and Schema. Benoît Groz. University of Lille, Mostrare INRIA. PhD defense, October 2012

XML Security Views. Queries, Updates, and Schema. Benoît Groz. University of Lille, Mostrare INRIA. PhD defense, October 2012 XML Security Views Queries, Updates, and Schema Benoît Groz University of Lille, Mostrare INRIA PhD defense, October 2012 Benoît Groz (Mostrare) XML Security Views PhD defense, October 2012 1 / 45 Talk

More information

Compact Representation for Answer Sets of n-ary Regular Queries

Compact Representation for Answer Sets of n-ary Regular Queries Compact Representation for Answer Sets of n-ary Regular Queries Kazuhiro Inaba 1 and Haruo Hosoya 1 The University of Tokyo, {kinaba,hahosoya}@is.s.u-tokyo.ac.jp Abstract. An n-ary query over trees takes

More information

TASM: Top-k Approximate Subtree Matching

TASM: Top-k Approximate Subtree Matching TASM: Top-k Approximate Subtree Matching Nikolaus Augsten 1 Denilson Barbosa 2 Michael Böhlen 3 Themis Palpanas 4 1 Free University of Bozen-Bolzano, Italy augsten@inf.unibz.it 2 University of Alberta,

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 August 28, 2003 These supplementary notes review the notion of an inductive definition and give

More information

Satisfiability of XPath Queries with Sibling Axes

Satisfiability of XPath Queries with Sibling Axes Satisfiability of XPath Queries with Sibling Axes Floris Geerts 1 and Wenfei Fan 2 1 Hasselt University and University of Edinburgh 2 University of Edinburgh and Bell Laboratories Abstract. We study the

More information

Final exam study sheet for CS3719 Turing machines and decidability.

Final exam study sheet for CS3719 Turing machines and decidability. Final exam study sheet for CS3719 Turing machines and decidability. A Turing machine is a finite automaton with an infinite memory (tape). Formally, a Turing machine is a 6-tuple M = (Q, Σ, Γ, δ, q 0,

More information

arxiv: v5 [cs.fl] 21 Feb 2012

arxiv: v5 [cs.fl] 21 Feb 2012 Streaming Tree Transducers Rajeev Alur and Loris D Antoni University of Pennsylvania February 23, 2012 arxiv:1104.2599v5 [cs.fl] 21 Feb 2012 Abstract Theory of tree transducers provides a foundation for

More information

Query Reasoning on Data Trees with Counting

Query Reasoning on Data Trees with Counting Query Reasoning on Data Trees with Counting Everardo Bárcenas 1,2, Edgard Benítez-Guerrero 2, and Jesús Lavalle 3,4 1 CONACYT 2 Universidad Veracruzana 3 Benemérita Universidad Autónoma de Puebla 4 Instituto

More information

Succinctness of the Complement and Intersection of Regular Expressions

Succinctness of the Complement and Intersection of Regular Expressions Succinctness of the Complement and Intersection of Regular Expressions Wouter Gelade and Frank Neven Hasselt University and transnational University of Limburg February 21, 2008 W. Gelade (Hasselt University)

More information

Dependable Cardinality Forecasts for XQuery

Dependable Cardinality Forecasts for XQuery c Systems Group Department of Computer Science ETH Zürich August 26, 2008 Dependable Cardinality Forecasts for XQuery Jens Teubner, ETH (formerly IBM Research) Torsten Grust, U Tübingen (formerly TUM)

More information

P Q1 Q2 Q3 Q4 Q5 Tot (60) (20) (20) (20) (60) (20) (200) You are allotted a maximum of 4 hours to complete this exam.

P Q1 Q2 Q3 Q4 Q5 Tot (60) (20) (20) (20) (60) (20) (200) You are allotted a maximum of 4 hours to complete this exam. Exam INFO-H-417 Database System Architecture 13 January 2014 Name: ULB Student ID: P Q1 Q2 Q3 Q4 Q5 Tot (60 (20 (20 (20 (60 (20 (200 Exam modalities You are allotted a maximum of 4 hours to complete this

More information

Minimization Techniques for Symbolic Automata

Minimization Techniques for Symbolic Automata University of Connecticut OpenCommons@UConn Honors Scholar Theses Honors Scholar Program Spring 5-1-2018 Minimization Techniques for Symbolic Automata Jonathan Homburg jonhom1996@gmail.com Follow this

More information

Lecture Notes on Inductive Definitions

Lecture Notes on Inductive Definitions Lecture Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 September 2, 2004 These supplementary notes review the notion of an inductive definition and

More information

7 RC Simulates RA. Lemma: For every RA expression E(A 1... A k ) there exists a DRC formula F with F V (F ) = {A 1,..., A k } and

7 RC Simulates RA. Lemma: For every RA expression E(A 1... A k ) there exists a DRC formula F with F V (F ) = {A 1,..., A k } and 7 RC Simulates RA. We now show that DRC (and hence TRC) is at least as expressive as RA. That is, given an RA expression E that mentions at most C, there is an equivalent DRC expression E that mentions

More information

Streamable Fragments of Forward XPath

Streamable Fragments of Forward XPath Streamable Fragments of Forward XPath Olivier Gauwin, Joachim Niehren To cite this version: Olivier Gauwin, Joachim Niehren. Streamable Fragments of Forward XPath. 16th International Conference on Implementation

More information

Computational Models - Lecture 4

Computational Models - Lecture 4 Computational Models - Lecture 4 Regular languages: The Myhill-Nerode Theorem Context-free Grammars Chomsky Normal Form Pumping Lemma for context free languages Non context-free languages: Examples Push

More information

XPath Query Satisfiability and Containment under DTD Constraints

XPath Query Satisfiability and Containment under DTD Constraints XPath Query Satisfiability and Containment under DTD Constraints A Dissertation Submitted to Birkbeck, University of London in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy

More information

Enhancing Active Automata Learning by a User Log Based Metric

Enhancing Active Automata Learning by a User Log Based Metric Master Thesis Computing Science Radboud University Enhancing Active Automata Learning by a User Log Based Metric Author Petra van den Bos First Supervisor prof. dr. Frits W. Vaandrager Second Supervisor

More information

Pruning Nested XQuery Queries

Pruning Nested XQuery Queries Pruning Nested XQuery Queries Bilel Gueni, Talel Abdessalem, Bogdan Cautis,Emmanuel Waller Telecom ParisTech LTCI UMR CNRS 5141 46, rue Barrault-Paris, 75013 France First.Last@enst.fr Université de Paris-Sud

More information

Query-based Learning of XPath Expressions

Query-based Learning of XPath Expressions Query-based Learning of XPath Expressions Julien Carme, Michal Ceresna, and Max Goebel Database and Artificial Intelligence Group Vienna University of Technology Abstract. XML is data format for storing

More information

Tight Lower Bounds for Query Processing on Streaming and External Memory Data

Tight Lower Bounds for Query Processing on Streaming and External Memory Data Tight Lower Bounds for Query Processing on Streaming and External Memory Data Martin Grohe a, Christoph Koch b, and Nicole Schweikardt a a Institut für Informatik, Humboldt-Universität zu Berlin, Unter

More information

Factorized Relational Databases Olteanu and Závodný, University of Oxford

Factorized Relational Databases   Olteanu and Závodný, University of Oxford November 8, 2013 Database Seminar, U Washington Factorized Relational Databases http://www.cs.ox.ac.uk/projects/fd/ Olteanu and Závodný, University of Oxford Factorized Representations of Relations Cust

More information

Classes and conversions

Classes and conversions Classes and conversions Regular expressions Syntax: r = ε a r r r + r r Semantics: The language L r of a regular expression r is inductively defined as follows: L =, L ε = {ε}, L a = a L r r = L r L r

More information

Type-Based XML Projection

Type-Based XML Projection Type-Based XML Projection Véronique Benzaken 1 Giuseppe Castagna 2 Dario Colazzo 1 Kim Nguyê n 1 1 LRI, Université Paris-Sud 11, Orsay - France 2 École Normale Supérieure de Paris - France ABSTRACT XML

More information

Introduction to Theory of Computing

Introduction to Theory of Computing CSCI 2670, Fall 2012 Introduction to Theory of Computing Department of Computer Science University of Georgia Athens, GA 30602 Instructor: Liming Cai www.cs.uga.edu/ cai 0 Lecture Note 3 Context-Free Languages

More information

Supplementary Notes on Inductive Definitions

Supplementary Notes on Inductive Definitions Supplementary Notes on Inductive Definitions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 2 August 29, 2002 These supplementary notes review the notion of an inductive definition

More information

CS243, Logic and Computation Nondeterministic finite automata

CS243, Logic and Computation Nondeterministic finite automata CS243, Prof. Alvarez NONDETERMINISTIC FINITE AUTOMATA (NFA) Prof. Sergio A. Alvarez http://www.cs.bc.edu/ alvarez/ Maloney Hall, room 569 alvarez@cs.bc.edu Computer Science Department voice: (67) 552-4333

More information

How to Recognise Different Tree Patterns from quite a Long Way Away

How to Recognise Different Tree Patterns from quite a Long Way Away How to Recognise Different Tree Patterns from quite a Long Way Away Jan Hidders Philippe Michiels Jérôme Siméon Roel Vercammen Abstract Tree patterns are one of the main abstractions used to access XML

More information

Peter Wood. Department of Computer Science and Information Systems Birkbeck, University of London Automata and Formal Languages

Peter Wood. Department of Computer Science and Information Systems Birkbeck, University of London Automata and Formal Languages and and Department of Computer Science and Information Systems Birkbeck, University of London ptw@dcs.bbk.ac.uk Outline and Doing and analysing problems/languages computability/solvability/decidability

More information

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont )

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont ) CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont ) Sungjin Im University of California, Merced 2-3-214 Example II A ɛ B ɛ D F C E Example II A ɛ B ɛ D F C E NFA accepting

More information

Abstract parsing: static analysis of dynamically generated string output using LR-parsing technology

Abstract parsing: static analysis of dynamically generated string output using LR-parsing technology Abstract parsing: static analysis of dynamically generated string output using LR-parsing technology Kyung-Goo Doh 1, Hyunha Kim 1, David A. Schmidt 2 1. Hanyang University, Ansan, South Korea 2. Kansas

More information

Formal Definition of a Finite Automaton. August 26, 2013

Formal Definition of a Finite Automaton. August 26, 2013 August 26, 2013 Why a formal definition? A formal definition is precise: - It resolves any uncertainties about what is allowed in a finite automaton such as the number of accept states and number of transitions

More information

Mathematics for linguists

Mathematics for linguists 1/13 Mathematics for linguists Gerhard Jäger gerhard.jaeger@uni-tuebingen.de Uni Tübingen, WS 2009/2010 November 26, 2009 2/13 The pumping lemma Let L be an infinite regular language over a finite alphabete

More information

Theory of Computation

Theory of Computation Thomas Zeugmann Hokkaido University Laboratory for Algorithmics http://www-alg.ist.hokudai.ac.jp/ thomas/toc/ Lecture 3: Finite State Automata Motivation In the previous lecture we learned how to formalize

More information

COM364 Automata Theory Lecture Note 2 - Nondeterminism

COM364 Automata Theory Lecture Note 2 - Nondeterminism COM364 Automata Theory Lecture Note 2 - Nondeterminism Kurtuluş Küllü March 2018 The FA we saw until now were deterministic FA (DFA) in the sense that for each state and input symbol there was exactly

More information

(Refer Slide Time: 0:21)

(Refer Slide Time: 0:21) Theory of Computation Prof. Somenath Biswas Department of Computer Science and Engineering Indian Institute of Technology Kanpur Lecture 7 A generalisation of pumping lemma, Non-deterministic finite automata

More information

Part I: Definitions and Properties

Part I: Definitions and Properties Turing Machines Part I: Definitions and Properties Finite State Automata Deterministic Automata (DFSA) M = {Q, Σ, δ, q 0, F} -- Σ = Symbols -- Q = States -- q 0 = Initial State -- F = Accepting States

More information

Takeaway Notes: Finite State Automata

Takeaway Notes: Finite State Automata Takeaway Notes: Finite State Automata Contents 1 Introduction 1 2 Basics and Ground Rules 2 2.1 Building Blocks.............................. 2 2.2 The Name of the Game.......................... 2 3 Deterministic

More information

Alternating register automata on finite data words and trees DIEGO FIGUEIRA

Alternating register automata on finite data words and trees DIEGO FIGUEIRA Logical Methods in Computer Science Vol. 8 (1:22) 2012, pp. 1 43 www.lmcs-online.org Submitted Nov. 5, 2010 Published Mar. 10, 2012 Alternating register automata on finite data words and trees DIEGO FIGUEIRA

More information

On Real-time Monitoring with Imprecise Timestamps

On Real-time Monitoring with Imprecise Timestamps On Real-time Monitoring with Imprecise Timestamps David Basin 1, Felix Klaedtke 2, Srdjan Marinovic 1, and Eugen Zălinescu 1 1 Institute of Information Security, ETH Zurich, Switzerland 2 NEC Europe Ltd.,

More information

Learning to Verify Branching Time Properties

Learning to Verify Branching Time Properties Learning to Verify Branching Time Properties Abhay Vardhan and Mahesh Viswanathan Dept. of Computer Science, Univ. of Illinois at Urbana-Champaign, USA Abstract. We present a new model checking algorithm

More information

Chapter 4: Computation tree logic

Chapter 4: Computation tree logic INFOF412 Formal verification of computer systems Chapter 4: Computation tree logic Mickael Randour Formal Methods and Verification group Computer Science Department, ULB March 2017 1 CTL: a specification

More information

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata Sungjin Im University of California, Merced 1-27-215 Nondeterminism Michael Rabin and Dana Scott (1959) Michael Rabin Dana

More information

Stream Processing of XPath Queries with Predicates

Stream Processing of XPath Queries with Predicates Stream Processing of XPath Queries with Predicates Ashish Kumar Gupta University of Washington akgupta@cs.washington.edu Dan Suciu University of Washington suciu@cs.washington.edu ABSTRACT We consider

More information

Foundations of

Foundations of 91.304 Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (Section 1.3: Regular Expressions) David Martin dm@cs.uml.edu d with some modifications by Prof. Karen Daniels, Spring 2012

More information

Java II Finite Automata I

Java II Finite Automata I Java II Finite Automata I Bernd Kiefer Bernd.Kiefer@dfki.de Deutsches Forschungszentrum für künstliche Intelligenz November, 23 Processing Regular Expressions We already learned about Java s regular expression

More information

XML Query Evaluation via CTL Model Checking

XML Query Evaluation via CTL Model Checking XML Query Evaluation via CTL Model Checking Loredana Afanasiev March 11, 2004 ILLC Master s thesis Advisor: Massimo Franceschet Abstract The Extensible Markup Language (XML) was designed to describe the

More information

CFGs and PDAs are Equivalent. We provide algorithms to convert a CFG to a PDA and vice versa.

CFGs and PDAs are Equivalent. We provide algorithms to convert a CFG to a PDA and vice versa. CFGs and PDAs are Equivalent We provide algorithms to convert a CFG to a PDA and vice versa. CFGs and PDAs are Equivalent We now prove that a language is generated by some CFG if and only if it is accepted

More information

CISC4090: Theory of Computation

CISC4090: Theory of Computation CISC4090: Theory of Computation Chapter 2 Context-Free Languages Courtesy of Prof. Arthur G. Werschulz Fordham University Department of Computer and Information Sciences Spring, 2014 Overview In Chapter

More information

An Efficient Algorithm for Tree Mapping in XML Databases

An Efficient Algorithm for Tree Mapping in XML Databases Journal of Computer Science 3 (7): 487-493, 2007 ISSN 1549-3636 Science Publications, 2007 Corresponding Author: An Efficient Algorithm for Tree Mapping in XML Databases Yangjun Chen University of Winnipeg,

More information

Forward-XPath and extended register automata on data-trees (with Appendix)

Forward-XPath and extended register automata on data-trees (with Appendix) Forward-XPath and extended register automata on data-trees (with Appendix) Diego Figueira INRIA, LSV, ENS Cachan, France ABSTRACT We consider a fragment of XPath named forward-xpath, which contains all

More information

Rewriting XPath Queries Using Materialized XPath Views

Rewriting XPath Queries Using Materialized XPath Views Rewriting XPath Queries Using Materialized XPath Views Prakash Ramanan EECS Department Wichita State University Wichita, KS 67260 0083 ramanan@cs.wichita.edu Abstract Let XP(/, //, [ ]) be the fragment

More information

Discrete Event Systems Exam

Discrete Event Systems Exam Computer Engineering and Networks Laboratory TEC, NSG, DISCO HS 2016 Prof. L. Thiele, Prof. L. Vanbever, Prof. R. Wattenhofer Discrete Event Systems Exam Friday, 3 rd February 2017, 14:00 16:00. Do not

More information

Yoshiharu Kojima 1,2

Yoshiharu Kojima 1,2 Reachability Problems for Controlled Rewriting Systems Yoshiharu Kojima 1,2 joint work with Masahiko Sakai 1 and Florent Jacquemard 3 1 Nagoya University 2 Research Fellow of JSPS 3 INRIA Sacray, LSV AJSW2010,

More information

September 11, Second Part of Regular Expressions Equivalence with Finite Aut

September 11, Second Part of Regular Expressions Equivalence with Finite Aut Second Part of Regular Expressions Equivalence with Finite Automata September 11, 2013 Lemma 1.60 If a language is regular then it is specified by a regular expression Proof idea: For a given regular language

More information

Compiling Techniques

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

More information

Automata Theory (2A) Young Won Lim 5/31/18

Automata Theory (2A) Young Won Lim 5/31/18 Automata Theory (2A) Copyright (c) 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later

More information

Closure under the Regular Operations

Closure under the Regular Operations Closure under the Regular Operations Application of NFA Now we use the NFA to show that collection of regular languages is closed under regular operations union, concatenation, and star Earlier we have

More information

Harvard CS 121 and CSCI E-207 Lecture 10: Ambiguity, Pushdown Automata

Harvard CS 121 and CSCI E-207 Lecture 10: Ambiguity, Pushdown Automata Harvard CS 121 and CSCI E-207 Lecture 10: Ambiguity, Pushdown Automata Salil Vadhan October 4, 2012 Reading: Sipser, 2.2. Another example of a CFG (with proof) L = {x {a, b} : x has the same # of a s and

More information

CSCI 2200 Foundations of Computer Science Spring 2018 Quiz 3 (May 2, 2018) SOLUTIONS

CSCI 2200 Foundations of Computer Science Spring 2018 Quiz 3 (May 2, 2018) SOLUTIONS CSCI 2200 Foundations of Computer Science Spring 2018 Quiz 3 (May 2, 2018) SOLUTIONS 1. [6 POINTS] For language L 1 = {0 n 1 m n, m 1, m n}, which string is in L 1? ANSWER: 0001111 is in L 1 (with n =

More information

Finite-State Transducers

Finite-State Transducers Finite-State Transducers - Seminar on Natural Language Processing - Michael Pradel July 6, 2007 Finite-state transducers play an important role in natural language processing. They provide a model for

More information

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata CISC 4090: Theory of Computation Chapter Regular Languages Xiaolan Zhang, adapted from slides by Prof. Werschulz Section.: Finite Automata Fordham University Department of Computer and Information Sciences

More information

1. Problem I calculated these out by hand. It was tedious, but kind of fun, in a a computer should really be doing this sort of way.

1. Problem I calculated these out by hand. It was tedious, but kind of fun, in a a computer should really be doing this sort of way. . Problem 5.2-. I calculated these out by hand. It was tedious, but kind of fun, in a a computer should really be doing this sort of way. 2 655 95 45 243 77 33 33 93 86 5 36 8 3 5 2 4 2 2 2 4 2 2 4 4 2

More information

Comment: The induction is always on some parameter, and the basis case is always an integer or set of integers.

Comment: The induction is always on some parameter, and the basis case is always an integer or set of integers. 1. For each of the following statements indicate whether it is true or false. For the false ones (if any), provide a counter example. For the true ones (if any) give a proof outline. (a) Union of two non-regular

More information

Languages, regular languages, finite automata

Languages, regular languages, finite automata Notes on Computer Theory Last updated: January, 2018 Languages, regular languages, finite automata Content largely taken from Richards [1] and Sipser [2] 1 Languages An alphabet is a finite set of characters,

More information

Logics and automata over in nite alphabets

Logics and automata over in nite alphabets Logics and automata over in nite alphabets Anca Muscholl LIAFA, Univ. Paris 7 & CNRS Joint work with: Miko!aj Bojańczyk (Warsaw, Paris), Claire David (Paris), Thomas Schwentick (Dortmund) and Luc Segou

More information

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska LECTURE 6 CHAPTER 2 FINITE AUTOMATA 2. Nondeterministic Finite Automata NFA 3. Finite Automata and Regular Expressions 4. Languages

More information

Further discussion of Turing machines

Further discussion of Turing machines Further discussion of Turing machines In this lecture we will discuss various aspects of decidable and Turing-recognizable languages that were not mentioned in previous lectures. In particular, we will

More information

Memory Lower Bounds for XPath Evaluation over XML Streams

Memory Lower Bounds for XPath Evaluation over XML Streams Memory Lower Bounds for XPath Evaluation over XML Streams Prakash Ramanan Department of Computer Science Wichita State University Wichita, KS 67260 0083 Phone: (316) 978 3920 (Fax: 3984) ramanan@cs.wichita.edu

More information

Forward-XPath and extended register automata

Forward-XPath and extended register automata Forward-XPath and extended register automata Diego Figueira To cite this version: Diego Figueira. Forward-XPath and extended register automata. International Conference on Database Theory (ICDT), Mar 2010,

More information

XReason: A Semantic Approach that Reasons with Patterns to Answer XML Keyword Queries

XReason: A Semantic Approach that Reasons with Patterns to Answer XML Keyword Queries XReason: A Semantic Aroach that Reasons with Patterns to Answer XML Keyword Queries Cem Aksoy 1, Aggeliki Dimitriou 2, Dimitri Theodoratos 1, Xiaoying Wu 3 1 New Jersey Institute of Technology, Newark,

More information

Chapter 0 Introduction. Fourth Academic Year/ Elective Course Electrical Engineering Department College of Engineering University of Salahaddin

Chapter 0 Introduction. Fourth Academic Year/ Elective Course Electrical Engineering Department College of Engineering University of Salahaddin Chapter 0 Introduction Fourth Academic Year/ Elective Course Electrical Engineering Department College of Engineering University of Salahaddin October 2014 Automata Theory 2 of 22 Automata theory deals

More information

CSE 211. Pushdown Automata. CSE 211 (Theory of Computation) Atif Hasan Rahman

CSE 211. Pushdown Automata. CSE 211 (Theory of Computation) Atif Hasan Rahman CSE 211 Pushdown Automata CSE 211 (Theory of Computation) Atif Hasan Rahman Lecturer Department of Computer Science and Engineering Bangladesh University of Engineering & Technology Adapted from slides

More information

October 6, Equivalence of Pushdown Automata with Context-Free Gramm

October 6, Equivalence of Pushdown Automata with Context-Free Gramm Equivalence of Pushdown Automata with Context-Free Grammar October 6, 2013 Motivation Motivation CFG and PDA are equivalent in power: a CFG generates a context-free language and a PDA recognizes a context-free

More information

Computational Models Lecture 8 1

Computational Models Lecture 8 1 Computational Models Lecture 8 1 Handout Mode Ronitt Rubinfeld and Iftach Haitner. Tel Aviv University. May 11/13, 2015 1 Based on frames by Benny Chor, Tel Aviv University, modifying frames by Maurice

More information

Inferring a Relax NG Schema from XML Documents

Inferring a Relax NG Schema from XML Documents Inferring a Relax NG Schema from XML Documents Guen-Hae Kim* Sang-Ki Ko Yo-Sub Han Department of Computer Science Yonsei University 10th International Conference on Language and Automata Theory and Application

More information

Satisfiability of Simple XPath Fragments under Duplicate-Free DTDs

Satisfiability of Simple XPath Fragments under Duplicate-Free DTDs IEICE TRANS. INF. & SYST., VOL.E96 D, NO.5 MAY 2013 1029 PAPER Special Section on Data Engineering and Information Management Satisfiability of Simple XPath Fragments under Duplicate-Free DTDs Nobutaka

More information

Succinctness of Pattern-based Schema Languages for XML

Succinctness of Pattern-based Schema Languages for XML Succinctness of Pattern-based Schema Languages for XML Wouter Gelade and Frank Neven Hasselt University and Transnational University of Limburg School for Information Technology {firstname.lastname}@uhasselt.be

More information

11. Automata and languages, cellular automata, grammars, L-systems

11. Automata and languages, cellular automata, grammars, L-systems 11. Automata and languages, cellular automata, grammars, L-systems 11.1 Automata and languages Automaton (pl. automata): in computer science, a simple model of a machine or of other systems. ( a simplification

More information

THE AUSTRALIAN NATIONAL UNIVERSITY Second Semester COMP2600 (Formal Methods for Software Engineering)

THE AUSTRALIAN NATIONAL UNIVERSITY Second Semester COMP2600 (Formal Methods for Software Engineering) THE AUSTRALIAN NATIONAL UNIVERSITY Second Semester 2012 COMP2600 (Formal Methods for Software Engineering) Writing Period: 3 hours duration Study Period: 15 minutes duration Permitted Materials: One A4

More information

The Fast Optimal Voltage Partitioning Algorithm For Peak Power Density Minimization

The Fast Optimal Voltage Partitioning Algorithm For Peak Power Density Minimization The Fast Optimal Voltage Partitioning Algorithm For Peak Power Density Minimization Jia Wang, Shiyan Hu Department of Electrical and Computer Engineering Michigan Technological University Houghton, Michigan

More information

Compilers. Lexical analysis. Yannis Smaragdakis, U. Athens (original slides by Sam

Compilers. Lexical analysis. Yannis Smaragdakis, U. Athens (original slides by Sam Compilers Lecture 3 Lexical analysis Yannis Smaragdakis, U. Athens (original slides by Sam Guyer@Tufts) Big picture Source code Front End IR Back End Machine code Errors Front end responsibilities Check

More information

Regular Expressions with Numerical Occurrence Indicators preliminary results

Regular Expressions with Numerical Occurrence Indicators preliminary results Regular Expressions with Numerical Occurrence Indicators preliminary results Pekka Kilpeläinen and Rauno Tuhkanen University of Kuopio Department of Computer Science P.O. Box 1627, FIN-70211 Kuopio, Finland

More information

Cache-Oblivious Algorithms

Cache-Oblivious Algorithms Cache-Oblivious Algorithms 1 Cache-Oblivious Model 2 The Unknown Machine Algorithm C program gcc Object code linux Execution Can be executed on machines with a specific class of CPUs Algorithm Java program

More information

Efficient Inclusion Checking for Deterministic Tree Automata and DTDs

Efficient Inclusion Checking for Deterministic Tree Automata and DTDs Efficient Inclusion Checking for Deterministic Tree Automata and DTDs Jérôme Champavère, Rémi Gilleron, Aurélien Lemay, and Joachim Niehren INRIA Futurs and Lille University, LIFL, Mostrare project Abstract.

More information

Cache-Oblivious Algorithms

Cache-Oblivious Algorithms Cache-Oblivious Algorithms 1 Cache-Oblivious Model 2 The Unknown Machine Algorithm C program gcc Object code linux Execution Can be executed on machines with a specific class of CPUs Algorithm Java program

More information

Suppose h maps number and variables to ɛ, and opening parenthesis to 0 and closing parenthesis

Suppose h maps number and variables to ɛ, and opening parenthesis to 0 and closing parenthesis 1 Introduction Parenthesis Matching Problem Describe the set of arithmetic expressions with correctly matched parenthesis. Arithmetic expressions with correctly matched parenthesis cannot be described

More information

Finite Automata. Mahesh Viswanathan

Finite Automata. Mahesh Viswanathan Finite Automata Mahesh Viswanathan In this lecture, we will consider different models of finite state machines and study their relative power. These notes assume that the reader is familiar with DFAs,

More information

Finite Universes. L is a fixed-length language if it has length n for some

Finite Universes. L is a fixed-length language if it has length n for some Finite Universes Finite Universes When the universe is finite (e.g., the interval 0, 2 1 ), all objects can be encoded by words of the same length. A language L has length n 0 if L =, or every word of

More information

Computational Models - Lecture 1 1

Computational Models - Lecture 1 1 Computational Models - Lecture 1 1 Handout Mode Ronitt Rubinfeld and Iftach Haitner. Tel Aviv University. February 29/ March 02, 2016 1 Based on frames by Benny Chor, Tel Aviv University, modifying frames

More information

An Algorithm for Transforming XPath Expressions According to Schema Evolution

An Algorithm for Transforming XPath Expressions According to Schema Evolution An Algorithm for Transforming XPath Expressions According to Schema Evolution Kazuma Hasegawa Graduate School of Library, Information and Media Studies University of Tsukuba s1221595@u.tsukuba.ac.jp Kosetsu

More information

CPSC 421: Tutorial #1

CPSC 421: Tutorial #1 CPSC 421: Tutorial #1 October 14, 2016 Set Theory. 1. Let A be an arbitrary set, and let B = {x A : x / x}. That is, B contains all sets in A that do not contain themselves: For all y, ( ) y B if and only

More information