Approximate Program Synthesis
|
|
- August Carter
- 5 years ago
- Views:
Transcription
1 Approximate Program Synthesis James Bornholt Emina Torlak Luis Ceze Dan Grossman University of Washington
2 Writing approximate programs is hard Precise Implementation
3 Writing approximate programs is hard Precise Implementation
4 Writing approximate programs is hard Precise Implementation Desired Quality
5 Writing approximate programs is hard Precise Implementation Desired Quality Approximate Compiler ACCEPT, Chisel, iact, ExpAX,
6 Writing approximate programs is hard Precise Implementation Desired Quality Approximate Compiler ACCEPT, Chisel, iact, ExpAX, Approximate Program
7 Writing approximate programs is hard program annotations specific approximation opportunities Precise Implementation Desired Quality Approximate Compiler ACCEPT, Chisel, iact, ExpAX, Approximate Program target language quality metric global optimization
8 Synthesis: write programs automatically Programs Semantics
9 Synthesis: write programs automatically Target Behavior f(x) =4x +1 Programs Semantics
10 Synthesis: write programs automatically Target Behavior f(x) =4x +1 Programs Semantics
11 Synthesis: write programs automatically 4*x + 1 Target Behavior f(x) =4x +1 Programs Semantics
12 Synthesis: write programs automatically 4*x + 1 Target Behavior f(x) =4x +1 Programs Semantics
13 Synthesis: write programs automatically 4*x + 1 (x<<2) + 1 Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
14 Synthesizing approximate programs 4*x + 1 (x<<2) + 1 Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
15 Synthesizing approximate programs 4*x + 1 (x<<2) + 1 Approximate Behavior Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
16 Synthesizing approximate programs 4*x + 1 (x<<2) + 1 x<<2 Approximate Behavior Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
17 Synthesizing approximate programs 4*x + 1 (x<<2) + 1 x<<2 apple =4 apple = 10 apple =6 apple =8 Approximate Behavior Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
18 Synthesizing approximate programs 4*x + 1 (x<<2) + 1 x<<2 apple =4 apple = 10 apple =6 apple =8 Approximate Behavior Target Behavior f(x) =4x +1 x + x + x + x + 1 Programs Semantics
19 Synthesis automates approximation program annotations specific approximation opportunities Precise Implementation Desired Quality Approximate Compiler ACCEPT, Chisel, iact, ExpAX, Approximate Program target language quality metric global optimization
20 Synthesis automates approximation program annotations specific approximation opportunities Precise Implementation Desired Quality quality metric Approximate Program Synthesis global optimization Approximate Program target language
21 Synthesis automates approximation Precise Implementation Desired Quality Approximate Program Synthesis program annotations specific approximation opportunities global optimization Approximate Program target language quality metric
22 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel 8p, c. dist(p, c) f(p, c) < 50% Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
23 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel Off-the-shelf synthesizers Symbolic Stochastic Brute-force 8p, c. dist(p, c) f(p, c) < 50% Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
24 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel Off-the-shelf synthesizers Symbolic Stochastic Brute-force float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } assert 8p, c. dist(p, c) f(p, c) < 50% Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
25 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel Off-the-shelf synthesizers Symbolic Stochastic Brute-force float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
26 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel Off-the-shelf synthesizers Symbolic Stochastic Brute-force float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
27 Existing synthesizers don t scale enough Approximate benchmarks fft kmeans inversek2j sobel Off-the-shelf synthesizers Symbolic Stochastic Brute-force float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized Alur et al. Syntax-Guided Synthesis. FMCAD 2013.
28 Existing synthesizers don t scale enough float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> Programs assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
29 Existing synthesizers don t scale enough float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> Programs assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
30 Existing synthesizers don t scale enough programs Programs float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
31 Use reference programs to guide synthesis programs Programs float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
32 Use reference programs to guide synthesis programs Programs float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
33 Use reference programs to guide synthesis programs Programs float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
34 Use reference programs to guide synthesis programs Programs float dist(float p[3], float c[3]) { float r = 0; r += (p[0] - c[0])*(p[0] - c[0]); r += (p[1] - c[1])*(p[1] - c[1]); r += (p[2] - c[2])*(p[2] - c[2]); float ret = sqrt(r); return ret; } float f(float p[3], float c[3]) {?? } + - * / & ^ << >> assert 8p, c. dist(p, c) f(p, c) < 50% Reference program Program being synthesized
35 Synthesis produces good approximations Spec: < 50% average error Benchmark Speedup Error fft s % fft c % dist % sobel x % sobel y % inversek2j % inversek2j %
36 Synthesis produces good approximations Spec: < 50% average error Benchmark Speedup Error fft s % fft c % dist % sobel x % sobel y % inversek2j % inversek2j % Missed compiler optimisation optimization
37 Synthesis produces clever approximations float dist_approx(int a[3], int b[3]) { int c1 = abs(b[0] - a[0]); int c2 = abs(b[1] - a[1]); int c3 = abs(a[2] - b[2]); int c4 = c1 c2; int c5 = abs(c3 > c4? c3 : c4); return (float)c5; } 3D Euclidean distance 1.6 faster, 14.9% error
38 Thanks! Precise Implementation Desired Quality Approximate Program Synthesis Approximate Program
Optimizing Synthesis with Metasketches
Optimizing Synthesis Artifact with Metasketches * POPL * Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * James Bornholt Emina Torlak Dan Grossman Luis Ceze University of Washington
More informationScaling Program Synthesis by Exploiting Existing Code
Scaling Program Synthesis by Exploiting Existing Code James Bornholt Emina Torlak University of Washington Synthesis: write programs automatically Syntax Semantics Synthesis: write programs automatically
More informationApproximate Overview of Approximate Computing
Approximate Overview of Approximate Computing Luis Ceze University of Washington PL Architecture With thanks to many colleagues from whom I stole slides: Adrian Sampson, Hadi Esmaeilzadeh, Karin Strauss,
More informationCompilation and Hardware Support for Approximate Acceleration
Compilation and Hardware Support for Approximate Acceleration Thierry Moreau Adrian Sampson Andre Baixo Mark Wyse Ben Ransford Jacob Nelson Luis Ceze Mark Oskin University of Washington Abstract Approximate
More informationSynthesis-Aided Compiler for Low-Power Spatial Architectures
Synthesis-Aided Compiler for Low-Power Spatial Architectures Phitchaya Mangpo Phothilimthana, Tikhon Jelvis, Rohin Shah, Nishant Totla, Sarah Chasins, and Ras Bodik 2 unusual ISA small memory narrow bitwidth
More informationLuis Ceze. sa pa. areas: computer architecture, OS, programming languages. Safe MultiProcessing Architectures at the University of Washington
Luis Ceze areas: computer architecture, OS, programming languages sa pa Safe MultiProcessing Architectures at the University of Washington Safe and General Energy-Aware Programming with Disciplined Approximation
More informationMELD: Merging Execution- and Language-level Determinism. Joe Devietti, Dan Grossman, Luis Ceze University of Washington
MELD: Merging Execution- and Language-level Determinism Joe Devietti, Dan Grossman, Luis Ceze University of Washington CoreDet results overhead normalized to nondet 800% 600% 400% 200% 0% 2 4 8 2 4 8 2
More informationIntroduction to Sketching
Introduction to Sketching IAP 2008 Armando Solar-Lezama What is sketching? A program synthesis system - generates small fragments of code - checks their validity against a specification A programming aid
More informationCMSC 330: Organization of Programming Languages. OCaml Expressions and Functions
CMSC 330: Organization of Programming Languages OCaml Expressions and Functions CMSC330 Spring 2018 1 Lecture Presentation Style Our focus: semantics and idioms for OCaml Semantics is what the language
More informationCourse Overview CS294: Program Synthesis for Everyone
Course Overview CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley The name of the course this CS294 topics course has been listed
More informationSynthesis and Verification for All Emina Torlak
Synthesis and Verification for All Emina Torlak University of Washington emina@cs.washington.edu homes.cs.washington.edu/~emina/ Emina Racket Racket a programmable programming language Racket a programmable
More informationSynthesizing Memory Models
Synthesizing Memory Models from Framework Sketches and Litmus Tests James Bornholt Emina Torlak University of Washington Memory consistency models define memory reordering behaviors on mul>processors Memory
More informationEECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley
EECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley Solving SyGuS Is SyGuS same as solving SMT formulas with
More informationHyperkernel: Push-Button Verification of an OS Kernel
Hyperkernel: Push-Button Verification of an OS Kernel Luke Nelson, Helgi Sigurbjarnarson, Kaiyuan Zhang, Dylan Johnson, James Bornholt, Emina Torlak, and Xi Wang The OS Kernel is a critical component Essential
More informationCSC410 Program Synthesis AZADEH FARZAN FALL 2017
CSC410 Program Synthesis AZADEH FARZAN FALL 2017 The idea Produce small code fragments that satisfy the given specification As a programming aid: It helps you write programs. The insight is yours, the
More informationUsing Deep Learning to Generate Human-like Code
Using Deep Learning to Generate Human-like Code Synthesizing Benchmarks for Predictive Modeling Chris Cummins Zheng Wang Pavlos Petoumenos Hugh Leather achine learning for compilers y = f(x) Optimisations
More informationApproximate Computing on Programmable SoCs via Neural Acceleration
University of Washington Computer Science and Engineering Technical Report UW-CSE-14-05-01 Approximate Computing on Programmable SoCs via Neural Acceleration Thierry Moreau Jacob Nelson Adrian Sampson
More informationDesign of Experiments - Terminology
Design of Experiments - Terminology Response variable Measured output value E.g. total execution time Factors Input variables that can be changed E.g. cache size, clock rate, bytes transmitted Levels Specific
More informationOptimizing Synthesis with Metasketches
Optimizing Synthesis with Metasketches Artifact James Bornholt Emina Torlak Dan Grossman Luis Ceze University of Washington, USA {bornholt, emina, djg, luisceze}@cs.washington.edu * POPL * Consistent *
More informationSynthesizing Benchmarks for Predictive Modeling.
Synthesizing Benchmarks for Predictive Modeling http://chriscummins.cc/cgo17 Chris Cummins University of Edinburgh Pavlos Petoumenos University of Edinburgh Zheng Wang Lancaster University Hugh Leather
More informationSyntax-Guided Program Synthesis. Rajeev Alur. University of Pennsylvania
Syntax-Guided Program Synthesis Rajeev Alur University of Pennsylvania 1 Goal: Programming computers easier than communicating with people Can programming be liberated, period. David Harel, IEEE Computer,
More informationSyntax-Guided Program Synthesis. Rajeev Alur
Syntax-Guided Program Synthesis Rajeev Alur University of Pennsylvania 1 Goal: Programming computers easier than communicating with people Can programming be liberated, period. David Harel, IEEE Computer,
More informationLanguage to Specify Syntax-Guided Synthesis Problems
Language to Specify Syntax-Guided Synthesis Problems Mukund Raghothaman Abhishek Udupa Saturday 25 th January, 2014 1 Introduction We present a language to specify syntax guided synthesis (SyGuS) problems.
More information1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8]
Code No: R05311201 Set No. 1 1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8] 2. Compute the FIRST and FOLLOW sets of each
More informationData Structure Synthesis. Calvin Loncaric Emina Torlak Michael D. Ernst
Data Structure Synthesis Calvin Loncaric Emina Torlak Michael D. Ernst Data structures are everywhere 2 Data structures are everywhere 2 Data structures are everywhere 2 Data structures are everywhere
More informationEmbedded System Design
Modeling, Synthesis, Verification Daniel D. Gajski, Samar Abdi, Andreas Gerstlauer, Gunar Schirner 9/29/2011 Outline System design trends Model-based synthesis Transaction level model generation Application
More information[0569] p 0318 garbage
A Pointer is a variable which contains the address of another variable. Declaration syntax: Pointer_type *pointer_name; This declaration will create a pointer of the pointer_name which will point to the
More informationHardware Software Co-Design: Not Just a Cliché
Hardware Software Co-Design: Not Just a Cliché Adrian Sampson James Bornholt Luis Ceze University of Washington SNAPL 2015 sa pa time immemorial 2005 2015 (not to scale) free lunch time immemorial 2005
More informationFCUDA: Enabling Efficient Compilation of CUDA Kernels onto
FCUDA: Enabling Efficient Compilation of CUDA Kernels onto FPGAs October 13, 2009 Overview Presenting: Alex Papakonstantinou, Karthik Gururaj, John Stratton, Jason Cong, Deming Chen, Wen-mei Hwu. FCUDA:
More informationArchitecture Support for Disciplined Approximate Programming
Architecture Support for Disciplined Approximate Programming Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, Doug Burger University of Washington, Microsoft Research Presented by: Lucy Jiang, Cristina Garbacea
More informationCSE507. Practical Applications of SAT. Computer-Aided Reasoning for Software. Emina Torlak
Computer-Aided Reasoning for Software CSE507 Practical Applications of SAT courses.cs.washington.edu/courses/cse507/18sp/ Emina Torlak emina@cs.washington.edu Today Past 2 lectures The theory and mechanics
More informationarxiv: v1 [cs.pl] 22 May 2014
Language to Specify Syntax-Guided Synthesis Problems Mukund Raghothaman Abhishek Udupa Friday 7 th December, 2018 arxiv:1405.5590v1 [cs.pl] 22 May 2014 Abstract We present a language to specify syntax
More informationPush-Button Verification of File Systems
1 / 24 Push-Button Verification of File Systems via Crash Refinement Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, Xi Wang University of Washington 2 / 24 File systems are hard to get right Complex
More informationProgram Synthesis for Forth Forth Day 2012
Program Synthesis for Forth Forth Day 2012 Computer Science UC Berkeley Ras Bodik Mangpo Phitchaya Phothilimthana Tikhon Jelvis Rohin Shah Synthesis with sketches Extend your language with two constructs
More informationBasic concepts. Chapter Toplevel loop
Chapter 3 Basic concepts We examine in this chapter some fundamental concepts which we will use and study in the following chapters. Some of them are specific to the interface with the Caml language (toplevel,
More informationSyntax-Guided Synthesis. Rajeev Alur. University of Pennsylvania
Syntax-Guided Synthesis Rajeev Alur University of Pennsylvania 1 Program Verification Specification S Program P Verifier Proof of correctness or Witness of a bug 2 Classical Program Synthesis Specification
More informationCSE P 501 Exam 8/5/04 Sample Solution. 1. (10 points) Write a regular expression or regular expressions that generate the following sets of strings.
1. (10 points) Write a regular ression or regular ressions that generate the following sets of strings. (a) (5 points) All strings containing a s, b s, and c s with at least one a and at least one b. [abc]*a[abc]*b[abc]*
More informationFCUDA: Enabling Efficient Compilation of CUDA Kernels onto
FCUDA: Enabling Efficient Compilation of CUDA Kernels onto FPGAs October 13, 2009 Overview Presenting: Alex Papakonstantinou, Karthik Gururaj, John Stratton, Jason Cong, Deming Chen, Wen-mei Hwu. FCUDA:
More informationCOMP1730/COMP6730 Programming for Scientists. Testing and Debugging.
COMP1730/COMP6730 Programming for Scientists Testing and Debugging. Overview * Testing * Debugging * Defensive Programming Overview of testing * There are many different types of testing - load testing,
More informationProgram Synthesis for Forth Forth Day 2012
Program Synthesis for Forth Forth Day 2012 Computer Science UC Berkeley Ras Bodik Mangpo Phitchaya Phothilimthana Tikhon Jelvis Rohin Shah Synthesis with sketches Extend your language with two constructs
More informationStructure of a compiler. More detailed overview of compiler front end. Today we ll take a quick look at typical parts of a compiler.
More detailed overview of compiler front end Structure of a compiler Today we ll take a quick look at typical parts of a compiler. This is to give a feeling for the overall structure. source program lexical
More informationPush-Button Verification of File Systems
1 / 25 Push-Button Verification of File Systems via Crash Refinement Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, Xi Wang University of Washington October 26, 2016 2 / 25 File systems are hard
More informationCSE 141 Summer 2016 Homework 2
CSE 141 Summer 2016 Homework 2 PID: Name: 1. A matrix multiplication program can spend 10% of its execution time in reading inputs from a disk, 10% of its execution time in parsing and creating arrays
More informationPLDI: U: Type Assisted Synthesis of Recursive Transformers on Algebraic Datatypes
PLDI: U: Type Assisted Synthesis of Recursive Transformers on Algebraic Datatypes Jeevana Priya Inala MIT jinala@mit.edu Advisor: Armando Solar-Lezama 1. Problem and Motivation As programming languages
More informationc Copyright 2014 Michael F. Ringenburg
c Copyright 2014 Michael F. Ringenburg Dynamic Analyses of Result Quality in Energy-Aware Approximate Programs Michael F. Ringenburg A dissertation submitted in partial fulfillment of the requirements
More informationAssertions, pre/postconditions
Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What
More informationGeneralized Data Structure Synthesis. Calvin Loncaric Michael D. Ernst Emina Torlak
Generalized Data Structure Synthesis Calvin Loncaric Michael D. Ernst Emina Torlak 1 Stateful modules are much more complicated than their specifications Implementation Specification 1992 Lines of code
More informationCourse web site: teaching/courses/car. Piazza discussion forum:
Announcements Course web site: http://www.inf.ed.ac.uk/ teaching/courses/car Lecture slides Tutorial problems Courseworks Piazza discussion forum: http://piazza.com/ed.ac.uk/spring2018/car Tutorials start
More informationAbstractions and small languages in synthesis CS294: Program Synthesis for Everyone
Abstractions and small languages in synthesis CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Today Today: we describe why high-level
More information10/18/18. Outline. Semantic Analysis. Two types of semantic rules. Syntax vs. Semantics. Static Semantics. Static Semantics.
Outline Semantic Analysis In Text: Chapter 3 Static semantics Attribute grammars Dynamic semantics Operational semantics Denotational semantics N. Meng, S. Arthur 2 Syntax vs. Semantics Syntax concerns
More informationNeural Acceleration for General-Purpose Approximate Programs
2012 IEEE/ACM 45th Annual International Symposium on Microarchitecture Neural Acceleration for General-Purpose Approximate Programs Hadi Esmaeilzadeh Adrian Sampson Luis Ceze Doug Burger University of
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationChapter 4. Action Routines
Chapter 4 Action Routines Syntax and Semantics In general: Syntax form Semantics meaning In programming languages: Syntax part of the language definition that can be described via a context-free grammar
More informationRuntime Checking for Program Verification Systems
Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification
More informationSystem-On-Chip Architecture Modeling Style Guide
Center for Embedded Computer Systems University of California, Irvine System-On-Chip Architecture Modeling Style Guide Junyu Peng Andreas Gerstlauer Rainer Dömer Daniel D. Gajski Technical Report CECS-TR-04-22
More informationSemantic Software Adaptation Using Verified Lifting. Alvin Cheung
Semantic Software Adaptation Using Verified Lifting Alvin Cheung Primary Language During Career Grad student / Asst. Prof / Junior Researcher Associate Prof Senior Researcher Haskell / Python / C++ LaTex
More informationCopyright 2008 CS655 System Modeling and Analysis. Korea Advanced Institute of Science and Technology
The Spin Model Checker : Part I Copyright 2008 CS655 System Korea Advanced Institute of Science and Technology System Spec. In Promela Req. Spec. In LTL Overview of the Spin Architecture Spin Model pan.c
More informationEfficient floating point: software and hardware
Efficient floating point: software and hardware David Bindel Rajit Manohar CS and ECE Cornell University 17 Oct 2011 Why this talk? Isn t this a lecture for an intro NA class? Yes: IEEE 754-1985 is ubiquitous
More informationOut-of-Order Parallel Simulation of SystemC Models. G. Liu, T. Schmidt, R. Dömer (CECS) A. Dingankar, D. Kirkpatrick (Intel Corp.)
Out-of-Order Simulation of s using Intel MIC Architecture G. Liu, T. Schmidt, R. Dömer (CECS) A. Dingankar, D. Kirkpatrick (Intel Corp.) Speaker: Rainer Dömer doemer@uci.edu Center for Embedded Computer
More informationSolver Aided Reverse Engineering of Architectural Features
Solver Aided Reverse Engineering of Architectural Features Bill Zorn, Dan Grossman, Luis Ceze {billzorn, djg, luisceze}@cs.washington.edu Paul G. Allen School for Computer Science & Engineering University
More informationEE/CSCI 451: Parallel and Distributed Computation
EE/CSCI 451: Parallel and Distributed Computation Lecture #2 1/17/2017 Xuehai Qian xuehai.qian@usc.edu http://alchem.usc.edu/portal/xuehaiq.html University of Southern California 1 Outline Opportunities
More informationswitch case Logic Syntax Basics Functionality Rules Nested switch switch case Comp Sci 1570 Introduction to C++
Comp Sci 1570 Introduction to C++ Outline 1 Outline 1 Outline 1 switch ( e x p r e s s i o n ) { case c o n s t a n t 1 : group of statements 1; break ; case c o n s t a n t 2 : group of statements 2;
More informationAMCAT Automata Coding Sample Questions And Answers
1) Find the syntax error in the below code without modifying the logic. #include int main() float x = 1.1; switch (x) case 1: printf( Choice is 1 ); default: printf( Invalid choice ); return
More informationEmbedded System Design Modeling, Synthesis, Verification
Modeling, Synthesis, Verification Daniel D. Gajski, Samar Abdi, Andreas Gerstlauer, Gunar Schirner Chapter 4: System Synthesis Outline System design trends Model-based synthesis Transaction level model
More informationCOP5621 Exam 3 - Spring 2005
COP5621 Exam 3 - Spring 2005 Name: (Please print) Put the answers on these sheets. Use additional sheets when necessary. Show how you derived your answer when applicable (this is required for full cred
More informationYasuo Okabe. Hitoshi Murai. 1. Introduction. 2. Evaluation. Elapsed Time (sec) Number of Processors
Performance Evaluation of Large-scale Parallel Simulation Codes and Designing New Language Features on the (High Performance Fortran) Data-Parallel Programming Environment Project Representative Yasuo
More informationCS 4201 Compilers 2014/2015 Handout: Lab 1
CS 4201 Compilers 2014/2015 Handout: Lab 1 Lab Content: - What is compiler? - What is compilation? - Features of compiler - Compiler structure - Phases of compiler - Programs related to compilers - Some
More informationAxBench: A Benchmark Suite for Approximate Computing Across the System Stack
AxBench: A Benchmark Suite for Approximate Computing Across the System Stack Amir Yazdanbakhsh Divya Mahajan Pejman Lotfi-Kamran Hadi Esmaeilzadeh Alternative Computing Technologies (ACT) Lab School of
More information5. Syntax-Directed Definitions & Type Analysis
5. Syntax-Directed Definitions & Type Analysis Eva Rose Kristoffer Rose NYU Courant Institute Compiler Construction (CSCI-GA.2130-001) http://cs.nyu.edu/courses/spring15/csci-ga.2130-001/lecture-5.pdf
More informationPrinceton University Computer Science 217: Introduction to Programming Systems. Assembly Language: Function Calls
Princeton University Computer Science 217: Introduction to Programming Systems Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems x86-64 solutions Pertinent
More informationGNATprove a Spark2014 verifying compiler Florian Schanda, Altran UK
1 GNATprove a Spark2014 verifying compiler Florian Schanda, Altran UK Tool architecture User view Source gnatprove Verdict 2 Tool architecture More detailed view... Source Encoding CVC4 gnat2why gnatwhy3
More informationQuiz for Chapter 1 Computer Abstractions and Technology 3.10
Date: 3.10 Not all questions are of equal difficulty. Please review the entire quiz first and then budget your time carefully. Name: Course: 1. [15 points] Consider two different implementations, M1 and
More informationUNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568
UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Computer Architecture ECE 568 Sample Midterm I Questions Israel Koren ECE568/Koren Sample Midterm.1.1 1. The cost of a pipeline can
More informationReal Time Power Estimation and Thread Scheduling via Performance Counters. By Singh, Bhadauria, McKee
Real Time Power Estimation and Thread Scheduling via Performance Counters By Singh, Bhadauria, McKee Estimating Power Consumption Power Consumption is a highly important metric for developers Simple power
More informationApplications of Program analysis in Model-Based Design
Applications of Program analysis in Model-Based Design Prahlad Sampath (Prahlad.Sampath@mathworks.com) 2018 by The MathWorks, Inc., MATLAB, Simulink, Stateflow, are registered trademarks of The MathWorks,
More informationThe SMT-LIB 2 Standard: Overview and Proposed New Theories
1 / 23 The SMT-LIB 2 Standard: Overview and Proposed New Theories Philipp Rümmer Oxford University Computing Laboratory philr@comlab.ox.ac.uk Third Workshop on Formal and Automated Theorem Proving and
More informationC programming Lecture 2. Marina Krstic Marinkovic School of Mathematics Trinity College Dublin
C programming 5613 Lecture 2 Marina Krstic Marinkovic marina.marinkovic@cern.ch School of Mathematics Trinity College Dublin Marina Krstic Marinkovic 1 / 10 5613 - C programming Arrays Array: indexed sequence
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 informationReLoS. (known as RMRLS in the literature) Reversible Logic Synthesizer. Pallav Gupta James Donald August 27, 2007 Version 0.2
ReLoS (known as RMRLS in the literature) Reversible Logic Synthesizer Pallav Gupta James Donald August 27, 2007 Version 0.2 Abstract ReLoS is an integrated tool for synthesis, simulation, and test of reversible
More informationSynthesis using Variable Elimination
Synthesis using Variable Elimination Viktor Kuncak EPF Lausanne http://lara.epfl.ch/w/impro Implicit Programming at All Levels Opportunities for implicit programming in Development within an IDE InSynth
More informationType Inference Systems. Type Judgments. Deriving a Type Judgment. Deriving a Judgment. Hypothetical Type Judgments CS412/CS413
Type Inference Systems CS412/CS413 Introduction to Compilers Tim Teitelbaum Type inference systems define types for all legal programs in a language Type inference systems are to type-checking: As regular
More informationHigh-Level Information Interface
High-Level Information Interface Deliverable Report: SRC task 1875.001 - Jan 31, 2011 Task Title: Exploiting Synergy of Synthesis and Verification Task Leaders: Robert K. Brayton and Alan Mishchenko Univ.
More informationOn the Importance of Common Sense in Program Synthesis
On the Importance of Common Sense in Program Synthesis Hila Peleg, Technion The research leading to these results has received funding from the European Union's - Seventh Framework Programme (FP7) under
More informationSyntax-Directed Translation. Introduction
Syntax-Directed Translation Introduction Translation of languages guided by context-free grammars Attach attributes to the grammar symbols Values of the attributes are computed by semantic rules associated
More informationPart II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?
Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare
More informationCSE P 501 Exam 8/5/04
Name There are 7 questions worth a total of 65 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. You may refer to the following references: Course
More informationGrowing Solver-Aided Languages with ROSETTE
Growing Solver-Aided Languages with ROSETTE Emina Torlak & Rastislav Bodik U.C. Berkeley ExCAPE June 10, 2013 solver-aided domain-specific language Solver-aided DSL (SDSL) Noun 1. A high-level language
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationSimBench. A Portable Benchmarking Methodology for Full-System Simulators. Harry Wagstaff Bruno Bodin Tom Spink Björn Franke
SimBench A Portable Benchmarking Methodology for Full-System Simulators Harry Wagstaff Bruno Bodin Tom Spink Björn Franke Institute for Computing Systems Architecture University of Edinburgh ISPASS 2017
More informationAtomicity via Source-to-Source Translation
Atomicity via Source-to-Source Translation Benjamin Hindman Dan Grossman University of Washington 22 October 2006 Atomic An easier-to-use and harder-to-implement primitive void deposit(int x){ synchronized(this){
More informationBridging Analog Neuromorphic and Digital von Neumann Computing
Bridging Analog Neuromorphic and Digital von Neumann Computing Amir Yazdanbakhsh, Bradley Thwaites Advisors: Hadi Esmaeilzadeh and Doug Burger Qualcomm Mentors: Manu Rastogiand Girish Varatkar Alternative
More informationCompiler Construction Lent Term 2015 Lectures 10, 11 (of 16)
Compiler Construction Lent Term 15 Lectures 10, 11 (of 16) 1. Slang.2 (Lecture 10) 1. In lecture code walk of slang2_derive 2. Assorted topics (Lecture 11) 1. Exceptions 2. Objects 3. Stacks vs. Register
More informationAssembly Language: Function Calls
Assembly Language: Function Calls 1 Goals of this Lecture Help you learn: Function call problems x86-64 solutions Pertinent instructions and conventions 2 Function Call Problems (1) Calling and returning
More informationSyntax-Directed Translation. Concepts Introduced in Chapter 5. Syntax-Directed Definitions
Concepts Introduced in Chapter 5 Syntax-Directed Definitions Translation Schemes Synthesized Attributes Inherited Attributes Dependency Graphs Syntax-Directed Translation Uses a grammar to direct the translation.
More informationLecture 20: High-level Synthesis (1)
Lecture 20: High-level Synthesis (1) Slides courtesy of Deming Chen Some slides are from Prof. S. Levitan of U. of Pittsburgh Outline High-level synthesis introduction High-level synthesis operations Scheduling
More informationMetaRTL: Raising the Abstraction Level of RTL Design
MetaRTL: Raising the Abstraction Level of RTL Design Jianwen Zhu Electrical and Computer Engineering University of Toronto March 16, 2001 zhu@eecg.toronto.edu http://www.eecg.toronto.edu/ zhu DATE 2001,
More information4. Write the output that would be printed from each of the following code fragments. (8pts) x = 9 y = x / 2 print('y ==', y) +1 4.
1. Write an X To the left of each valid Python name (identifier). (4pts) a) X pyhonindetfriar c) X a_b_c_d b) 9to5 d) x*y all or none 2. Write an X To the left of each Python reserved word (keyword). (4pts)
More informationDealing with Register Hierarchies
Dealing with Register Hierarchies Matthias Braun (MatzeB) / LLVM Developers' Meeting 2016 r1;r2;r3;r4 r0;r1;r2;r3 r0,r1,r2,r3 S0 D0 S1 Q0 S2 D1 S3 r3;r4;r5 r2;r3;r4 r1;r2;r3 r2;r3 r1,r2,r3,r4 r3,r4,r5,r6
More informationPerformance evaluation. Performance evaluation. CS/COE0447: Computer Organization. It s an everyday process
Performance evaluation It s an everyday process CS/COE0447: Computer Organization and Assembly Language Chapter 4 Sangyeun Cho Dept. of Computer Science When you buy food Same quantity, then you look at
More informationInterprocedural Type Specialization of JavaScript Programs Without Type Analysis
Interprocedural Type Specialization of JavaScript Programs Without Type Analysis Maxime Chevalier-Boisvert joint work with Marc Feeley ECOOP - July 20th, 2016 Overview Previous work: Lazy Basic Block Versioning
More information