Functional Image Synthesis. Pan An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable.

Slides:



Advertisements
Similar presentations
CSC 4181 Compiler Construction Code Generation & Optimization.
Advertisements

1 Symbol Tables. 2 Contents Introduction Introduction A Simple Compiler A Simple Compiler Scanning – Theory and Practice Scanning – Theory and Practice.
Writing Modern C++ Marc Grégoire Software Architect April 3 rd 2012.
Computational Models The exam. Models of computation. –The Turing machine. –The Von Neumann machine. –The calculus. –The predicate calculus. Turing.
Kristof Beyls, Erik D’Hollander, Frederik Vandeputte ICCS 2005 – May 23 RDVIS: A Tool That Visualizes the Causes of Low Locality and Hints Program Optimizations.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A.
8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
Optimization Compiler Baojian Hua
UNIT-III By Mr. M. V. Nikum (B.E.I.T). Programming Language Lexical and Syntactic features of a programming Language are specified by its grammar Language:-
Tim Sheard Oregon Graduate Institute Lecture 4: Staging Interpreters CSE 510 Section FSC Winter 2004 Winter 2004.
1 Towards formal manipulations of scenarios represented by High-level Message Sequence Charts Loïc Hélouet Claude Jard Benoît Caillaud IRISA/PAMPA (INRIA/CNRS/Univ.
Automated Soundness Proofs for Dataflow Analyses and Transformations via Local Rules Sorin Lerner* Todd Millstein** Erika Rice* Craig Chambers* * University.
By Neng-Fa Zhou Compiler Construction CIS 707 Prof. Neng-Fa Zhou
Lecture 01 - Introduction Eran Yahav 1. 2 Who? Eran Yahav Taub 734 Tel: Monday 13:30-14:30
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
10/22/2002© 2002 Hal Perkins & UW CSEG-1 CSE 582 – Compilers Intermediate Representations Hal Perkins Autumn 2002.
Recap from last time Saw several examples of optimizations –Constant folding –Constant Prop –Copy Prop –Common Sub-expression Elim –Partial Redundancy.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Operational Semantics Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
A Mystery Esterel –small no type inference, subtyping, … no recursion, functions, … no pointers, malloc, GC, … no complex data structures, libraries,
How domain specific are Domain Specific Languages? Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University.
L29:Lower Power Embedded Architecture Design 성균관대학교 조 준 동 교수,
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
Antigone Engine Kevin Kassing – Period
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
March 4, 2008 DF4-1http://csg.csail.mit.edu/arvind/ From Id/pH to Dataflow Graphs Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute.
Dan Johnson.  Functional language that started development in  Committee designed language  Pure and Lazy  Compiled or Interpreted  Named after.
Compiler Support for Profiling C++ Template Metaprograms József Mihalicza, Norbert Pataki, Zoltán Porkoláb Eötvös Loránd University Faculty of Informatics.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
SAVCBS 2006 p. 1 Specification of Iterators Bruce W. Weide Reusable Software Research Group The Ohio State University
Generative Programming. Automated Assembly Lines.
1 Fly – A Modifiable Hardware Compiler C. H. Ho 1, P.H.W. Leong 1, K.H. Tsoi 1, R. Ludewig 2, P. Zipf 2, A.G. Oritz 2 and M. Glesner 2 1 Department of.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Chapter 1 Introduction Study Goals: Master: the phases of a compiler Understand: what is a compiler Know: interpreter,compiler structure.
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
12/18/2015© Hal Perkins & UW CSEG-1 CSE P 501 – Compilers Intermediate Representations Hal Perkins Winter 2008.
0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.
First Order Haskell Neil Mitchell York University λ.
Music Programming Using New Features of Standard C++ Adrian Freed Amar Chaudhary Center for New Music and Audio Technologies University of California,
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
C H A P T E R T W O Linking Syntax And Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Lecture VIII: Software Architecture
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
1 “A picture speaks a thousand words.” Art By Ranjith & Waquas Islamiah Evening College.
Amir Shaikhha, Mohammed ElSeidy, Daniel Espino, and Christoph Koch
Functional Programming
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Chapter 1 Introduction.
Proof Carrying Code and Proof Preserving Program Transformations
Chapter 1 Introduction.
Closures and Streams cs784(Prasad) L11Clos
Important Concepts from Clojure
Important Concepts from Clojure
Implementing Language Extensions with Model Transformations
Intensity Transformation and Spatial Filtering
Compiler Code Optimizations
Intermediate Representations Hal Perkins Autumn 2005
<PETE> Shape Programmability
Important Concepts from Clojure
Parsing with IRONY Roman Ivantsov, MCSD
Implementing Language Extensions with Model Transformations
Groovy.
Presentation transcript:

Functional Image Synthesis

Pan An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable optimizing compiler

Examples

What’s an image? Assignment of color to points: R 2  Color Infinite, but color may be transparent Useful generalization: R 2  

Expressing functions Use -calculus (Church, Curry, etc): Or, non-anonymously: Currying isomorphism:     (   ) Good for partial application

Spatial transforms

Images

Higher-order functions Apply filter “about” a point:

Examples

Programming example

Another

Some details

Another

Implementation An “embedded language”, but compiled. Programs manipulate expression trees. Almost transparent, via overloading. Automatic full inlining. Simplification via smart constructors. First-order CSE and loop hoisting. Easy to reuse for new “language”.

More examples

Conclusions Modular & efficient image synthesis DSL design & implementation technique: –Simple, computable semantics –Embed in functional host language –Reusable optimizer & code generator To try: sound, 3D, … Freely available – try it out: