The Spoofax Language Workbench Rules for Declarative specification of language and IDEs Lennart C. L. Kats and Eelco Visser Delft University of Technology

Embed Size (px)

DESCRIPTION

Making langugages should be cheap

Citation preview

The Spoofax Language Workbench Rules for Declarative specification of language and IDEs Lennart C. L. Kats and Eelco Visser Delft University of Technology Presented by: Samta Garg MEng (ECE) CISC 836: Models in Software Development: Methods, Techniques and Tools Evolution of Software Engineering High level languages reduced the gap b/w problem and solution Domain specific Languages further reduced the gap b/w problem and implementation Making langugages should be cheap How can we make these things cheaply? Syntax definition Static semantics Model-to-model transformation Code generation Syntactic Editor Services Semantic Editor Services } Language Workbenches (Fowler 05)Fowler described that language workbenches greatly increase the cost effectiveness of developing a new language, perhaps even to the point that they can be developed for a single application as sometimes strived for in language-oriented programming. Martin Fowler says: I use Language Oriented Programming to mean the general style of development which operates about the idea of building software around of a set of DSLs. I use Language Workbench as a generic term for this new breed of tools. It is one way to do language oriented programming The Spoofax Language Workbench It is an integrated environment for the specification of languages with IDE support in Eclipse It supports language definition with declarative domain specific languages It enables efficient, agile development of software languages. SDF is used for supporting language extensions and embeddings Stratego is a transformation language which supports analysis, transformation, and code generation For the definition of generic IDE components Syntactic Editor Services Syntax highlighting Code folding Outline view Bracket highlighting and insertion Syntax completion SDF: Declarative Syntax Definition Content Completion Semantic Analysis Stratego ( Error Markings) Desugaring (Simplify abstract representation) Reporting Warnings (Transformational process) Code Generation Stratego: Rewriting Language Error Markings with Rewrite Rules Code Generation with Rewrite Rules Conclusion Positive Points Improvements Comparison to similar tools Coherent flow Future work is explanatory Impactful Conclusion Practical comparison based on performance and precision is not included Error marking is tedious Demo time