1 DiSTiL : A Transformation Library for Data Structures Yannis Smaragdakis.

Slides:



Advertisements
Similar presentations
Compilers Course 379K, TTH 9:30-11:00 Instructor: Dr. Doron A. Peled Office Hours: Mon 11:00-12:00.
Advertisements

Microsoft Research March 20, 2000 A Programming Language for Developing Interactive Web Services Claus Brabrand BRICS, University of Aarhus, Denmark.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Data Modeling and Database Design Chapter 1: Database Systems: Architecture and Components.
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Visualization Kenny Inthirath.  Reviewing a Suitable Technique to Use  Scope and Purpose  What types of models can be represented?  Architectural.
McGill University School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab MPM’09 Explicit Transformation Modelling Thomas.
Software Reuse Building software from reusable components Objectives
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Software Evolution Managing the processes of software system change
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
11 3 / 12 CHAPTER Databases MIS105 Lec14 Irfan Ahmed Ilyas.
Programming Languages Structure
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
The Composite Pattern.. Composite Pattern Intent –Compose objects into tree structures to represent part-whole hierarchies. –Composite lets clients treat.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Database Management Systems (DBMS)
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Data Structures and Programming.  John Edgar2.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
A Development Process Lecture Oo13 Objectory based method.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Kestrel Tools for Producing Reliable Software: Synthesis and Analysis Kestrel Institute Palo Alto, California Douglas R. Smith.
Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Generative Programming. Automated Assembly Lines.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
DataBase Management System What is DBMS Purpose of DBMS Data Abstraction Data Definition Language Data Manipulation Language Data Models Data Keys Relationships.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Lecture VIII: Software Architecture
CS 598 Scripting Languages Design and Implementation 12. Interpreter implementation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
CS223: Software Engineering
CS533 Concepts of Operating Systems Jonathan Walpole.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Introduction To Software Development Environment.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Interface Concepts Modeling Core Team
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Chapter 1 Introduction.
Component Based Software Engineering
 DATAABSTRACTION  INSTANCES& SCHEMAS  DATA MODELS.
Presentation transcript:

1 DiSTiL : A Transformation Library for Data Structures Yannis Smaragdakis

2 Overview u DiSTiL is a project to add GenVoca Components to Microsoft’s IP u Domain: container data structures

3 Overview (Continued) u Goal: increase productivity by programming in high-level data structure abstractions cursorcontainer

4 Overview (Continued) u Create complex container data structures by composing DiSTiL components u Design rule checking to ensure validity of component compositions u Automatic selection of data structures according to retrieval predicates

5 Implementation Platform u IP Transformation System (Microsoft Research) u Handling of code with tree primitives u User can define new language primitives ( intentions ) and write code to transform them at compilation ( reduction ) time

6 DiSTiL Library (Realms) u Data Structures (arrays, linked lists, red- black trees, hash-tables) u Storage (Persistent and Transient storage) u Architectural (create code in functions) u Special purpose layers (LRUTree) u Various data-structure related layers (garbage collection, bound checks) u Hidden layers (out-of-bounds, predicate, order)

7 DiSTiL Type Expressions u Typex construct: the composition of components (layers) that defines the target container data structure u Huge number of distinct container data structures can be generated from compositions of DiSTiL components

8 Cursors u Cursors define retrieval predicates over containers cursor(emp_cont, name “Akers”, no_order) u Predicates used to generate efficient code for retrievals u The “smart” part of the library

9 A Composite Data Structure Jones Keen Lam Mann Guy Koch Land Smith Ajit typex Example = malloc[transient]

10 A Composite Data Structure Jones Keen Lam Mann Guy Koch Land Smith Ajit typex Example = tree[malloc[transient]] key=name

11 typex Example = hash [ tree [ malloc [ transient]]] A Composite Data Structure Jones Keen Lam Mann Guy Koch Land Smith Ajit key=name key=phone

12 How to Use

13 What to Notice u Programming in domain-specific abstractions u makes code easier to understand u makes code more reliable (simpler and checked at a higher level) u makes code easier to evolve (can modify typex without modifying program) u should result in very good code

14 What to Notice u DiSTiL actually u can increase programmer productivity (simpler/shorter programs) u removes burden of coding & debugging data structures u can accommodate architectural styles

15 Example Application u LRU memory policy simulation

16 What is different about DiSTil? u Different from static libraries (e.g. STL): u meta-level optimizations (retrieval structure selection, updates) u more advanced static checking (design-rule checking) u level of programming significantly raised (“what” vs “how”) u more general, powerful approach u larger selection of structures/mechanisms

17 What is different about DiSTil? u Even at the usual level of abstraction u static libraries suffer from performance loss u not easy to integrate such a variety of components u example: templates and memory allocation u would have the added cost of a virtual dispatch u static consistency checking is a domain- specific mechanism (type checking)

18 Internal organization Quote Package Static Library Components Exported Symbols Predicate engine Transformatio n engine User Application Generated Application

19 Next Steps u Improve design-rule checking u Clarify design, possibly develop tools for writing generators u Explore ideas (explicit, generation-time scoping) examined in the Quote package u Broaden applications

20 Contributions of DiSTiL u Example of factored libraries (Biggerstaff 1994) u Primitive data structures factored in new ways (out-of-bounds checking, predicates on retrievals, inlined/functional implementation etc.) u Extensive background for software generator development in non-scoped environments (Quote package)

21 Contributions (cont’d) u Layered generator: u analysis of layer interaction u possible mechanisms to facilitate construction u determining pattern of information flow among layers