• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The Spoofax Language Workbench (SPLASH 2010)
 

The Spoofax Language Workbench (SPLASH 2010)

on

  • 4,199 views

Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. It provides a comprehensive environment that integrates syntax ...

Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. It provides a comprehensive environment that integrates syntax definition, program transformation, code generation, and declarative specification of IDE components.

Statistics

Views

Total Views
4,199
Views on SlideShare
1,789
Embed Views
2,410

Actions

Likes
0
Downloads
32
Comments
0

5 Embeds 2,410

http://strategoxt.org 2295
http://www.program-transformation.org 109
https://strategoxt.org 3
http://translate.googleusercontent.com 2
http://www.docshut.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The Spoofax Language Workbench (SPLASH 2010) The Spoofax Language Workbench (SPLASH 2010) Presentation Transcript

    • The Spoofax Language Workbench Lennart Kats Eelco Visser
    • Software Engineering implement Problem Software validate
    • High-level languages reduce problem/solution gap Problem HLL Machine Domain
    • Domain-Specific Languages Problem DSL HLL Machine Domain DSLs further reduce gap between problem domain and implementation
    • Example DSL:
    • paradigm: linguistic abstraction
    • making languages should be cheap
    • Compiler Ingredients Syntax definition ★ concrete syntax ★ abstract syntax parser Static semantics generators meta- ★ error checking programming ★ name resolution libraries ★ type analysis meta- programming Model-to-model transformation languages ★ express constructs in core language template Code generation engines ★ translate core language models to implementation
    • Editor Services syntactic editor services semantic editor services • syntax highlighting • error marking • syntax checking • reference resolving • outline view • hover help • bracket matching, insertion • mark occurrences • automatic indentation • content completion • syntax completion • refactoring • ... • ...
    • Syntax definition Static semantics Model-to-model transformation Language Code generation workbenches Syntactic Editor Services [Fowler ’05] Semantic Editor Services how can we make these things cheaply?
    • Language Workbench: integrated environment for language definition
    • Holy Grail of Software Language Definition Automatically derive efficient, scalable, incremental compiler + usable IDE from high-level, declarative language definition
    • Stratego SDF Eclipse IMP
    • Stratego on by ni ti SDF D efi ion Eclipse ge ua form at ng ns La ra T IMP
    • • <spoofax screenshot: lang def and lang use in Eclipse workspace>
    • SDF: Declarative Syntax Definition
    • A syntax definition specifies a transformation from text to trees
    • Syntax as Transformation
    • Syntax as Transformation
    • Syntax as Transformation transform
    • Syntax as Transformation transform
    • Syntax as Transformation transform
    • Semantics = transformation
    • Error Marking is a Transformation transform
    • Error Marking is a Transformation transform
    • Error Marking is a Transformation transform transform
    • Error Marking is a Transformation transform transform
    • Error Marking is a Transformation transform transform
    • Outline View is a Transformation transform
    • Hyperlinking is a Transformation m sfor tran
    • Content Completion is a Transformation orm tsfa rm ro nsf tran
    • Code Generation is a Transformation transform
    • Need for single, unified language specification: • Editor services • Model transformations • Code generation
    • Stratego: Rewriting Language
    • Rewrite rules Strategies
    • Error Marking with Rewrite Rules
    • Error Marking with Rewrite Rules
    • Error Marking with Rewrite Rules transform Origin tracking transform
    • Analysis with Rewrite Rules
    • Code Generation with Rewrite Rules
    • Conclusion • Co-evolution of language and IDE • Pure and declarative syntax definition • Language definition by transformation • www.spoofax.org: papers, tour, download