Building a Program Generator With Scala

Slides:



Advertisements
Similar presentations
Practical Course SC & V Free Boundary Value Problems Dr. Miriam Mehl Institut für Informatik Scientific Computing in Computer Science.
Advertisements

C&O 355 Lecture 22 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A A A.
Matroids from Lossless Expander Graphs
Functional Image Synthesis. Pan An image synthesis “language” Images are functions Continuous and infinite Embedded in a functional host language Reusable.
INSPIRE The Insieme Parallel Intermediate Representation Herbert Jordan, Peter Thoman, Simone Pellegrini, Klaus Kofler, and Thomas Fahringer University.
Local Computation Algorithms
Carnegie Mellon Automatic Generation of Vectorized Fast Fourier Transform Libraries for the Larrabee and AVX Instruction Set Extension Automatic Generation.
Title of your presentation Jane Doe Hans Müller TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA.
The double-dimer model and skew Young diagrams Richard W. Kenyon David B. Wilson Brown University Microsoft Research TexPoint fonts used in EMF. Read the.
Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language Chris Wailes and Graham Price.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
How domain specific are Domain Specific Languages? Greg Michaelson School of Mathematical & Computer Sciences Heriot-Watt University.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Have Your Verified Compiler And Extend It Too Zachary Tatlock Sorin Lerner UC San Diego.
McLab Tutorial Part 6 – Introduction to the McLab Backends MATLAB-to-MATLAB MATLAB-to-Fortran90 (McFor) McVM with JIT 6/4/2011Backends-
Carnegie Mellon SPIRAL: An Overview José Moura (CMU) Jeremy Johnson (Drexel) Robert Johnson (MathStar) David Padua (UIUC) Viktor Prasanna (USC) Markus.
SPL: A Language and Compiler for DSP Algorithms Jianxin Xiong 1, Jeremy Johnson 2 Robert Johnson 3, David Padua 1 1 Computer Science, University of Illinois.
Short Vector SIMD Code Generation for DSP Algorithms
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
High Performance Linear Transform Program Generation for the Cell BE
Cs3102: Theory of Computation Class 4: Nondeterminism Spring 2010 University of Virginia David Evans TexPoint fonts used in EMF. Read the TexPoint manual.
Continued Fractions, Euclidean Algorithm and Lehmer’s Algorithm Applied Symbolic Computation CS 567 Jeremy Johnson TexPoint fonts used in EMF. Read the.
Carnegie Mellon Generating High-Performance General Size Linear Transform Libraries Using Spiral Yevgen Voronenko Franz Franchetti Frédéric de Mesmay Markus.
Spiral: an empirical search system for program generation and optimization David Padua Department of Computer Science University of Illinois at Urbana-
Development Timelines Ken Kennedy Andrew Chien Keith Cooper Ian Foster John Mellor-Curmmey Dan Reed.
The Chain Rule Rule for finding the derivative of a composition of two functions. If y is a function of u and u is a function of x, then y is a function.
C++ Panel Discussion Summary Jim Kowalkowski. Participants Amber Boehnlein Jim Kowalkowski Leo Michelotti Marc Paterno Liz Sexton-Kennedy Bjarne Stroustrup.
Generative Programming. Automated Assembly Lines.
Semantics & Verification Research Group Department of Computer Science University of Malta FLACOS 2008 Detection of Conflicts in Electronic Contracts Stephen.
Distributed WHT Algorithms Kang Chen Jeremy Johnson Computer Science Drexel University Franz Franchetti Electrical and Computer Engineering.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department.
Parallel Sessions: Compilers Moderator: Quinlan Panelists: Milind Kulkarni (Purdue), David Padua (UIUC), P. Sadayappan (Ohio State), Armando Solar-Lezama.
Zero-Knowledge Argument for Polynomial Evaluation with Applications to Blacklists Stephanie Bayer Jens Groth University College London TexPoint fonts used.
Compilers as Collaborators and Competitors of High-Level Specification Systems David Padua University of Illinois at Urbana-Champaign.
Carnegie Mellon Program Generation with Spiral: Beyond Transforms This work was supported by DARPA DESA program, NSF-NGS/ITR, NSF-ACR, Mercury Inc., and.
Functional Programming IN NON-FUNCTIONAL LANGUAGES.
1 Proving program termination Lecture 5 · February 4 th, 2008 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A.
More linear search with invariants CS 5010 Program Design Paradigms “Bootcamp” Lesson TexPoint fonts used in EMF. Read the TexPoint manual before.
Carnegie Mellon Vadim Zaliva, Franz Franchetti Carnegie Mellon University Department of Electrical and Computer Engineering Funded by the DARPA I2O HACMS.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
In Search of the Optimal WHT Algorithm J. R. Johnson Drexel University Markus Püschel CMU
UMBC CMSC 331 Case Classes in Scala Intro. Basic Properties Case classes are regular classes which export their constructor parameters and which provide.
CS498 DHP Program Optimization Fall Course organization  Instructors: Mar í a Garzar á n David Padua.
Counterexample-Guided Abstraction Refinement By Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith Presented by Yunho Kim Provable Software.
Bootstrapping a Modelica Compiler Martin Sjölund, Peter Fritzson, Adrian Pop Linköping University th International Modelica Conference Dresden,
Amir Shaikhha, Mohammed ElSeidy, Daniel Espino, and Christoph Koch
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Lesson #6 Modular Programming and Functions.
Lesson #6 Modular Programming and Functions.
Machine Learning and Data Mining Clustering
Lesson #6 Modular Programming and Functions.
TexPoint fonts used in EMF.
TexPoint fonts used in EMF.
High Performance Computing (CS 540)
Is “Higher Level” Better?
Foundations of Programming Languages – Course Overview
Foundations of Programming Languages – Course Overview
Husam Abu-Haimed David L. Dill Sergey Berezin
Uri Zwick – Tel Aviv Univ.
Case Classes in Scala Intro
CSE 321 Discrete Structures
Lesson #6 Modular Programming and Functions.
The Challenge of Teaching Program Performance Tuning
The Challenge of Cross - Language Interoperability
TexPoint fonts used in EMF.
New Direct Product results in Communication Complexity
COINS‥ a COmpiler INfraStructure
Remove all labels from supplies and box
Presentation transcript:

Building a Program Generator With Scala Georg Ofenbeck Markus Püschel Computer Science TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAA

Goal Building a prototypical program generator inside Scala “Spiral like” Support for Domain specific languages (algorithm representation) Rewriting (on DSL for structural optimization) Compilation ( DSL, → DSL2, → …. → C)

DSL in Scala: SPL Lightweight Modular Staging [1] F_2 tensor I(4) Rep[F_2] tensor Rep[I(4)] Rep[+T] abstract type constructor Tensor (Exp[F_2], Exp[I(4)]) Symbol X Tensor (Exp[F_2], Exp[I(4)]) [1]: Rompf, Odersky: Lightweight Modular Staging: A Pragmatic Approach to Runtime Code Generation and Compiled DSLs. GPCE’10

DSL in Scala: SPL ( DFT(k) tensor I(m) ) compose T(n, m) compose ( I(k) tensor DFT(m) ) compose L(n, k) Binding times distinguished only by types Full host language available to process the DSL Sharing of DSL infrastructure possible between DSLs

Rewriting Pattern matching in Scala naturally supports this

Compilation DSL to DSL . . . . Subset of C as DSL . . . .

State of the Work Level 1 Straight-line Code PCDI/ICCS 2001 Level 2 Looped Code Sigma SPL PLDI 2005 Level 3 Parallelism Tag based rewriting SC 2006 Level 4 Library Generation Recursion step closure CGO 2009 Markus Püschel, Franz Franchetti and Yevgen Voronenko, Spiral, in Encyclopedia of Parallel Computing, Eds. David Padua, Springer 2011