The Rascal Language Workbench
Tijs van der Storm Paul Klint Jurgen Vinju et al.
Tuesday, May 31, 2011
The Rascal Language Workbench Tijs van der Storm Paul Klint - - PowerPoint PPT Presentation
The Rascal Language Workbench Tijs van der Storm Paul Klint Jurgen Vinju et al. Tuesday, May 31, 2011 r Rascal Team o h t u a C W L Paul Jurgen Tijs Bob Klint Vinju v/d Storm Fuhrer P M I IBM I N R I A INRIA
Tijs van der Storm Paul Klint Jurgen Vinju et al.
Tuesday, May 31, 2011
I N R I A INRIA
Tuesday, May 31, 2011
“ G e n e r a t i
I n t e r a c t i v e P r
r a m m i n g E n v i r
m e n t s ” How Tijs & I were drafted...
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Generation Extraction Formalization Visualization Transformation Conversion Analysis
Tuesday, May 31, 2011
all about textual languages a model is source code a context-free grammar is a meta model a parse tree is a model instance a model transformation is a source-to-source transformation patterns written in concrete syntax textual languages may be mapped to abstract languages
Tuesday, May 31, 2011
all about abstract languages a model is data (adt, rel, set, map, int, str, loc) a rascal type is a meta model a value is a model instance model transformation is a function some details patterns are values with holes list, set, bag, map matching list, set, bag, map comprehension
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Familiar syntax & notation Immutable data Pattern-based dispatch Domain specific data-types General context-free grammars String templates Java back door to reuse third-party code IDE integration via Eclipse IMP
Tuesday, May 31, 2011
First Entities & Instances languages Immediate IDE: highlighting, folding, error marking, ... Java and SQL generation Online checking and error marking Then modular extensions Packages: Source-to-source transformation Derived I: expression language extension Derived II: linking to host language using annotations
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
4 languages 1+4 IDEs (Rascal’ s + Dynamically installed) 3 checkers 3 code generators to Java 1 SQL code generator 2 XML code generators Total lines of code: 950 LOC
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Tuesday, May 31, 2011
Applications in Software Analysis & Transformation Applications in DSL development and evaluation Move to Eclipse.org (next month) More grammarware (CASE for grammars) More source/model visualization import/ export
Tuesday, May 31, 2011
Tuesday, May 31, 2011