Database Languages and their Compilers
|
|
- Tyrone Barton
- 6 years ago
- Views:
Transcription
1 Database Languages and their Compilers Prof. Dr. Torsten Grust Database Systems Research Group U Tübingen Winter T. Grust Database Languages and their Compilers
2 4 Query Normalization Finally, we have reached a point where our understanding (read: syntactic and semantic analysis) of the input query is complete enough to plan its execution on the underlying DBMS. What we need now is a mapping from MCC to the primitives of the query engine. These primitives (operators) may usually be connected in a tree-like fashion to form a query execution plan: Õ Å Ã 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 115
3 We will, of course, aim to assemble execution plans which 1 contain the minimal number of necessary operators ; this will reduce the need to allocate and manage intermediate query results, thus making the overall I/O costs cheaper; 2 use those operators whose internal workings are simple and thus are efficiently executable; this will help to reduce CPU as well as I/O costs (consider the need for temporary storage during operator execution, e.g., sorting). 3 adhere to specific tree shapes: left-deep right-deep bushy (but we will postpone a discussion of this right now.) 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 116
4 For a first approach to find such a mapping from MCC to query plans, we can fall back on the ÓÐ-based MCC semantics (see Chapter 2): We need a single type of -operator implemented in our query engine, namely ÓÐ; equations (1) through (3) of Section 2.3 provide the mapping from MCC to execution plans; 4.1 Comprehension Normalization SQL ÃMCC ÃÓÐ provides a complete query processor framework for SQL. Unfortunately, ÓÐ s internal workings are not simple in the sense of our previous discussion. Each instance of ÓÐ we can get rid of in a query plan is worth to search for T. Grust Database Languages and their Compilers: 4. Query Normalization 117
5 ½ Ê ÙÑ ½ Ê ÙÑ MCC provides a number of hooks to simplify its expressions while their meaning is preserved: From a bird s eye point of view, the overall structure of a comprehension computing an SQL SUM-aggregate query is (see cases (g) and (h) of mapping Ì): Claim: Irrespective of, this computes the same value as The second comprehension saves a ÓÐ. A comparison of the ÓÐ corresponding programs for both comprehensions justifies this equivalence-preserving simplification step T. Grust Database Languages and their Compilers: 4. Query Normalization 118
6 Õ Ú ¼ Õ ¼ Å ¼ Õ ¼¼ Å Õ Õ ¼ Ú ¼ Õ ¼¼ Å remove ½ Ê ÙÑ ÙÑ This simplification step is an instantiation of a far more general rewriting that MCC allows us to do: Comprehension Unnesting (Å Å ¼ in general): The comprehension on the right hand side uses one generator ( ) less. The unnesting rule implements the simplification procedure of the previous slide: ßÞÐ Õ ½ Ê ßÞÐ ¼¼ Õ unnest ½ Ê ÙÑ 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 119
7 Nested SQL queries of the form shown here may lead to inefficient query execution plans: Let Ô Ô ¼ denote two SQL predicates: SELECT DISTINCT Ü Õ FROM Ü AS WHERE EXISTS Þ IN ¼ Ý SELECT FROM Ý AS Ô Ü Ýµ WHERE ½ Ô ¼ Ü Þµ ßÞ Ð subquery Note that the nested subquery is correlated: Ô Ü Ýµ depends on tuple variable Ü bound in the outer query; consequently, we have to re-evaluate the subquery for every binding of Ü; it looks like we have to read times T. Grust Database Languages and their Compilers: 4. Query Normalization 120
8 Ì Õ ¼ Õ ¼ ÓÑ Õ ¼¼ Ø Õ Õ ¼ ¼ Õ ¼¼ Ø Ü Üµ Ü Ô ¼ Ü Þµ Þ Ý Ýµ Ý Ô Ü Ýµ ÓÑ Ø We can improve the situation with the help of a new MCC rewriting rule: Unnesting of Existential Quantification: N.B.: Unnesting of existential quantifiers is valid only inside a Ø comprehension. This is applicable to Õ after we have switched to MCC with the help of Ì: Ì Õµ unnest Ü Üµ Ü Ô ¼ Ü Þµ Ý Ô Ü Ýµ Þ Ý Ýµ ÓÑ Ø remove Ü Üµ Ü Ô ¼ Ü Ý Ýµµ Ý Ô Ü Ýµ ÓÑ Ø ÓÑ unnest Ü Üµ Ü Ý Ô ¼ Ü Ý Ýµµ Ô Ü Ýµ Ø 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 121
9 If we Ì apply to the rewriting results, we now see that Õ is nothing else but a join ½ between and : SELECT Ü DISTINCT FROM Ü AS AS Ý WHERE Ô ¼ Ü Ý Ýµµ AND Ô Ü Ýµ DBMS query engines can cope with queries of this type much more efficiently (various join algorithms are applicable now). Correlation matters. If we replace Ô Ü Ýµ by Ô Ýµ in the original query Õ, can you take advantage of this modification? How about replacing Ô Ü Ýµ by Ô Üµ? 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 122
10 In company with two additional laws, the repeated and exhaustive application of the unnesting rules rewrites a comprehension into its normal form:! Comprehension Normalization: Õ Ú ¼ Õ ¼ Å ¼ Õ ¼¼ Å Õ Õ ¼ Ú ¼ Õ ¼¼ (4) Å Õ ¼ Õ ¼ ÓÑ Õ ¼¼ Ø Õ Õ ¼ ¼ Õ ¼¼ (5) Ø Õ Ú ÐØ Å ¼ ¼ µ Õ ¼ Å Õ Ú ¼ Õ ¼ (6) Å Õ Ú ¼ Þ Å Õ ¼ Å Þ (7) Å 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 123
11 4.2 Further Rewriting Laws The expressions of MCC are subject to a large number of additional equivalence-preserving rewritings and simplifications. If some of these rules appear to be too obvious, recall that we are trying to implement a completely unguided system so that we have to declare even the most simple facts; rewriting opportunities might occur due to the application of (a number of) other rewriting laws Constant Folding ÓÒ Ø ½ ÓÒ Ø ÓÒ Ø Ã ÓÒ Ø ÓÒ Ø Ã Ã ½ ¾ ½ ¾ ¾ ½ ¾ 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 124
12 Note that the rewriting laws are directed ( Ãinstead of ) to avoid infinite rewriting loops. The first two rules aim to construct a normal form of arithmetic expressions in which numeric constants appear left-most, e.g.: ½¼ ¼µ ¼µ ¾µ ܵ ݵ Þ three applications of the last law finally produce ¾ ܵ ݵ Þ. Some more examples: ÓÒ Ø Ð Ã ÓÒ Ø Ã ÓÒ Ø Ã ØÖÙ Ð ØÖÙ Ð ½ ½ ÐÒ Ò These laws, in turn, may then make the following applicable: Õ ØÖÙ Õ ¼ Å Ã Õ Õ ¼ Å Õ Ð Õ ¼ Å ÃÞ Å 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 125
13 4.2.2 Reordering the Qualifier List For a Õ comprehension, the order of qualifiers in Õ obviously makes a Å difference: moving a predicate towards the beginning of Õ allows to evaluate filters early; moving generators inside Õ may lead to interesting join orders (later) T. Grust Database Languages and their Compilers: 4. Query Normalization 126
14 Ô Õ Å Ô Õ Å ¼ Õ Ô Å Õ Ô Å 1 Exchanging predicates: To see that two adjacent predicates Ô Õ in a qualifier list may be transposed, note that See Section 2.3 (rule (3)) and use the equivalence if Ô then if Õ then else else ¼ Ô Õ if then else. ¼ Finally: Ô Õ Å Ô Õ Å commutative 2010 T. Grust Database Languages and their Compilers: 4. Query Normalization 127
15 Ô Ú ¼ Å Ú ¼ Å 2 Moving generators: Generators introduce variables, so we have to be careful not to move expressions out of scope and to avoid name capture. (a) Transposing a generator and a (Ô predicate may not reference Ú): Ú ¼ Ô Å (b) Transposing two generators ( ¼ may not reference Ú ¼, ¼¼ may not reference Ú, Å ¾ Ø ): Ú Ú ¼ Ú ¼ ¼¼ Å Ú ¼ ¼¼ Ú Ú ¼ ¼ N.B.: These laws are specified for pairs of qualifiers but they can be easily lifted onto sequences of qualifiers of length ¾ T. Grust Database Languages and their Compilers: 4. Query Normalization 128
16 Contents 0 Introduction to Query Compilation Welcome! Administrativa Some Remarks on these Slides Relational Databases and SQL A Guided Tour through an SQL Query Processor Character Streams and Tokens Identify Valid SQL Syntax Resolve the Meaning of Variables and Identifiers Check Types and Schemas T. Grust Database Languages and their Compilers: 4. Query Normalization 129
17 0.5.5 How Could Query Evaluation Look Like? One Query, Many Programs Query Operators Query Operator Trees and Rewriting The Cheaper, the Better: Query Cost Models Executing Operator Trees on a Machine Recommended Reading Query Parsing The Scanner (Lexer) Regular Expressions Regular Expressions for SQL lex A Scanner Generator T. Grust Database Languages and their Compilers: 4. Query Normalization 130
18 1.2 Syntax Analysis (Parsing) Context-Free Grammars Derivations and Parse Trees Ambiguous Grammars Predictive Parsing and Recursive Descent yacc A Parser Generator Recommended Reading A Query Calculus for SQL SQL s Nested Loops Semantics ÓÐ The Monoid Comprehension Calculus Mapping SQL to MCC T. Grust Database Languages and their Compilers: 4. Query Normalization 131
19 2.4.1 Applying Ì to Translate SQL Queries Recommended Reading Variable Scopes and Type Inference for SQL Variables in SQL Variable Environments The Type of an SQL Query Type Inference Semantic Attributes Query Normalization Comprehension Normalization Further Rewriting Laws Constant Folding T. Grust Database Languages and their Compilers: 4. Query Normalization 132
20 4.2.2 Reordering the Qualifier List T. Grust Database Languages and their Compilers: 4. Query Normalization 133
Copyright 2016 Ramez Elmasri and Shamkant B. Navathe
CHAPTER 19 Query Optimization Introduction Query optimization Conducted by a query optimizer in a DBMS Goal: select best available strategy for executing query Based on information available Most RDBMSs
More informationParser: SQL parse tree
Jinze Liu Parser: SQL parse tree Good old lex & yacc Detect and reject syntax errors Validator: parse tree logical plan Detect and reject semantic errors Nonexistent tables/views/columns? Insufficient
More informationProbabilistic analysis of algorithms: What s it good for?
Probabilistic analysis of algorithms: What s it good for? Conrado Martínez Univ. Politècnica de Catalunya, Spain February 2008 The goal Given some algorithm taking inputs from some set Á, we would like
More informationPlan for today. Query Processing/Optimization. Parsing. A query s trip through the DBMS. Validation. Logical plan
Plan for today Query Processing/Optimization CPS 216 Advanced Database Systems Overview of query processing Query execution Query plan enumeration Query rewrite heuristics Query rewrite in DB2 2 A query
More informationQuery Processing & Optimization
Query Processing & Optimization 1 Roadmap of This Lecture Overview of query processing Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Introduction
More informationCS 406/534 Compiler Construction Putting It All Together
CS 406/534 Compiler Construction Putting It All Together Prof. Li Xu Dept. of Computer Science UMass Lowell Fall 2004 Part of the course lecture notes are based on Prof. Keith Cooper, Prof. Ken Kennedy
More informationCompiler Theory. (Semantic Analysis and Run-Time Environments)
Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful
More informationCOP 3402 Systems Software Syntax Analysis (Parser)
COP 3402 Systems Software Syntax Analysis (Parser) Syntax Analysis 1 Outline 1. Definition of Parsing 2. Context Free Grammars 3. Ambiguous/Unambiguous Grammars Syntax Analysis 2 Lexical and Syntax Analysis
More informationRelational Databases
Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 49 Plan of the course 1 Relational databases 2 Relational database design 3 Conceptual database design 4
More informationCompiler Code Generation COMP360
Compiler Code Generation COMP360 Students who acquire large debts putting themselves through school are unlikely to think about changing society. When you trap people in a system of debt, they can t afford
More informationRYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS
RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 STUDENT ID: INSTRUCTIONS Please write your student ID on this page. Do not write it or your name
More informationLECTURE 3. Compiler Phases
LECTURE 3 Compiler Phases COMPILER PHASES Compilation of a program proceeds through a fixed series of phases. Each phase uses an (intermediate) form of the program produced by an earlier phase. Subsequent
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationExponentiated Gradient Algorithms for Large-margin Structured Classification
Exponentiated Gradient Algorithms for Large-margin Structured Classification Peter L. Bartlett U.C.Berkeley bartlett@stat.berkeley.edu Ben Taskar Stanford University btaskar@cs.stanford.edu Michael Collins
More informationContents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions...
Contents Contents...283 Introduction...283 Basic Steps in Query Processing...284 Introduction...285 Transformation of Relational Expressions...287 Equivalence Rules...289 Transformation Example: Pushing
More informationTizen/Artik IoT Lecture Chapter 3. JerryScript Parser & VM
1 Tizen/Artik IoT Lecture Chapter 3. JerryScript Parser & VM Sungkyunkwan University Contents JerryScript Execution Flow JerryScript Parser Execution Flow Lexing Parsing Compact Bytecode (CBC) JerryScript
More informationModule 4. Implementation of XQuery. Part 0: Background on relational query processing
Module 4 Implementation of XQuery Part 0: Background on relational query processing The Data Management Universe Lecture Part I Lecture Part 2 2 What does a Database System do? Input: SQL statement Output:
More informationChapter 11: Query Optimization
Chapter 11: Query Optimization Chapter 11: Query Optimization Introduction Transformation of Relational Expressions Statistical Information for Cost Estimation Cost-based optimization Dynamic Programming
More informationFuzzy Hamming Distance in a Content-Based Image Retrieval System
Fuzzy Hamming Distance in a Content-Based Image Retrieval System Mircea Ionescu Department of ECECS, University of Cincinnati, Cincinnati, OH 51-3, USA ionescmm@ececs.uc.edu Anca Ralescu Department of
More informationChapter 19 Query Optimization
Chapter 19 Query Optimization It is an activity conducted by the query optimizer to select the best available strategy for executing the query. 1. Query Trees and Heuristics for Query Optimization - Apply
More informationRSA (Rivest Shamir Adleman) public key cryptosystem: Key generation: Pick two large prime Ô Õ ¾ numbers È.
RSA (Rivest Shamir Adleman) public key cryptosystem: Key generation: Pick two large prime Ô Õ ¾ numbers È. Let Ò Ô Õ. Pick ¾ ½ ³ Òµ ½ so, that ³ Òµµ ½. Let ½ ÑÓ ³ Òµµ. Public key: Ò µ. Secret key Ò µ.
More informationCSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 7 - Query optimization
CSE 544 Principles of Database Management Systems Alvin Cheung Fall 2015 Lecture 7 - Query optimization Announcements HW1 due tonight at 11:45pm HW2 will be due in two weeks You get to implement your own
More informationSFU CMPT Lecture: Week 9
SFU CMPT-307 2008-2 1 Lecture: Week 9 SFU CMPT-307 2008-2 Lecture: Week 9 Ján Maňuch E-mail: jmanuch@sfu.ca Lecture on July 8, 2008, 5.30pm-8.20pm SFU CMPT-307 2008-2 2 Lecture: Week 9 Binary search trees
More informationAdvanced Databases. Lecture 4 - Query Optimization. Masood Niazi Torshiz Islamic Azad university- Mashhad Branch
Advanced Databases Lecture 4 - Query Optimization Masood Niazi Torshiz Islamic Azad university- Mashhad Branch www.mniazi.ir Query Optimization Introduction Transformation of Relational Expressions Catalog
More informationFrom Tableaux to Automata for Description Logics
Fundamenta Informaticae XX (2003) 1 33 1 IOS Press From Tableaux to Automata for Description Logics Franz Baader, Jan Hladik, and Carsten Lutz Theoretical Computer Science, TU Dresden, D-01062 Dresden,
More informationPrinciple of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments
More informationR13 SET Discuss how producer-consumer problem and Dining philosopher s problem are solved using concurrency in ADA.
R13 SET - 1 III B. Tech I Semester Regular Examinations, November - 2015 1 a) What constitutes a programming environment? [3M] b) What mixed-mode assignments are allowed in C and Java? [4M] c) What is
More informationContents. Chapter 1 SPECIFYING SYNTAX 1
Contents Chapter 1 SPECIFYING SYNTAX 1 1.1 GRAMMARS AND BNF 2 Context-Free Grammars 4 Context-Sensitive Grammars 8 Exercises 8 1.2 THE PROGRAMMING LANGUAGE WREN 10 Ambiguity 12 Context Constraints in Wren
More informationCOLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR
Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR By Prof. Anand N. Gharu (Assistant Professor) PVGCOE Computer Dept.. 22nd Jan 2018 CONTENTS :- 1. Role of lexical analysis 2.
More informationAn Experimental CLP Platform for Integrity Constraints and Abduction
An Experimental CLP Platform for Integrity Constraints and Abduction Slim Abdennadher ½ and Henning Christiansen ¾ ½ ¾ Computer Science Department, University of Munich Oettingenstr. 67, 80538 München,
More informationEfficiency versus Convergence of Boolean Kernels for On-Line Learning Algorithms
Efficiency versus Convergence of Boolean Kernels for On-Line Learning Algorithms Roni Khardon Tufts University Medford, MA 02155 roni@eecs.tufts.edu Dan Roth University of Illinois Urbana, IL 61801 danr@cs.uiuc.edu
More informationFrom Clarity to Efficiency for Distributed Algorithms
From Clarity to Efficiency for Distributed Algorithms Yanhong A. Liu Scott D. Stoller Bo Lin Michael Gorbovitski Computer Science Department, State University of New York at Stony Brook, Stony Brook, NY
More informationCOMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table
COMPILER CONSTRUCTION Lab 2 Symbol table LABS Lab 3 LR parsing and abstract syntax tree construction using ''bison' Lab 4 Semantic analysis (type checking) PHASES OF A COMPILER Source Program Lab 2 Symtab
More informationCompilers and Interpreters
Overview Roadmap Language Translators: Interpreters & Compilers Context of a compiler Phases of a compiler Compiler Construction tools Terminology How related to other CS Goals of a good compiler 1 Compilers
More informationAbstract Syntax Trees & Top-Down Parsing
Review of Parsing Abstract Syntax Trees & Top-Down Parsing Given a language L(G), a parser consumes a sequence of tokens s and produces a parse tree Issues: How do we recognize that s L(G)? A parse tree
More informationCompilers and computer architecture From strings to ASTs (2): context free grammars
1 / 1 Compilers and computer architecture From strings to ASTs (2): context free grammars Martin Berger October 2018 Recall the function of compilers 2 / 1 3 / 1 Recall we are discussing parsing Source
More informationCSE 344 MAY 7 TH EXAM REVIEW
CSE 344 MAY 7 TH EXAM REVIEW EXAMINATION STATIONS Exam Wednesday 9:30-10:20 One sheet of notes, front and back Practice solutions out after class Good luck! EXAM LENGTH Production v. Verification Practice
More informationLOGIC AND DISCRETE MATHEMATICS
LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University
More informationExtending xcom. Chapter Overview of xcom
Chapter 3 Extending xcom 3.1 Overview of xcom xcom is compile-and-go; it has a front-end which analyzes the user s program, a back-end which synthesizes an executable, and a runtime that supports execution.
More information8. Relational Calculus (Part II)
8. Relational Calculus (Part II) Relational Calculus, as defined in the previous chapter, provides the theoretical foundations for the design of practical data sub-languages (DSL). In this chapter, we
More informationTheory and Algorithms for the Generation and Validation of Speculative Loop Optimizations
Theory and Algorithms for the Generation and Validation of Speculative Loop Optimizations Ying Hu Clark Barrett Benjamin Goldberg Department of Computer Science New York University yinghu,barrett,goldberg@cs.nyu.edu
More informationIntroduction to Parsing
Introduction to Parsing The Front End Source code Scanner tokens Parser IR Errors Parser Checks the stream of words and their parts of speech (produced by the scanner) for grammatical correctness Determines
More informationQuery Optimization Overview. COSC 404 Database System Implementation. Query Optimization. Query Processor Components The Parser
COSC 404 Database System Implementation Query Optimization Query Optimization Overview The query processor performs four main tasks: 1) Verifies the correctness of an SQL statement 2) Converts the SQL
More informationAbstract Syntax Trees & Top-Down Parsing
Abstract Syntax Trees & Top-Down Parsing Review of Parsing Given a language L(G), a parser consumes a sequence of tokens s and produces a parse tree Issues: How do we recognize that s L(G)? A parse tree
More informationParsing II Top-down parsing. Comp 412
COMP 412 FALL 2018 Parsing II Top-down parsing Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled
More informationAbstract Syntax Trees & Top-Down Parsing
Review of Parsing Abstract Syntax Trees & Top-Down Parsing Given a language L(G), a parser consumes a sequence of tokens s and produces a parse tree Issues: How do we recognize that s L(G)? A parse tree
More informationGraphs (MTAT , 4 AP / 6 ECTS) Lectures: Fri 12-14, hall 405 Exercises: Mon 14-16, hall 315 või N 12-14, aud. 405
Graphs (MTAT.05.080, 4 AP / 6 ECTS) Lectures: Fri 12-14, hall 405 Exercises: Mon 14-16, hall 315 või N 12-14, aud. 405 homepage: http://www.ut.ee/~peeter_l/teaching/graafid08s (contains slides) For grade:
More informationQuery Optimization. Introduction to Databases CompSci 316 Fall 2018
Query Optimization Introduction to Databases CompSci 316 Fall 2018 2 Announcements (Tue., Nov. 20) Homework #4 due next in 2½ weeks No class this Thu. (Thanksgiving break) No weekly progress update due
More informationThis file contains an excerpt from the character code tables and list of character names for The Unicode Standard, Version 3.0.
Range: This file contains an excerpt from the character code tables and list of character names for The Unicode Standard, Version.. isclaimer The shapes of the reference glyphs used in these code charts
More informationCS 415 Midterm Exam Fall 2003
CS 415 Midterm Exam Fall 2003 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you can to
More informationRSA (Rivest Shamir Adleman) public key cryptosystem: Key generation: Pick two large prime Ô Õ ¾ numbers È.
RSA (Rivest Shamir Adleman) public key cryptosystem: Key generation: Pick two large prime Ô Õ ¾ numbers È. Let Ò Ô Õ. Pick ¾ ½ ³ Òµ ½ so, that ³ Òµµ ½. Let ½ ÑÓ ³ Òµµ. Public key: Ò µ. Secret key Ò µ.
More informationPrinciples of Programming Languages [PLP-2015] Detailed Syllabus
Principles of Programming Languages [PLP-2015] Detailed Syllabus This document lists the topics presented along the course. The PDF slides published on the course web page (http://www.di.unipi.it/~andrea/didattica/plp-15/)
More informationChapter 12: Query Processing
Chapter 12: Query Processing Overview Catalog Information for Cost Estimation $ Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Transformation
More informationPart XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321
Part XII Mapping XML to Databases Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321 Outline of this part 1 Mapping XML to Databases Introduction 2 Relational Tree Encoding Dead Ends
More informationCS415 Compilers. Syntax Analysis. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University
CS415 Compilers Syntax Analysis These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Limits of Regular Languages Advantages of Regular Expressions
More informationThe Online Median Problem
The Online Median Problem Ramgopal R. Mettu C. Greg Plaxton November 1999 Abstract We introduce a natural variant of the (metric uncapacitated) -median problem that we call the online median problem. Whereas
More informationCSE 344 JANUARY 19 TH SUBQUERIES 2 AND RELATIONAL ALGEBRA
CSE 344 JANUARY 19 TH SUBQUERIES 2 AND RELATIONAL ALGEBRA ASSORTED MINUTIAE Winter storm Inga Online quiz out after class Still due Wednesday, will be shorter but through today s lecture For SQLite submissions,
More informationCSE443 Compilers. Dr. Carl Alphonce 343 Davis Hall
CSE443 Compilers Dr. Carl Alphonce alphonce@buffalo.edu 343 Davis Hall Phases of a compiler Syntactic structure Figure 1.6, page 5 of text Recap Lexical analysis: LEX/FLEX (regex -> lexer) Syntactic analysis:
More informationEvent List Management In Distributed Simulation
Event List Management In Distributed Simulation Jörgen Dahl ½, Malolan Chetlur ¾, and Philip A Wilsey ½ ½ Experimental Computing Laboratory, Dept of ECECS, PO Box 20030, Cincinnati, OH 522 0030, philipwilsey@ieeeorg
More informationParsing. Note by Baris Aktemur: Our slides are adapted from Cooper and Torczon s slides that they prepared for COMP 412 at Rice.
Parsing Note by Baris Aktemur: Our slides are adapted from Cooper and Torczon s slides that they prepared for COMP 412 at Rice. Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. Students
More informationCS 415 Midterm Exam Spring 2002
CS 415 Midterm Exam Spring 2002 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Good Luck! Score Fortran Algol 60 Compilation Names, Bindings, Scope Functional Programming
More informationSyntax-Directed Translation. Lecture 14
Syntax-Directed Translation Lecture 14 (adapted from slides by R. Bodik) 9/27/2006 Prof. Hilfinger, Lecture 14 1 Motivation: parser as a translator syntax-directed translation stream of tokens parser ASTs,
More informationScan Scheduling Specification and Analysis
Scan Scheduling Specification and Analysis Bruno Dutertre System Design Laboratory SRI International Menlo Park, CA 94025 May 24, 2000 This work was partially funded by DARPA/AFRL under BAE System subcontract
More informationAnatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?
Anatomy of a Compiler Program (character stream) Lexical Analyzer (Scanner) Syntax Analyzer (Parser) Semantic Analysis Parse Tree Intermediate Code Generator Intermediate Code Optimizer Code Generator
More informationChapter 13: Query Optimization
Chapter 13: Query Optimization Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 13: Query Optimization Introduction Transformation of Relational Expressions Catalog
More informationSQL Part 3: Where Subqueries and other Syntactic Sugar Part 4: Unknown Values and NULLs
SQL Part 3: Where Subqueries and other Syntactic Sugar Part 4: Unknown Values and NULLs 1-1 List of Slides 1 2 More on "where" conditions 3 Esoteric Predicates: Example 4 WHERE Subqueries 5 Overview of
More informationINTRODUCTION TO RELATIONAL DATABASE SYSTEMS
INTRODUCTION TO RELATIONAL DATABASE SYSTEMS DATENBANKSYSTEME 1 (INF 3131) Torsten Grust Universität Tübingen Winter 2017/18 1 DATABASE DESIGN Given a particular mini-world, almost always there will be
More informationQuerying Data with Transact SQL
Course 20761A: Querying Data with Transact SQL Course details Course Outline Module 1: Introduction to Microsoft SQL Server 2016 This module introduces SQL Server, the versions of SQL Server, including
More informationPHANTOM TYPES AND SUBTYPING
PHANTOM TYPES AND SUBTYPING Matthew Fluet and Riccardo Pucella Department of Computer Science Cornell University ßfluet,riccardoÐ@cs.cornell.edu Abstract We investigate a technique from the literature,
More informationTheorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214
Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in
More informationQUERY OPTIMIZATION E Jayant Haritsa Computer Science and Automation Indian Institute of Science. JAN 2014 Slide 1 QUERY OPTIMIZATION
E0 261 Jayant Haritsa Computer Science and Automation Indian Institute of Science JAN 2014 Slide 1 Database Engines Main Components Query Processing Transaction Processing Access Methods JAN 2014 Slide
More informationJoin (SQL) - Wikipedia, the free encyclopedia
페이지 1 / 7 Sample tables All subsequent explanations on join types in this article make use of the following two tables. The rows in these tables serve to illustrate the effect of different types of joins
More informationA Modality for Recursion
A Modality for Recursion (Technical Report) March 31, 2001 Hiroshi Nakano Ryukoku University, Japan nakano@mathryukokuacjp Abstract We propose a modal logic that enables us to handle self-referential formulae,
More informationCST-402(T): Language Processors
CST-402(T): Language Processors Course Outcomes: On successful completion of the course, students will be able to: 1. Exhibit role of various phases of compilation, with understanding of types of grammars
More informationIntroduction to Compiler Design
Introduction to Compiler Design Lecture 1 Chapters 1 and 2 Robb T. Koether Hampden-Sydney College Wed, Jan 14, 2015 Robb T. Koether (Hampden-Sydney College) Introduction to Compiler Design Wed, Jan 14,
More informationTorben./Egidius Mogensen. Introduction. to Compiler Design. ^ Springer
Torben./Egidius Mogensen Introduction to Compiler Design ^ Springer Contents 1 Lexical Analysis 1 1.1 Regular Expressions 2 1.1.1 Shorthands 4 1.1.2 Examples 5 1.2 Nondeterministic Finite Automata 6 1.3
More informationCPSC 310: Database Systems / CSPC 603: Database Systems and Applications Exam 2 November 16, 2005
CPSC 310: Database Systems / CSPC 603: Database Systems and Applications Exam 2 November 16, 2005 Name: Instructions: 1. This is a closed book exam. Do not use any notes or books, other than your two 8.5-by-11
More informationAlternatives for semantic processing
Semantic Processing Copyright c 2000 by Antony L. Hosking. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies
More informationCOSC252: Programming Languages: Semantic Specification. Jeremy Bolton, PhD Adjunct Professor
COSC252: Programming Languages: Semantic Specification Jeremy Bolton, PhD Adjunct Professor Outline I. What happens after syntactic analysis (parsing)? II. Attribute Grammars: bridging the gap III. Semantic
More informationQuery Processing: an Overview. Query Processing in a Nutshell. .. CSC 468 DBMS Implementation Alexander Dekhtyar.. QUERY. Parser.
.. CSC 468 DBMS Implementation Alexander Dekhtyar.. Query Processing: an Overview Query Processing in a Nutshell QUERY Parser Preprocessor Logical Query plan generator Logical query plan Query rewriter
More informationHorizontal Aggregations for Mining Relational Databases
Horizontal Aggregations for Mining Relational Databases Dontu.Jagannadh, T.Gayathri, M.V.S.S Nagendranadh. Department of CSE Sasi Institute of Technology And Engineering,Tadepalligudem, Andhrapradesh,
More informationVIVA QUESTIONS WITH ANSWERS
VIVA QUESTIONS WITH ANSWERS 1. What is a compiler? A compiler is a program that reads a program written in one language the source language and translates it into an equivalent program in another language-the
More informationCompiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors
Compiler Design Subject Code: 6CS63/06IS662 Part A UNIT 1 Chapter 1 1. Introduction 1.1 Language Processors A compiler is a program that can read a program in one language (source language) and translate
More information5. Semantic Analysis!
5. Semantic Analysis! Prof. O. Nierstrasz! Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.! http://www.cs.ucla.edu/~palsberg/! http://www.cs.purdue.edu/homes/hosking/!
More informationJavaCC Parser. The Compilation Task. Automated? JavaCC Parser
JavaCC Parser The Compilation Task Input character stream Lexer stream Parser Abstract Syntax Tree Analyser Annotated AST Code Generator Code CC&P 2003 1 CC&P 2003 2 Automated? JavaCC Parser The initial
More informationCS 415 Midterm Exam Spring SOLUTION
CS 415 Midterm Exam Spring 2005 - SOLUTION Name Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you
More informationCPSC 310: Database Systems / CSPC 603: Database Systems and Applications Final Exam Fall 2005
CPSC 310: Database Systems / CSPC 603: Database Systems and Applications Final Exam Fall 2005 Name: Instructions: 1. This is a closed book exam. Do not use any notes or books, other than your three 8.5-by-11
More informationCompiler Design (40-414)
Compiler Design (40-414) Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007 Evaluation: Midterm Exam 35% Final Exam 35% Assignments and Quizzes 10% Project
More informationControl-Flow Graph and. Local Optimizations
Control-Flow Graph and - Part 2 Department of Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of the Lecture What is
More informationCOMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou
COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Any questions about the syllabus?! Course Material available at www.cs.unic.ac.cy/ioanna! Next time reading assignment [ALSU07]
More informationCOSC 404 Database System Implementation. Query Optimization. Dr. Ramon Lawrence University of British Columbia Okanagan
COSC 404 Database System Implementation Query Optimization Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Query Optimization Overview COSC 404 - Dr. Ramon Lawrence The
More informationParsing. Zhenjiang Hu. May 31, June 7, June 14, All Right Reserved. National Institute of Informatics
National Institute of Informatics May 31, June 7, June 14, 2010 All Right Reserved. Outline I 1 Parser Type 2 Monad Parser Monad 3 Derived Primitives 4 5 6 Outline Parser Type 1 Parser Type 2 3 4 5 6 What
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Context Free Grammars and Parsing 1 Recall: Architecture of Compilers, Interpreters Source Parser Static Analyzer Intermediate Representation Front End Back
More informationSection A. A grammar that produces more than one parse tree for some sentences is said to be ambiguous.
Section A 1. What do you meant by parser and its types? A parser for grammar G is a program that takes as input a string w and produces as output either a parse tree for w, if w is a sentence of G, or
More informationCMSC 330: Organization of Programming Languages. Context Free Grammars
CMSC 330: Organization of Programming Languages Context Free Grammars 1 Architecture of Compilers, Interpreters Source Analyzer Optimizer Code Generator Abstract Syntax Tree Front End Back End Compiler
More informationIntroduction. 1. Introduction. Overview Query Processing Overview Query Optimization Overview Query Execution 3 / 591
1. Introduction Overview Query Processing Overview Query Optimization Overview Query Execution 3 / 591 Query Processing Reason for Query Optimization query languages like SQL are declarative query specifies
More informationChapter 2 A Quick Tour
Chapter 2 A Quick Tour 2.1 The Compiler Toolchain A compiler is one component in a toolchain of programs used to create executables from source code. Typically, when you invoke a single command to compile
More informationCS 2210 Sample Midterm. 1. Determine if each of the following claims is true (T) or false (F).
CS 2210 Sample Midterm 1. Determine if each of the following claims is true (T) or false (F). F A language consists of a set of strings, its grammar structure, and a set of operations. (Note: a language
More information(Refer Slide Time: 4:00)
Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional
More informationPolls on Piazza. Open for 2 days Outline today: Next time: "witnesses" (traditionally students find this topic the most difficult)
L04: SQL 124 Announcements! Polls on Piazza. Open for 2 days Outline today: - practicing more joins and specifying key and FK constraints - nested queries Next time: "witnesses" (traditionally students
More information