DSL’09 Kickoff! Walid Mohamed Taha Rice University Walid Mohamed Taha Rice University
Overview of DSL’09 Kickoff What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog
Overview of DSL’09 Kickoff What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog
What is a DSL?
Problem General Purpose Programming Languages Research Goal: “One language to rule them all” Result: FORTRAN, LISP, Scheme, ML, COBOL, C, C++, Java, C#, Python, Perl,... General Purpose Programming Languages Research Goal: “One language to rule them all” Result: FORTRAN, LISP, Scheme, ML, COBOL, C, C++, Java, C#, Python, Perl,...
Solution The “domain-specific” revolution Key idea: One type of problem, or “domain” One “domain-specific” language, or DSL The “domain-specific” revolution Key idea: One type of problem, or “domain” One “domain-specific” language, or DSL
Examples from my research RIDLReactive Systems PhyDLPhysical modeling VPPHardware description UccelloVisual programming RIDLReactive Systems PhyDLPhysical modeling VPPHardware description UccelloVisual programming
The “Killer Example”: MS Excel Taught in high school 55M users Taught in high school 55M users
What is a DSL? A definition Why DSLs are here to stay How DSLs will transform our lives Questions for the week A definition Why DSLs are here to stay How DSLs will transform our lives Questions for the week
A Definition
Common examples mislead us Lex/yacc: parsing SQL, Datalog: data base management LaTeX, HTML: document markup JavaScript: Client-side applications Lex/yacc: parsing SQL, Datalog: data base management LaTeX, HTML: document markup JavaScript: Client-side applications
Non-definitions A DSL is a “little language” A DSL is not a general purpose A DSL is for novices A DSL is not Turing complete A DSL is a “little language” A DSL is not a general purpose A DSL is for novices A DSL is not Turing complete
Key insight DSL = Jargon + Formal Meaning
Definition of a DSL A domain is well defined and central Notation is clear Informal meaning is clear Formal meaning is clear and realized A domain is well defined and central Notation is clear Informal meaning is clear Formal meaning is clear and realized
Domain is clear
How to define a domain Computer-based approach Example: FSM, NP, Turing, etc... User-based approach More meaningful to users More problem-oriented Computer-based approach Example: FSM, NP, Turing, etc... User-based approach More meaningful to users More problem-oriented
Notation is clear
Informal meaning is clear
Formal meaning is clear A association exists from notation to a mathematical expression, or... A association exists from notation to a mathematical expression, or... = ?
Formal meaning is clear A association exists from notation to a mathematical expression, or a program A association exists from notation to a mathematical expression, or a program = =
Why DSLs are here to stay
Codification and humanity Codification is as ancient as we are Language is essential for communication Codification is as ancient as we are Language is essential for communication
Codification is iterative Pictography :-) Calligraphy Spelling Grammar Pictography :-) Calligraphy Spelling Grammar
Bigger ideas mean new patterns
DSLs will transform our lives
How DSLs helps us Is the main benefit of DSLs performance? Focus of work on yacc, SQL, data log Green concern: reducing pollution or user (“programmer”) productivity? Harder to quantify, but is often the real win Is the main benefit of DSLs performance? Focus of work on yacc, SQL, data log Green concern: reducing pollution or user (“programmer”) productivity? Harder to quantify, but is often the real win
Cooking: Recipes are algorithms Takes time Significant “IP” Mechanizable? Takes time Significant “IP” Mechanizable?
Insurance and Privacy Policies Does it say what I understand? Is this covered? Does it say what I understand? Is this covered?
Self Expression and the Arts Traditional production is very costly New tools, new media and changing the landscape Traditional production is very costly New tools, new media and changing the landscape
Initial set of questions What are the research priorities in this areas? What are the key technical challenges? What are the core tools available for work in this area? How does a practitioner go about building a DSL today? Should there be a DSL'10? What are the research priorities in this areas? What are the key technical challenges? What are the core tools available for work in this area? How does a practitioner go about building a DSL today? Should there be a DSL'10?
We want your input! Tell us how close “What is a DSL?” gets to your views Suggest additional questions for the panel discussion Tell us how close “What is a DSL?” gets to your views Suggest additional questions for the panel discussion
Overview of DSL’09 Kickoff What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants Blog What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants Blog
Program Committee Report Submissions: 48. Selected: 18. Acceptance rate: 38% Almost submissions all got four reviews Categories: Case studies (most popular) Tools and methods (second most popular) Semantics (small number) Submissions: 48. Selected: 18. Acceptance rate: 38% Almost submissions all got four reviews Categories: Case studies (most popular) Tools and methods (second most popular) Semantics (small number)
Overview of DSL’09 Kickoff What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog What is a DSL? Challenge: Can we find “our GCD” Questions for the panel (Friday) Program committee report Overview of meeting agenda Discussants The DSL’09 Blog
Meeting Agenda WednesdayThursdayFriday Kickoff Semantics Keynote M&T 2 Keynote C.S. 2 Keynote M&T 1 C.S. 1C.S. 3 Panel Punting tripBanquet
Discussants This is new, intended to encourage collaboration: Talk format 25 minutes for speaker to present work 5 minutes for discussant to comment on work 10 minutes for open discussions Suggestions for discussants Several already posted on blog. In addition, Consider whether paper addresses a panel questions This is new, intended to encourage collaboration: Talk format 25 minutes for speaker to present work 5 minutes for discussant to comment on work 10 minutes for open discussions Suggestions for discussants Several already posted on blog. In addition, Consider whether paper addresses a panel questions
DSL09.blogspot.com Also new, intended to encourage collaboration :) Use it to: Keep up with conference, now and afterwards Tell the world what you think a DSL is! Post your discussant summary Do this after you’ve given it at the conference Pose or answer panel questions To answer questions you get at the conference Share recollections about Peter Landin Also new, intended to encourage collaboration :) Use it to: Keep up with conference, now and afterwards Tell the world what you think a DSL is! Post your discussant summary Do this after you’ve given it at the conference Pose or answer panel questions To answer questions you get at the conference Share recollections about Peter Landin