INRIA - LaBRICompose Group 2004 1 Generative Programming from a DSL Viewpoint Charles Consel Compose Research Group LaBRI – INRIA-Futurs 2004.

Slides:



Advertisements
Similar presentations
Charles Consel 1, Fabien Latry 1, and Julien Mercadal 1 IPTComm – July Phoenix Research Group INRIA / LaBRI Staging Telephony.
Advertisements

Microsoft Research March 20, 2000 A Programming Language for Developing Interactive Web Services Claus Brabrand BRICS, University of Aarhus, Denmark.
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.
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
1 DiSTiL : A Transformation Library for Data Structures Yannis Smaragdakis.
Assurance techniques for code generators Ewen Denney USRA/RIACS, NASA Ames Bernd Fischer ECS, U Southampton.
Ivan Towlson Mindscape.  What are DSLs and why should I care?  What are the Visual Studio DSL Tools?  Building a DSL  Vocabulary and grammar  Spiffing.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Reuse Building software from reusable components Objectives
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.
Reasons to study concepts of PL
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
Reference Book: Modern Compiler Design by Grune, Bal, Jacobs and Langendoen Wiley 2000.
Programming Languages Structure
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Trend towards Embedded Multiprocessors Popular Examples –Network processors (Intel, Motorola, etc.) –Graphics (NVIDIA) –Gaming (IBM, Sony, and Toshiba)
CS884 (Prasad)Java Goals1 “Perfect Quote” You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Research in Compilers and How it Relates to Software Engineering Part III: Relation to SE Tomofumi Yuki EJCP 2015 June 22, Nancy.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
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)
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
Xactium xDSLs Run Models Not Code Tony Clark
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY.
Language Design for Implementing Process Scheduling Hierarchies Julia L. Lawall DIKU, University of Copenhagen Gilles Muller, Hervé Duchesne Ecole des.
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
D O M A I N – D R I V E N D E V E L O P M E N T: Introduction i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Generative Programming. Automated Assembly Lines.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Specialized systems are  Inevitable  Already the norm  Practical.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
DSL Classification October 21-22, 2007 Benoît Langlois / Thales-EPM Consuela-Elena Jitia / Eric Jouenne, Thales Research & Technology The 7th OOPSLA Workshop.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
OOPSLA workshop on Domain-Specific Visual Languages 1 Framework for Domain-Specific Visual Languages Juha-Pekka.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
The Business Choreography Language (BCL) A Domain-Specific Language for Global Choreographies Institute for Software Technology and Interactive Systems.
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,
Trip Report: DSL ‘97 October 15-17, 1997 Santa Barbara CA.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Page 1 Towards a Schedu Capturing OS Expertise in an Event Type System: the Bossa Experience Julia L. Lawall DIKU, University of Copenhagen Joint work.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
1 Webcal: A Domain-specific Language for Web Caching Sumit Gulvani, Asha Tarachandani, Deepak Gupta, Dheeraj Sanghi Indian Institute of Technology, Kanpur,
DSLs: The Good, the Bad, and the Ugly Charles Consel INRIA / University of Bordeaux.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
TTCN-3 Testing and Test Control Notation Version 3.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
ENSEIRB, FranceCall/CSeptember 29, 2003 Call/C: A Domain Specific Language for IP Telephony Services Claus Brabrand [ joint work with Charles Consel &
Support for Program Analysis as a First-Class Design Constraint in Legion Michael Bauer 02/22/17.
Chapter 1 Introduction.
Language Translation Compilation vs. interpretation.
Chapter 1 Reasons to study concepts of PLs Programming Domains
Chapter 1 Introduction.
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Data, Databases, and DBMSs
Is “Higher Level” Better?
Presentation transcript:

INRIA - LaBRICompose Group Generative Programming from a DSL Viewpoint Charles Consel Compose Research Group LaBRI – INRIA-Futurs 2004

2INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: What Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family Problem Generator Program Application generator Preprocessor DSL compiler Specification Declaration DSL program

3INRIA - LaBRI Compose Group 2004 Unconventional, Domain-Specific Languages (1) Domain-specific notations and abstractions – Types (return value, SIP addr) – Exceptions (timers, resources…) Domain-specific verifications – No call loss – Valid state transition Domain-specific optimizations – Server state management Domain-specific code generation – Exception handling (multiple platforms) Domain-specific development tools – Textual tools – Graphical tools

4INRIA - LaBRI Compose Group 2004 Unconventional, Domain-Specific Languages (2) Examples of DSLs – Scripting languages Shell, AWK… (~) – Layer-oriented DSL XDR [ SUN ], Devil – Component-oriented DSL Plan-P, Bossa [ Muller & Lawall ], Call/C Benefits – Efficiency – Verification – Conciseness – Re-use – Productivity

5INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment

6INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment Generative Programming

7INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment Encoding of expertise Generative Programming

8INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Declarations / AOP Declarations Generator Program DS info: declarations BT declarations AOP (call pattern/history) Program Processor Exploitation Verification Optimization Code generation

9INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Annotations Annotations Generator Program DS info: annotations Assertions Hints Program Processor Exploitation Verification Optimization Code generation

10INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Meta-Programming Transformer Generator Program DS info: transformer Extensions Program Exploitation Verification Optimization Code generation

11INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming DSL Program Generator Program Domain-specific information Domain-specific abstractions ( Re-)use of GP tools Semantic independent Restricted Reliable Predictable Technology independent Traded for reduced flexibility DeclarationsAnnotationsTransformer Complementary

12INRIA - LaBRI Compose Group 2004 Disclaimers Not the panacea: need for a program family Not fixed : need to evolve with the program family Not GPL expressivity: – Not embedded language: embedding rich run-time environment

13INRIA - LaBRI Compose Group 2004 Conventional vs. Unconventional Unconventional today  conventional tomorrow Unconventional today  gone tomorrow Examples: – Garbage collection – Objects Counter-examples – Parallelizing compilers – Language-based machine architectures