DSLs: The Good, the Bad, and the Ugly Kathleen Fisher AT&T Labs Research.

Slides:



Advertisements
Similar presentations
Database Planning, Design, and Administration
Advertisements

1 Hancock: A Language for Extracting Signatures from Data Streams Kathleen Fisher Karin Högstedt Anne Rogers Fred Smith.
1 Program Design Language (PDL) Slides by: Noppadon Kamolvilassatian Source: Code Complete by Steve McConnell, Chapter 4.
Multidimensional Database Structure
Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S
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.
Getting a Web Page (And what to do once you’ve got it)
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
From Cooper & Torczon1 Implications Must recognize legal (and illegal) programs Must generate correct code Must manage storage of all variables (and code)
Lecture Nine Database Planning, Design, and Administration
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Course Instructor: Aisha Azeem
A tour of new features introducing LINQ. Agenda of LINQ Presentation We have features for every step of the way LINQ Fundamentals Anonymous Functions/Lambda.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs Cyrus Omar School of Computer Science Carnegie Mellon University [GlobalDSL13] Benjamin ChungAlex.
Extensible Type-Driven Parsing for Embedded DSLs in Wyvern Cyrus Omar Benjamin Chung Darya Kurilova Ligia Nistor Alex Potanin (Victoria University of Wellington)
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
The Pseudocode Programming Process Chapter 9. Summary of Steps in Building Classes and Routines.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
2.2 A Simple Syntax-Directed Translator Syntax-Directed Translation 2.4 Parsing 2.5 A Translator for Simple Expressions 2.6 Lexical Analysis.
1 Software Construction Software Construction Chapter 1.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
1 CSBP430 – Database Systems Chapter 1: Databases and Database Users Mamoun Awad College of Information Technology United Arab Emirates University
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Jozef Stefan Institute Program Generators and Control System Software Development Klemen Žagar Anže.
Methodology - Conceptual Database Design Transparencies
1 Chapter 15 Methodology Conceptual Databases Design Transparencies Last Updated: April 2011 By M. Arief
Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY.
Case 2: Emerson and Sanofi Data stewards seek data conformity
© 2007 by Prentice Hall 1 Introduction to databases.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Methodology - Conceptual Database Design. 2 Design Methodology u Structured approach that uses procedures, techniques, tools, and documentation aids to.
Data Management Console Synonym Editor
5-1 McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
Methodology - Conceptual Database Design
SOFTWARE & LOCALIZATION WEBSITE Simplify and accelerate your.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved. Computer Software Chapter 4.
PADS: Processing Arbitrary Data Streams Kathleen Fisher Robert Gruber.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Evaluating Python as an Introductory Programming Language A. Thomas and H.L. Liang UNISA.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Overview of Previous Lesson(s) Over View  A program must be translated into a form in which it can be executed by a computer.  The software systems.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 05, 2005 Lecture Number: 4.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Domain Specific Models John D. McGregor M13S1. Tool development Eclipse is an environment intended as a basis for building software engineering tools.
Database Systems Database Systems: Design, Implementation, and Management, Rob and Coronel.
DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools
The PADS-Galax Project Enabling XQuery over Ad-hoc Data Sources Yitzhak Mandelbaum.
Templates of slides for P2 1. A very brief refresher of your problem Describe in English -what artifacts (programs, etc) you wish to synthesize, -from.
Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden.
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
DSLs: The Good, the Bad, and the Ugly Charles Consel INRIA / University of Bordeaux.
CSC 4181 Compiler Construction
DSLs: The Good, the Bad, and the Ugly Marjan Mernik University of Maribor Faculty of Electrical Engineering and Computer Science.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Design Overview. Generated Packages ► fUML.Library.* - generated ► fUML.Semantics.* - generated ► fUML.Syntax.* - generated ► fUML.Test.* - generated.
What Do Compilers Do 1 A compiler acts as a translator, transforming human-oriented programming languages into computer-oriented machine languages. Ignore.
INTRODUCTION TO INFORMATION SYSTEMS LECTURE 9: DATABASE FEATURES, FUNCTIONS AND ARCHITECTURES PART (2) أ/ غدير عاشور 1.
Introduction To Software Development Environment.
Lexical and Syntax Analysis
Program Design Language (PDL)
Team Members: William Busby, Lindsey Gray, & David Meffe
Presentation transcript:

DSLs: The Good, the Bad, and the Ugly Kathleen Fisher AT&T Labs Research

Background Hancock – DSL for constructing customer „signatures” from transaction streams. – Facilitated efficient, high-level programs. – Used in production for > 8 years PADS – Declarative DSL for describing ad hoc data. – Generate in-memory representation, parser, printer, XML conversion tools, statistical analyses... – Used at AT&T to vet and load data into databases. Transaction Data Hancock Signature Database Data Warehouse [15/Oct/2006:18:46: ] "GET /turkey/amnty1.gif HTTP/1.0"

The Good Targeted abstractions mean DSL programs express important information & hide details. – “You can really see what we’re talking about” – Programs are shorter: easier to audit, maintain. – PADS descriptions serve as living documentation. From declarative specifications, we can generate multiple artifacts: – parser, printer, XML translation, statistical analyses,... Compiler can ensure properties of programs: – Parser will return meta-data that describes errors.

The Bad and The Ugly Challenge of routine features – Include in DSL: replicate a lot of effort! – Borrow from ‘host’ language: have to process host language code. Lack of tools – DSLs often lack debuggers, profilers, IDE support, etc., because building them is labor intensive. Reluctant customers – Learning new languages is hard!