Growing Solver-Aided Languages with ROSETTE
|
|
- Dorcas Beatrix Matthews
- 6 years ago
- Views:
Transcription
1 Growing Solver-Aided Languages with ROSETTE Emina Torlak & Rastislav Bodik U.C. Berkeley ExCAPE June 10, 2013
2 solver-aided domain-specific language Solver-aided DSL (SDSL) Noun 1. A high-level language in which partially implemented programs can be executed, verified, debugged and synthesized with the aid of a constraint solver. 2
3 programming specification assume pre(x) P(x) { } assert post(p(x)) 3
4 programming formula, input/ output pairs, traces, another program, assume pre(x) P(x) { } assert post(p(x)) 3
5 programming assume pre(x) assert post(p(x)) assume pre(x) P(x) { } assert post(p(x)) 3
6 programming with a solver-aided language? assume pre(x) P(x) { } assert post(p(x)) translate( ) SAT/SMT solver 4
7 solver-aided programming: code checking Is there a valid input x for which P(x) violates the spec? assume pre(x) P(x) { } assert post(p(x)) x. pre(x) post(p(x)) SAT/SMT solver CBMC [Oxford], Dafny [MSR], Jahob [EPFL], Miniatur / MemSAT [IBM], etc. 5
8 solver-aided programming: code checking Is there a valid input x for which P(x) violates the spec? assume pre(x) P(x) { } assert post(p(x)) x = 42 x. pre(x) post(p(x)) SAT/SMT solver counterexample model CBMC [Oxford], Dafny [MSR], Jahob [EPFL], Miniatur / MemSAT [IBM], etc. 5
9 solver-aided programming: localizing faults Given x and x, what subset of P is responsible for P(x) x? assume pre(x) P(x) { v = x + 2 } assert post(p(x)) pre(x) post(x ) x = P(x) SAT/SMT solver BugAssist [UCLA / MPI-SWS] 6
10 solver-aided programming: localizing faults Given x and x, what subset of P is responsible for P(x) x? assume pre(x) P(x) { v = x + 2 } assert post(p(x)) pre(x) post(x ) x = P(x) SAT/SMT solver repair candidates MAXSAT/ MIN CORE BugAssist [UCLA / MPI-SWS] 6
11 solver-aided programming: angelic execution Given x, choose v at runtime so that P(x, v) satisfies the spec. assume pre(x) P(x) { v = choose() } assert post(p(x)) v. pre(x) post(p(x, v)) SAT/SMT solver Kaplan [EPFL], PBnJ [UCLA], Skalch [Berkeley], Squander [MIT], etc. 7
12 solver-aided programming: angelic execution Given x, choose v at runtime so that P(x, v) satisfies the spec. assume pre(x) P(x) { v = choose() } assert post(p(x)) v = 0, v. pre(x) post(p(x, v)) SAT/SMT solver trace model Kaplan [EPFL], PBnJ [UCLA], Skalch [Berkeley], Squander [MIT], etc. 7
13 solver-aided programming: synthesis Replace?? with expression e so that Pe(x) satisfies the spec on all valid inputs. assume pre(x) P(x) { v =?? } assert post(p(x)) e. x. pre(x) post(pe(x)) SAT/SMT solver Comfusy [EPFL], Sketch [Berkeley / MIT] 8
14 solver-aided programming: synthesis Replace?? with expression e so that Pe(x) satisfies the spec on all valid inputs. assume pre(x) P(x) { v =?? x 2 } assert post(p(x)) e. x. pre(x) post(pe(x)) SAT/SMT solver expressions model Comfusy [EPFL], Sketch [Berkeley / MIT] 8
15 but building solver-aided languages is hard P(x) { }??? (Q x ) R(x) : Each new SDSL created by careful custom compilation to constraints, requiring years of training and experience. translate( ) translate( ) translate( ) SAT/SMT solver 9
16 a solver-aided framework for building SDSLs P(x) { }??? (Q x ) interpret( ) API( ) interpret( ) R(x) : ROSETTE Implement a library or an interpreter for your SDSL, and get a synthesizer, verifier, debugger and angelic oracle for programs in that SDSL. 10
17 a tiny solver-aided extension of racket top-level-form = general-top-level-form (#%expression expr) (module id name-id (#%plain-module-begin module-level-form...)) (begin top-level-form...) (begin-for-syntax top-level-form...) module-level-form = general-top-level-form (#%provide raw-provide-spec...) (begin-for-syntax module-level-form...) general-top-level-form = expr (define-values (id...) expr) (define-syntaxes (id...) expr) (#%require raw-require-spec...) Racket expr = id (#%plain-lambda formals expr...+) (case-lambda (formals expr...+)...) (if expr expr expr) (begin expr...+) (begin0 expr expr...) (let-values ([(id...) expr]...) expr...+) (letrec-values ([(id...) expr]...) expr...+) (set! id expr) (quote datum) (quote-syntax datum) (with-continuation-mark expr expr expr) (#%plain-app expr...+) (#%top. id) (#%variable-reference id) (#%variable-reference (#%top. id)) (#%variable-reference) (define-symbolic id expr) (assert expr) (solve expr) (verify expr) (debug [expr] expr) (synthesize #:forall expr #:guarantee expr) ROSETTE formals = (id...) (id...+. id) id 11
18 with a symbolic evaluator and compiler debug solve transform, evaluate & compile to constraints verify SDSL + program synthesize ROSETTE racket KODKOD SAT solver 12
19 with a symbolic evaluator and compiler debug solve transform, evaluate & compile to constraints verify SDSL + program synthesize ROSETTE racket Easy to connect to another solver or backend, such as SMT or SynthLib. KODKOD SAT solver 12
20 with a symbolic evaluator and compiler debug solve map solution to program level transform, evaluate & compile to constraints verify SDSL + program synthesize ROSETTE racket Easy to connect to another solver or backend, such as SMT or SynthLib. KODKOD SAT solver 12
21 with a symbolic evaluator and compiler debug solve map solution to program level transform, evaluate & compile to constraints verify SDSL + program synthesize ROSETTE racket Easy to connect to another solver or backend, such as SMT or SynthLib. KODKOD SAT solver 12
22 web, spatial programming, superoptimization 13
23 websynth: web scraping by demonstration Web scraping usually done with fragile, hand-written scripts using regex. Websynth synthesizes a web scraper from a URL and a few examples of desired data, using a declarative SDLS (XPaths). Implemented by two undergraduate students in a few weeks. 4 seconds in total to construct a node DOM, synthesize the XPath, and return the data. 14
24 partitioning code & data for a low power chip DB003 Evaluation Board Reference for EVB001 Instructions/Second vs Power ~100x Figure by Per Ljung GreenArrays GA144 Processor 2. Basic Architecture The purpose of this board is to facilitate evaluation and application prototyping using GreenArrays chips. Because no single I/O complement would be suitable for all likely uses, this board has two GA144 chips: One (called "Host") configured with sufficient I/O for intensive software development, and the other (called "Target") with as little I/O committed as possible so that pure, dedicated applications may be prototyped. 2.1 Highlights Three FTDI USB to serial chips provide high speed (960 kbaud) communications for interactive software development and general-purpose host communications. An onboard switching regulator takes power from the USB connectors and/or a conventional "wall wart" power supply. Whichever of these is offering the highest voltage is used by the regulator. A barrier strip provides for connection of bench power supplies. Each of the power buses of the two GA144 chips may selectively be run from external power in lieu of the onboard regulator, allowing you to run either chip from any desired VDD voltage and also facilitating current measurements. The Host chip is supplied with an SPI boot flash holding 1 MByte of nonvolatile data, an external SRAM with 1 MWord (2 MBytes) of memory; and may optionally use a dual voltage MMC card such as the 2 Gigabyte unit we have selected for in-house use. These memory resources may be used in conjunction with Virtual Machines such as eforth and polyforth, or for direct use by your own F18 code. The Target chip is committed to as few I/O connections as possible. The sources for its reset signal are fully configurable, and with the exception of a SERDES line connecting it with the Host chip, all other communications (two 2-wire serial interfaces) may be disconnected so that the chip is fully isolated and thus all practical I/O is available for any desired use. Roughly half the board is prototyping area, mainly populated with a grid of plated through holes on 0.1 inch centers. By soldering suitable headers to this grid, you can provide for expansion using various prototyping fixtures such as 15
25 partitioning code & data for a low power chip DB003 Evaluation Board Reference for EVB001 Instructions/Second vs Power ~100x GreenArrays GA144 Processor 2. Basic Architecture The purpose of this board is to facilitate evaluation and application prototyping using GreenArrays chips. Because no single I/O complement would be suitable for all likely uses, this board has two GA144 chips: One (called "Host") configured with sufficient I/O for intensive software development, and the other (called "Target") with as little I/O committed as possible so that pure, dedicated applications may be prototyped. Figure by Per Ljung Stack-based 18-bit architecture 32 instructions 8 x 18 array of asynchronous cores No shared resources (cache, memory) Limited communication, neighbors only < 300 byte memory per core 2.1 Highlights Three FTDI USB to serial chips provide high speed (960 kbaud) communications for interactive software development and general-purpose host communications. An onboard switching regulator takes power from the USB connectors and/or a conventional "wall wart" power supply. Whichever of these is offering the highest voltage is used by the regulator. A barrier strip provides for connection of bench power supplies. Each of the power buses of the two GA144 chips may selectively be run from external power in lieu of the onboard regulator, allowing you to run either chip from any desired VDD voltage and also facilitating current measurements. The Host chip is supplied with an SPI boot flash holding 1 MByte of nonvolatile data, an external SRAM with 1 MWord (2 MBytes) of memory; and may optionally use a dual voltage MMC card such as the 2 Gigabyte unit we have selected for in-house use. These memory resources may be used in conjunction with Virtual Machines such as eforth and polyforth, or for direct use by your own F18 code. The Target chip is committed to as few I/O connections as possible. The sources for its reset signal are fully configurable, and with the exception of a SERDES line connecting it with the Host chip, all other communications (two 2-wire serial interfaces) may be disconnected so that the chip is fully isolated and thus all practical I/O is available for any desired use. Roughly half the board is prototyping area, mainly populated with a grid of plated through holes on 0.1 inch centers. By soldering suitable headers to this grid, you can provide for expansion using various prototyping fixtures such as 15
26 partitioning code & data for a low power chip DB003 Evaluation Board Reference for EVB001 Instructions/Second vs Power ~100x GreenArrays GA144 Processor 2. Basic Architecture The purpose of this board is to facilitate evaluation and application prototyping using GreenArrays chips. Because no single I/O complement would be suitable for all likely uses, this board has two GA144 chips: One (called "Host") configured with sufficient I/O for intensive software development, and the other (called "Target") with as little I/O committed as possible so that pure, dedicated applications may be prototyped. Figure by Per Ljung Stack-based 18-bit architecture 32 instructions 8 x 18 array of asynchronous cores No shared resources (cache, memory) Limited communication, neighbors only < 300 byte memory per core 2.1 Highlights Three FTDI USB to serial chips provide high speed (960 kbaud) communications for interactive software development and general-purpose host communications. Whichever of these is offering the highest voltage is used by the regulator. Manual function partitioning: barrier strip provides for connection of bench power supplies. Each of the power buses of the two GA144 chips may break functions up into aaselectively pipeline be run from external power in lieu of the onboard regulator, allowing you to run either chip from any desired V voltage and also facilitating current measurements. with a few operations perthe Host core. chip is supplied with an SPI boot flash holding 1 MByte of nonvolatile data, an external SRAM with 1 MWord An onboard switching regulator takes power from the USB connectors and/or a conventional "wall wart" power supply. DD (2 MBytes) of memory; and may optionally use a dual voltage MMC card such as the 2 Gigabyte unit we have selected for in-house use. These memory resources may be used in conjunction with Virtual Machines such as eforth and polyforth, or for direct use by your own F18 code. The Target chip is committed to as few I/O connections as possible. The sources for its reset signal are fully configurable, and with the exception of a SERDES connectingphothilimthana it with the Host chip, all other communications (two Drawing bylinemangpo 2-wire serial interfaces) may be disconnected so that the chip is fully isolated and thus all practical I/O is available for any desired use. Roughly half the board is prototyping area, mainly populated with a grid of plated through holes on 0.1 inch centers. By soldering suitable headers to this grid, you can provide for expansion using various prototyping fixtures such as 15
27 partitioning code & data for a low power chip High-Level Program New Programming Model Per-core High-Level Programs Per-core Optimized Machine Code Partitioner Code Generator New Approach Using Synthesis Mangpo Phothilimthana and Nishant Totla (first year graduate students) 16
28 partitioning code & data for a low power chip High-Level Program New Programming Model Per-core High-Level Programs Per-core Optimized Machine Code Partitioner Code Generator New Approach Using Synthesis Mangpo Phothilimthana and Nishant Totla (first year graduate students) 16
29 partitioning code & data for a low power chip one iteration of MD5 hash optimal code partitioning by the synthesizer 256-byte mem per core initial data placement specified R i high F R M 105 <<< 106 K low 2 3 M F 4 5 <<< 6 K F 202 <<< 102 R 512-byte mem per core different initial data placement 103 M 106 K high low <<< R 2 M 3 M 512-byte mem per core same initial data placement F F K 6 K 17
30 component-based synthesis of loop free code A clever algorithm for synthesis of bitvector programs by Gulwani et al, PLDI 11. Produces a loop-free program from a multi-set of instructions and a functional spec (superoptimization). Encoding cannot be reproduced with tools using hardwired, general-purpose synthesis algorithms. 600 lines of Rosette, and performance matches the published algorithm. 18
31 thank you! ROSETTE code checking angelic execution debugging synthesis 19
Growing Solver-Aided Languages with ROSETTE
Growing Solver-Aided Languages with ROSETTE Emina Torlak & Rastislav Bodik U.C. Berkeley solver-aided domain-specific language Solver-aided DSL (SDSL) Noun 1. A high-level language in which partially implemented
More informationProgramming with Constraint Solvers CS294: Program Synthesis for Everyone
Programming with Constraint Solvers CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Today Today: we describe four programming
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 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 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 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 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 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 informationOptimizing 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 informationGetting Started with Evaluation Board EVB001
GreenArrays AN004 Getting Started with Eval Board EVB001 Application Note AN004 Revised 10/08/11 Getting Started with Evaluation Board EVB001 The GreenArrays EVB001 Evaluation Board is a versatile and
More informationArduino Uno. Arduino Uno R3 Front. Arduino Uno R2 Front
Arduino Uno Arduino Uno R3 Front Arduino Uno R2 Front Arduino Uno SMD Arduino Uno R3 Back Arduino Uno Front Arduino Uno Back Overview The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet).
More informationCEIBO FE-5111 Development System
CEIBO FE-5111 Development System Development System for Atmel W&M T89C5111 Microcontrollers FEATURES Emulates Atmel W&M T89C5111 4K Code Memory Real-Time Emulation and Trace Frequency up to 33MHz/5V ISP
More informationARDUINO M0 PRO Code: A000111
ARDUINO M0 PRO Code: A000111 The Arduino M0 Pro is an Arduino M0 with a step by step debugger With the new Arduino M0 Pro board, the more creative individual will have the potential to create one s most
More informationPremierWave 2050 Enterprise Wi-Fi IoT Module Evaluation Kit User Guide
PremierWave 2050 Enterprise Wi-Fi IoT Module Evaluation Kit User Guide Part Number 900-765-R Revision A February 2016 Intellectual Property 2016 Lantronix, Inc. All rights reserved. No part of the contents
More informationS2C K7 Prodigy Logic Module Series
S2C K7 Prodigy Logic Module Series Low-Cost Fifth Generation Rapid FPGA-based Prototyping Hardware The S2C K7 Prodigy Logic Module is equipped with one Xilinx Kintex-7 XC7K410T or XC7K325T FPGA device
More informationARDUINO MEGA 2560 REV3 Code: A000067
ARDUINO MEGA 2560 REV3 Code: A000067 The MEGA 2560 is designed for more complex projects. With 54 digital I/O pins, 16 analog inputs and a larger space for your sketch it is the recommended board for 3D
More informationCEIBO FE-51RD2 Development System
CEIBO FE-51RD2 Development System Development System for Atmel AT89C51RD2 Microcontrollers FEATURES Emulates Atmel AT89C51RD2 60K Code Memory Real-Time Emulation Frequency up to 40MHz / 3V, 5V ISP and
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 informationARDUINO LEONARDO ETH Code: A000022
ARDUINO LEONARDO ETH Code: A000022 All the fun of a Leonardo, plus an Ethernet port to extend your project to the IoT world. You can control sensors and actuators via the internet as a client or server.
More informationARDUINO MEGA ADK REV3 Code: A000069
ARDUINO MEGA ADK REV3 Code: A000069 OVERVIEW The Arduino MEGA ADK is a microcontroller board based on the ATmega2560. It has a USB host interface to connect with Android based phones, based on the MAX3421e
More information32 bit Micro Experimenter Board Description and Assembly manual
32 bit Micro Experimenter Board Description and Assembly manual Thank you for purchasing the KibaCorp 32 bit Micro Experimenter. KibaCorp is dedicated to Microcontroller education for the student, hobbyist
More informationARDUINO UNO REV3 SMD Code: A The board everybody gets started with, based on the ATmega328 (SMD).
ARDUINO UNO REV3 SMD Code: A000073 The board everybody gets started with, based on the ATmega328 (SMD). The Arduino Uno SMD R3 is a microcontroller board based on the ATmega328. It has 14 digital input/output
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 informationCEIBO FE-W7 Development System
CEIBO FE-W7 Development System Development System for Winbond W7xxxx Microcontrollers FEATURES Emulates Winbond W77xxx or W78xxx Microcontrollers 125K Code Memory Real-Time Emulation Frequency up to fmax
More informationLab 01 Arduino 程式設計實驗. Essential Arduino Programming and Digital Signal Process
Lab 01 Arduino 程式設計實驗 Essential Arduino Programming and Digital Signal Process Arduino Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's
More informationPXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670
PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670 Features RoHS 520MHz Low-power ARM processor w/ 800 x 600 Color LCD Power Over Ethernet and 10/100BASE-T Ethernet GPS module
More informationCompiling a Gesture Recognition Application for an Ultra Low-Power Architecture
Compiling a Gesture Recognition Application an Ultra Low-Power Architecture Phitchaya Mangpo Phothilimthana Michael Schuldt Rastislav Bodik Classification Applications sensor data computation Intensive
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 informationARDUINO UNO REV3 Code: A000066
ARDUINO UNO REV3 Code: A000066 The UNO is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the UNO is the most robust board you can
More informationChlorophyll: Synthesis-Aided Compiler for Low-Power Spatial Architectures
Chlorophyll: Synthesis-Aided Compiler for Low-Power Spatial Architectures Phitchaya Phothilimthana Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No.
More informationQSFP Breakout. Data Sheet. Datasheet QSFP Breakout. 1 Overview. Table of Contents. 2 Features
1 Overview The is an interface board designed to connect the high speed lines of a QSFP module to SMA connectors for test and evaluation. In addition to high speed breakout, the unit can be controlled
More informationum-fpu Application Note 9 Adding a Serial Connection to um-fpu V2
um-fpu Application Note 9 Adding a Serial Connection to um-fpu V2 This application note describes various methods of adding a serial connection to the um-fpu to provide support for debugging um-fpu code
More informationxpico 110 Wired Device Server Module Evaluation Kit User Guide
xpico 110 Wired Device Server Module Evaluation Kit User Guide Part Number 900-788-R Revision A April 2017 Intellectual Property 2017 Lantronix, Inc. All rights reserved. No part of the contents of this
More information_ V1.0. Freescale MPC5607B Bolero Mini Target Board. User s Manual. Ordering code
_ V1.0 User s Manual Freescale MPC5607B Bolero Mini Target Board MPC5607B Target Board Ordering code ITMPC5607B-208 Copyright 2013 isystem AG. All rights reserved. winidea is a trademark of isystem AG.
More informationARDUINO LEONARDO WITH HEADERS Code: A000057
ARDUINO LEONARDO WITH HEADERS Code: A000057 Similar to an Arduino UNO, can be recognized by computer as a mouse or keyboard. The Arduino Leonardo is a microcontroller board based on the ATmega32u4 (datasheet).
More informationSymphony SoundBite Reference Manual
Symphony SoundBite Reference Manual Document Number: SNDBITERM Rev. 2.0 09/2008 Contents Section 1, Introduction page 2 Section 2, Functional Blocks page 3 Section 3, Configuration and Connections page
More informationSFP+ Breakout 2. Data Sheet. Datasheet SFP+ Breakout. 1 Overview. Table of Contents. 2 Features
Data Sheet 2 1 Overview The is an interface board designed to connect the high speed lines of an SFP or SFP+ module to SMA connectors for test and evaluation. In addition to high speed breakout, the unit
More informationImplementing Tile-based Chip Multiprocessors with GALS Clocking Styles
Implementing Tile-based Chip Multiprocessors with GALS Clocking Styles Zhiyi Yu, Bevan Baas VLSI Computation Lab, ECE Department University of California, Davis, USA Outline Introduction Timing issues
More informationGoal: We want to build an autonomous vehicle (robot)
Goal: We want to build an autonomous vehicle (robot) This means it will have to think for itself, its going to need a brain Our robot s brain will be a tiny computer called a microcontroller Specifically
More informationAutomated Software Analysis Techniques For High Reliability: A Concolic Testing Approach. Moonzoo Kim
Automated Software Analysis Techniques For High Reliability: A Concolic Testing Approach Moonzoo Kim Contents Automated Software Analysis Techniques Background Concolic testing process Example of concolic
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 informationArduino ADK Rev.3 Board A000069
Arduino ADK Rev.3 Board A000069 Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface to connect with Android based phones, based on the MAX3421e
More information)8-,768'HY.LW 2YHUYLHZ. )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein Dreieich-Buchschlag, Germany
)8-,768'HY.LW 2YHUYLHZ )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein 6-10 63303 Dreieich-Buchschlag, Germany Revision: V1.0 Date: 05.08.1999 Introduction to FUJITSU Development Kit for 16LX CPU family DevKit16
More informationProgram Synthesis. SWE 795, Spring 2017 Software Engineering Environments
Program Synthesis SWE 795, Spring 2017 Software Engineering Environments Today HW3 is due next week in class! Part 1 (Lecture)(~50 mins) Break! Part 2 (Discussion)(~60 mins) Discussion of readings Part
More informationSpaceSearch: A Library for Building and Verifying Solver-Aided Tools
SpaceSearch: A Library for Building and Verifying Solver-Aided Tools Konstantin Steven S. Stefan Weitz Lyubomirsky Heule Emina Torlak Michael D. Ernst Zachary Tatlock Reduction Reduction SMT Reduction
More informationReading part: Design-Space Exploration with Alloy
Reading part: Design-Space Exploration with Alloy Ing. Ken Vanherpen Abstract In the growing world of MDE many tools are offered to describe a (part of a) system, constrain it, and check some properties
More informationArduino Dock 2. The Hardware
Arduino Dock 2 The Arduino Dock 2 is our supercharged version of an Arduino Uno R3 board. These two boards share the same microcontroller, the ATmel ATmega328P microcontroller (MCU), and have identical
More informationArduCAM CC3200 UNO board
ArduCAM CC3200 UNO board User Guide Rev 1.2, Mar 2017 Table of Contents 1 Introduction... 2 2 Features... 3 3 Pin Definition... 4 4 Getting Started CC3200 with Energia... 5 4.1 Out of the Box Test... 5
More informationType- & Example-Driven Program Synthesis. Steve Zdancewic WG 2.8, August 2014
Type- & Example-Driven Program Synthesis Steve Zdancewic WG 2.8, August 2014 Joint work with Peter-Michael Osera CAVEATS Work in progress Similar work been done before This is our attempt to understand
More informationDwarf Boards. DB057 : 40-pin controller board
Dwarf Boards DB057 : 40-pin controller board PICmicro, In-Circuit Serial Programming and ICSP are registered trademarks of Microchip Technology Inc. DB057 for USB PIC DB057 for non-usb PIC Introduction
More informationSolving Computations. Viktor Kuncak. PhD MIT,
Solving Computations Viktor Kuncak PhD MIT, 2007 School of Computer and Communication Sciences Laboratory for Automated Reasoning and Analysis http://lara.epfl.ch/~kuncak 1 GOAL Help people construct software
More information_ V1.1. EVB-5566 Evaluation & Development Kit for Freescale PowerPC MPC5566 Microcontroller. User s Manual. Ordering code
_ V1.1 User s Manual EVB-5566 Evaluation & Development Kit for Freescale PowerPC MPC5566 Microcontroller EVB-5566 Ordering code ITMPC5566 Copyright 2007 isystem AG. All rights reserved. winidea is a trademark
More informationPurchase Agreement. P&E Microcomputer Systems, Inc. P.O. Box 2044 Woburn, MA Manual version 1.
Purchase Agreement P&E Microcomputer Systems, Inc. reserves the right to make changes without further notice to any products herein to improve reliability, function, or design. P&E Microcomputer Systems,
More informationDEVBOARD3 DATASHEET. 10Mbits Ethernet & SD card Development Board PIC18F67J60 MICROCHIP
DEVBOARD3 DATASHEET 10Mbits Ethernet & SD card PIC18F67J60 MICROCHIP Version 1.0 - March 2009 DEVBOARD3 Version 1.0 March 2009 Page 1 of 7 The DEVBOARD3 is a proto-typing board used to quickly and easily
More informationRapid28iXL PIC Prototyping PCB User Manual
Description Features This is a PCB designed to facilitate the rapid prototyping of a device based on a 28 pin Microchip PIC microcontroller. To allow users to focus on their application, we take care of
More informationOpal Kelly. XEM6002 User s Manual
Opal Kelly XEM6002 User s Manual A business-card sized (3.5 x 2.0 ) semiconductor evaluation platform featuring the Xilinx Spartan-6 FPGA and four Pmod TM connectors. The XEM6002 is a small, business-card
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 information_ V1.3. MPC5643L Target Board. User s Manual. Ordering code
_ V1.3 User s Manual Freescale MPC5643L Target Board MPC5643L Target Board Ordering code ITMPC5643L-257 Copyright 2012 isystem AG. All rights reserved. winidea is a trademark of isystem AG. All other trademarks
More informationCEIBO FE-5131A Development System
CEIBO FE-5131A Development System Development System for Atmel AT89C5131A Microcontrollers FEATURES Emulates AT89C5131/AT89C5131A with 6/12 Clocks/Cycle 31K Code Memory Software Trace Real-Time Emulation
More informationProcessor Architectures At A Glance: M.I.T. Raw vs. UC Davis AsAP
Processor Architectures At A Glance: M.I.T. Raw vs. UC Davis AsAP Presenter: Course: EEC 289Q: Reconfigurable Computing Course Instructor: Professor Soheil Ghiasi Outline Overview of M.I.T. Raw processor
More informationXNUCLEO-F030R8, Improved STM32 NUCLEO Board
XNUCLEO-F030R8, Improved STM32 NUCLEO Board STM32 Development Board, Supports Arduino, Compatible with NUCLEO-F030R8 XNUCLEO-F030R8 Features Compatible with NUCLEO-F030R8, onboard Cortex-M0 microcontroller
More informationIO-PT4. Component identification. User safety and equipment protection guidelines. Unitronics Industrial Automation Systems 1
IO-PT4 I/O Expansion Module 4 PT100 Inputs (-50 to 460 C) The IO-PT4 is an I/O expansion module that can be used in conjunction with specific Unitronics OPLC controllers. The module offers 4 PT100 inputs
More informationProgramming in the MAXQ environment
AVAILABLE The in-circuit debugging and program-loading features of the MAXQ2000 microcontroller combine with IAR s Embedded Workbench development environment to provide C or assembly-level application
More informationimcu7100evb User s Guide
Version 1.0 2011 WIZnet Co., Inc. All Rights Reserved. For more information, visit our website at http://www.wiznet.co.kr Copyright 2011WIZnet Co., Inc. All rights reserved. Table of Contents 1 Overview...3
More informationxpico Wi-Fi Embedded Device Server Evaluation Kit User Guide
xpico Wi-Fi Embedded Device Server Evaluation Kit User Guide Part Number 900-643-R Revision B July 2013 Copyright and Trademark Warranty Contacts 2013 Lantronix, Inc. All rights reserved. No part of the
More information100M Gate Designs in FPGAs
100M Gate Designs in FPGAs Fact or Fiction? NMI FPGA Network 11 th October 2016 Jonathan Meadowcroft, Cadence Design Systems Why in the world, would I do that? ASIC replacement? Probably not! Cost prohibitive
More informationkeyestudio Keyestudio MEGA 2560 R3 Board
Keyestudio MEGA 2560 R3 Board Introduction: Keyestudio Mega 2560 R3 is a microcontroller board based on the ATMEGA2560-16AU, fully compatible with ARDUINO MEGA 2560 REV3. It has 54 digital input/output
More informationTLE9869 Eval.Kit V1.0 Users Manual
TLE9869 Eval.Kit V1.0 Users Manual Contents Abbreviations... 2 1 Concept... 3 2 Interconnects... 4 3 Test Points... 5 4 Jumper Settings... 6 5 Communication Interfaces... 7 5.1 LIN (via Banana jack and
More informationCinematronics CPU Board Revision B to K Conversion
http://www.biltronix.com Cinematronics CPU Board Revision B to K Conversion Introduction: Cinematronics manufactured several arcade video games from 977 through 980 that were based on a specific CPU board
More informationPurchase Agreement. P&E Microcomputer Systems, Inc. P.O. Box 2044 Woburn, MA Manual version 1.
Purchase Agreement P&E Microcomputer Systems, Inc. reserves the right to make changes without further notice to any products herein to improve reliability, function, or design. P&E Microcomputer Systems,
More informationESPixelStick V2 Assembly and Usage
ESPixelStick V2 Assembly and Usage OVERVIEW The ESPixelStick is a wireless (802.11g/n) pixel controller that interfaces as a standard sacn / E1.31 controller and supports a variety of pixel types. It also
More informationHello, and welcome to this presentation of the STM32L4 System Configuration Controller.
Hello, and welcome to this presentation of the STM32L4 System Configuration Controller. 1 Please note that this presentation has been written for STM32L47x/48x devices. The key differences with other devices
More informationThe Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.
Pepper 43R TM Gumstix, Inc. shall have no liability of any kind, express or implied, arising out of the use of the Information in this document, including direct, indirect, special or consequential damages.
More informationPropeller Project Board USB (#32810)
Web Site: www.parallax.com Forums: forums.parallax.com Sales: sales@parallax.com Technical: support@parallax.com Office: (916) 624-8333 Fax: (916) 624-8003 Sales: (888) 512-1024 Tech Support: (888) 997-8267
More informationEN2911X: Reconfigurable Computing Lecture 01: Introduction
EN2911X: Reconfigurable Computing Lecture 01: Introduction Prof. Sherief Reda Division of Engineering, Brown University Fall 2009 Methods for executing computations Hardware (Application Specific Integrated
More informationEVB-USB82640 Evaluation Board Revision A User Manual
EVB-USB82640 Evaluation Board Revision A User Manual Copyright 2009 SMSC or its subsidiaries. All rights reserved. Circuit diagrams and other information relating to SMSC products are included as a means
More informationThe Memory Hierarchy 10/25/16
The Memory Hierarchy 10/25/16 Transition First half of course: hardware focus How the hardware is constructed How the hardware works How to interact with hardware Second half: performance and software
More informationThank you for purchasing the RGB Multi-MCU base and driver board from SuperTech-IT and TheLEDCube.com
CONGRATULATIONS Thank you for purchasing the RGB Multi-MCU base and driver board from SuperTech-IT and TheLEDCube.com In this document, MCU means Microcontroller such as the PIC32, ATmega328P, prototype
More informationExCAPE. Expeditions in Computer Augmented Program Engineering
ExCAPE Expeditions in Computer Augmented Program Engineering Rajeev Alur, Ras Bodik, Jeff Foster, Bjorn Hartmann, Lydia Kavraki, Hadas Kress-Gazit, Stephane Lafortune, Boon Loo, P. Madhusudan, Milo Martin,
More informationPICado Alpha Development Board V1.0
V1.0 Bluetooth Transceiver Module HC-05 Four onboard FET power output stage 34 freely assignable I/O pins ICSP interface 2015 Jan Ritschard, All rights reserved. V1.0 Table of Contents 1. Introduction...
More informationVoting Machines and Automotive Software: Explorations with SMT at Scale
Voting Machines and Automotive Software: Explorations with SMT at Scale Sanjit A. Seshia EECS Department UC Berkeley Joint work with: Bryan Brady, Randy Bryant, Susmit Jha, Jon Kotker, John O Leary, Alexander
More informationCoLinkEx_LPC11C14 EVB Kit User Guide
CoLinkEx_LPC11C14 EVB Kit User Guide Rev. 1.0 Release: 2012-05-07 Website: http://www.coocox.org Forum: http://www.coocox.org/forum/forum.php?id=1 Techinal: master@coocox.com Market: market@coocox.com
More informationComprehensive AngularJS Programming (5 Days)
www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop
More informationAnt6. 6 Channel H Bridge 3-Axis Bipolar Stepper Motor Controller. Technical Reference Manual PCB Rev 1.0.
Ant6 6 Channel H Bridge 3-Axis Bipolar Stepper Motor Controller Technical Reference Manual PCB Rev 1.0 www.soc-robotics.com Copyright 2008. SOC Robotics, Inc. 1 Manual Rev 0.9 Warranty Statement SOC Robotics
More informationEVB-USB2640 Evaluation Board Revision A
Copyright 2008 SMSC or its subsidiaries. All rights reserved. Circuit diagrams and other information relating to SMSC products are included as a means of illustrating typical applications. Consequently,
More informationSynthesizing Programs with Constraint Solvers CAV 2012 invited tutorial
Synthesizing Programs with Constraint Solvers CAV 2012 invited tutorial Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Abstract Classical synthesis derives programs
More informationFinding and Fixing Bugs in Liquid Haskell. Anish Tondwalkar
Finding and Fixing Bugs in Liquid Haskell Anish Tondwalkar Overview Motivation Liquid Haskell Fault Localization Fault Localization Evaluation Predicate Discovery Predicate Discovery Evaluation Conclusion
More informationTest Automation. 20 December 2017
Test Automation 20 December 2017 The problem of test automation Testing has repetitive components, so automation is justified The problem is cost-benefit evaluation of automation [Kaner] Time for: test
More informationDetects Potential Problems. Customizable Data Columns. Support for International Characters
Home Buy Download Support Company Blog Features Home Features HttpWatch Home Overview Features Compare Editions New in Version 9.x Awards and Reviews Download Pricing Our Customers Who is using it? What
More informationRapid40iXL PIC Prototyping PCB User Manual
Description This is a PCB designed to facilitate the rapid prototyping of a device based on a 40 pin Microchip PIC microcontroller. To allow users to focus on their application, we take care of key housekeeping
More informationThe Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.
Poblano 43C TM Gumstix, Inc. shall have no liability of any kind, express or implied, arising out of the use of the Information in this document, including direct, indirect, special or consequential damages.
More informationQuick Start Guide TWR-PXR bit Power Architecture MCU for High-Performance Real-Time Applications TOWER SYSTEM
Quick Start Guide TWR-PXR40 32-bit Power Architecture MCU for High-Performance Real-Time Applications TOWER SYSTEM Quick Start Guide Get to Know the TWR-PXR40 User LEDs OSJTAG Interface CAN JTAG Interface
More informationNuvoton 1T 8051-based Microcontroller NuTiny-SDK-N76E885 User Manual
NUTINY-SDK- USER MANUAL 1T 8051 8-bit Microcontroller Nuvoton 1T 8051-based Microcontroller NuTiny-SDK- User Manual The information described in this document is the exclusive intellectual property of
More informationACU6. Technical Reference Manual. Specifications Interfacing Dimensions. Document topics. ANSARI Controller Unit Type 6 technical reference manual
ACU6 Technical Reference Manual ANSARI Controller Unit Type 6 technical reference manual Document topics Specifications Interfacing Dimensions Document Version: 1.03 13. January 2013 By ANSARI GmbH Friedrich-Ebert-Damm
More informationGeneral-Purpose Microcontroller Module 12a Hardware Reference Release 1.4a (October 11, 2017)
General-Purpose Microcontroller Module 12a Hardware Reference 1 General-Purpose Microcontroller Module 12a Hardware Reference Release 1.4a (October 11, 2017) Purpose: General-purpose platform to accommodate
More informationNetworked Systems. Boon Thau Loo. University of Pennsylvania. NSF ExCAPE Meeting 20 Aug 2013
Networked Systems Boon Thau Loo University of Pennsylvania NSF ExCAPE Meeting 20 Aug 2013 Outline Summary (activities over past year) Research highlights Conclusion Year 1 in Retrospect Original proposal
More informationCeleron EPIC Computer with GUI and Dual Ethernet SBC4685
Celeron EPIC Computer with GUI and Dual SBC4685 Features Ready to run Celeron/Pentium III computer Color flat-panel support Four serial ports CAN Bus interface PC/104 & PC/104-Plus expansion The SBC4685
More informationFreescale Semiconductor Inc. Microcontroller Solutions Group. FRDM-KL46Z User s Manual FRDM-KL46Z-UM Rev. 1.0
Freescale Semiconductor Inc. Microcontroller Solutions Group FRDM-KL46Z User s Manual FRDM-KL46Z-UM Rev. 1.0 Table of Contents 1 FRDM-KL46Z Overview... 3 2 References documents... 3 3 Getting started...
More informationMega128-Net Mega128-Net Mega128 AVR Boot Loader Mega128-Net
Mega128-Net Development Board Progressive Resources LLC 4105 Vincennes Road Indianapolis, IN 46268 (317) 471-1577 (317) 471-1580 FAX http://www.prllc.com GENERAL The Mega128-Net development board is designed
More informationDwarf Boards. DN001 : introduction, overview and reference
Dwarf Boards DN001 : introduction, overview and reference (c) Van Ooijen Technische Informatica version 1.6 PICmicro, In-Circuit Serial Prograing and ICSP are registerd trademarks of Microchip Technology
More information