ECE570 Lecture 6: Rewrite Systems

Σχετικά έγγραφα
Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός

The Simply Typed Lambda Calculus

C.S. 430 Assignment 6, Sample Solutions

Numerical Methods for Civil Engineers. Lecture 10 Ordinary Differential Equations. Ordinary Differential Equations. d x dx.

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

HY340, 2009 Α. Σαββίδης Slide 2 / 143. HY340, 2009 Α. Σαββίδης Slide 3 / 143. HY340, 2009 Α. Σαββίδης Slide 4 / 143

ibemo Kazakhstan Republic of Kazakhstan, West Kazakhstan Oblast, Aksai, Pramzone, BKKS office complex Phone: ; Fax:

Η γλώσσα ML σε βάθος. Γλώσσες Προγραμματισμού Ι. Διδάσκοντες: Νικόλαος Παπασπύρου, Κωστής Σαγώνας

Εισαγωγή στη Γλώσσα ML. Juan Miró

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Τι σημαίνουν οι τύποι συναρτήσεων στην ML. Παράδειγμα επισημειώσεων τύπων στην ML. Επισημειώσεις τύπων (type annotations) f : A B σημαίνει:

Teaching and Designing Microarchitecture. in Racket Jay McCarthy UMass Lowell & PLT

Τι σηµαίνουν οι τύποι συναρτήσεων στην ML. Παράδειγµα επισηµειώσεων τύπων στην ML. Επισηµειώσεις τύπων (type annotations) Σύνταξη ταιριάσµατος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

D Alembert s Solution to the Wave Equation

Lecture 2. Soundness and completeness of propositional logic

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications:

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Proofs on expressing nested GR(1) properties in GR(1)

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Συναρτησιακός Προγραμματισμός 2008 Λύσεις στο Δεύτερο Φύλλο Ασκήσεων

Η γλώσσα ML σε βάθος. Τι σημαίνουν οι τύποι συναρτήσεων στην ML. Παράδειγμα επισημειώσεων τύπων στην ML. Επισημειώσεις τύπων (type annotations)

Εβδομαδιαίο Εκπαιδευτικό Πρόγραμμα

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 }

( ) ( ) University of Hertfordshire - IST Studies School of Computer Science COMPUTER SYSTEMS ARCHITECTURE 1

Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Η γλώσσα ML σε βάθος. Joan Miró, El Carnaval del Arlequín, Κωστής Σαγώνας Νίκος Παπασπύρου

Lecture 21: Scattering and FGR

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Παρασκευή 1 Νοεμβρίου 2013 Ασκηση 1. Λύση. Παρατήρηση. Ασκηση 2. Λύση.

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

Sequent Calculi for the Modal µ-calculus over S5. Luca Alberucci, University of Berne. Logic Colloquium Berne, July 4th 2008

Υπηρεσίες Χαρτών Ιστού WMS. Ανάλυση των δυνατοτήτων και εφαρμογή στον ελληνικό χώρο.

Scratch Διδακτική του Προγραμματισμού. Παλαιγεωργίου Γιώργος

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Εισαγωγή στη Γλώσσα ML

10.7 Performance of Second-Order System (Unit Step Response)

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Ηλεκτρονικοί Υπολογιστές

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

ιαφάνειες παρουσίασης #6

ιαφάνειες παρουσίασης #11

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

ES440/ES911: CFD. Chapter 5. Solution of Linear Equation Systems

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Αντικειμενοστρεφής Προγραμματισμός

ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Εισαγωγή στα Λειτουργικά Συστήματα

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Homework 8 Model Solution Section

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

ECE 308 SIGNALS AND SYSTEMS FALL 2017 Answers to selected problems on prior years examinations

Λογικές εκφράσεις και μεταβλητές

ΚΥΡΙΑ ΜΟΝΤΕΛΑ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΠΛ131 Αρχές Προγραμματισμού

1 String with massive end-points

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Foundations of Computer Science ENGR 3520 Fall 2013 Thursday, Nov 21, 2013

CRASH COURSE IN PRECALCULUS

Second Order Partial Differential Equations

24ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πληροφορική ΙΙ Θεματική Ενότητα 11

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

SOLUTIONS TO MATH38181 EXTREME VALUES AND FINANCIAL RISK EXAM

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

ECE Spring Prof. David R. Jackson ECE Dept. Notes 2

Δομές ελέγχου ροής προγράμματος

Answer sheet: Third Midterm for Math 2339

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

Computing. Νοέμβριος Έκδοση 1.0

Ευφυής Προγραμματισμός

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

λρ-calculus 1. each λ-variable is a λρ-term, called an atom or atomic term; 2. if M and N are λρ-term then (MN) is a λρ-term called an application;

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

2. ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ-ΟΡΙΣΜΟΙ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Section 8.3 Trigonometric Equations

HY150a Φροντιστήριο 3 24/11/2017

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Section 7.6 Double and Half Angle Formulas

Υπολογισμός - Εντολές Ελέγχου

Θέµατα εξετάσεων µε απαντήσεις

Statistical Inference I Locally most powerful tests

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κανονική εξέταση, Φεβρουάριος 2005

Ορισμός Συναρτήσεων στην ΜL

Review 4n.1: Vowel stems of the third declension: πόλις, πρέσβυς

Transcript:

ECE570 Lecture 6: Rewrite Systems Jeffrey Mark Siskind School of Electrical and Computer Engineering Fall 2017 Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 1 / 18

Simplification Rules (Math Style) +e e e + 0 e 0 + e e e 1 e e 1 e 2 e 1 + ( e 2 ) e 0 0 0 e 0 e 1 e 1 e e 1 e e 1 e 1 e 2 e 1 1 e 2 e 1 e e e 0.5 Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 2 / 18

Simplification Rules (Scheme Style) I (+) 0 (+ e) e (+ e 0) e (+ 0 e) e (+ e 1 e 2 e 3...) (+ e 1 (+ e 2 (+ e 3...))) (- e) (* -1 e) (- e 1 e 2 ) (+ e 1 (- e 2 )) (- e 1 e 2 e 3...) (- e 1 (+ e 2 e 3...)) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 3 / 18

Simplification Rules (Scheme Style) II (*) 1 (* e) e (* e 0) 0 (* 0 e) 0 (* e 1) e (* 1 e) e (* e 1 e 2 e 3...) (* e 1 (* e 2 (* e 3...))) (/ e) (expt e -1) (/ e 1 e 2 ) (* e 1 (/ e 2 )) (/ e 1 e 2 e 3...) (/ e 1 (* e 2 e 3...)) (expt e 1) e (sqrt e) (expt e 0.5) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 4 / 18

Derivative Rules (Math Style) d dx x 1 d dx e 1 + e 2 d dx e 1 + d dx e 2 d dx e 1 e 2 e 2 d dx e 1 + e 1 d dx e 2 d dx en n e n 1 d dx e d dx e 0 Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 5 / 18

Derivative Rules (Scheme Style) (d/dx x) 1 (d/dx (+ e 1 e 2 )) (+ (d/dx e 1 ) (d/dx e 2 )) (d/dx (* e 1 e 2 )) (+ (* e 2 (d/dx e 1 )) (* e 1 (d/dx e 2 ))) (d/dx (expt e 1 e 2 )) (* e 2 (expt e 1 (- e 2 1)) (d/dx e 1 )) (d/dx e) 0 Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 6 / 18

Boolean Simplification Rules (Math Style) false true true false Φ Φ Φ true Φ true Φ Φ Φ false false false Φ false Φ Φ Φ Φ Φ false Φ Φ false Φ true true true Φ true Φ false Φ false Φ Φ Φ Φ Φ Φ Φ true Φ Φ true Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 7 / 18

Simplification Rules I (define *simplify-rules* (((+) - -> 0) ((+ e) - -> e) ((+ e 0) - -> e) ((+ 0 e) - -> e) ((+ e1 e2 e3 e...) - -> (+ e1 (+ e2 (+ e3 e...)))) ((- e) - -> (* -1 e)) ((- e1 e2) - -> (+ e1 (- e2))) ((- e1 e2 e3 e...) - -> (- e1 (+ e2 e3 e...))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 8 / 18

Simplification Rules II ((*) - -> 1) ((* e) - -> e) ((* e 0) - -> 0) ((* 0 e) - -> 0) ((* e 1) - -> e) ((* 1 e) - -> e) ((* e1 e2 e3 e...) - -> (* e1 (* e2 (* e3 e...)))) ((/ e) - -> (expt e -1)) ((/ e1 e2) - -> (* e1 (/ e2))) ((/ e1 e2 e3 e...) - -> (/ e1 (* e2 e3 e...))) ((expt e 1) - -> e) ((sqrt e) - -> (expt e 0.5)))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 9 / 18

A Rewrite System I (define (pattern-variable? pattern) (memq pattern (e e1 e2 e3))) (define (pattern-list-variable? pattern) (memq pattern (e...))) (define (lookup-pattern-variable pattern-variable bindings) (cond ((null? bindings) (panic "Pattern variable not found")) ((eq? pattern-variable (first (first bindings))) (second (first bindings))) (else (lookup-pattern-variable pattern-variable (rest bindings))))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 10 / 18

A Rewrite System II (define (match pattern expression) (cond ((pattern-variable? pattern) (list (list pattern expression))) ((pattern-list-variable? pattern) (panic "Pattern list variable not at end of list")) ((and (list? pattern) (= (length pattern) 1) (pattern-list-variable? (first pattern))) (list (list (first pattern) expression))) ((and (list? pattern) (not (null? pattern))) (if (and (list? expression) (not (null? expression))) (append (match (first pattern) (first expression)) (match (rest pattern) (rest expression))) (list #f))) ((equal? pattern expression) ()) (else (list #f)))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 11 / 18

A Rewrite System III (define (instantiate pattern bindings) (cond ((pattern-variable? pattern) (lookup-pattern-variable pattern bindings)) ((pattern-list-variable? pattern) (panic "Pattern list variable not at end of list")) ((and (list? pattern) (= (length pattern) 1) (pattern-list-variable? (first pattern))) (lookup-pattern-variable (first pattern) bindings)) ((and (list? pattern) (not (null? pattern))) (cons (instantiate (first pattern) bindings) (instantiate (rest pattern) bindings))) (else pattern))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 12 / 18

A Rewrite System IV (define (applicable? rule expression) (not (memq #f (match (first rule) expression)))) (define (first-applicable-rule rules expression) (cond ((null? rules) #f) ((applicable? (first rules) expression) (first rules)) (else (first-applicable-rule (rest rules) expression)))) (define (apply-rule rule expression) (instantiate (third rule) (match (first rule) expression))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 13 / 18

A Rewrite System V (define (apply-rules rules expression) (let ((rule (first-applicable-rule rules expression))) (if rule (rewrite rules (apply-rule rule expression)) expression))) (define (rewrite rules expression) (if (list? expression) (apply-rules rules (map (lambda (expression) (rewrite rules expression)) expression)) expression)) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 14 / 18

A Simplifier for Arithmetic Expressions I(d) (define (simplify e) (rewrite *simplify-rules* e)) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 15 / 18

Differentiation Rules (define *derivative-rules* (((derivative x) - -> 1) ((derivative (+ e1 e2)) - -> (+ (derivative e1) (derivative e2))) ((derivative (* e1 e2)) - -> (+ (* e1 (derivative e2)) (* e2 (derivative e1)))) ((derivative (expt e1 e2)) - -> (* e2 (expt e1 (- e2 1)) (derivative e1))) ((derivative e) - -> 0))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 16 / 18

A Symbolic Differentiator II(d) (define (derivative e) (define (derivative e) (rewrite *derivative-rules* e)) (simplify (derivative (derivative,(simplify e))))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 17 / 18

A Symbolic Differentiator II(e) (define *rules* (append *simplify-rules* *derivative-rules*)) (define (simplify e) (rewrite *rules* e)) (define (derivative e) (simplify (derivative,e))) Siskind (Purdue ECE) ECE570 Lecture 6: Rewrite Systems Fall 2017 18 / 18