Download presentation
Presentation is loading. Please wait.
Published byStewart Dickerson Modified over 9 years ago
1
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
2
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
3
Making langugages should be cheap
4
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) http://martinfowler.com/articles/languageWorkbench.html 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.
5
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 http://martinfowler.com/articles/languageWorkbench.html
6
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
7
For the definition of generic IDE components
8
Syntactic Editor Services Syntax highlighting Code folding Outline view Bracket highlighting and insertion Syntax completion
9
SDF: Declarative Syntax Definition
10
Content Completion
11
Semantic Analysis Stratego ( Error Markings) Desugaring (Simplify abstract representation) Reporting Warnings (Transformational process) Code Generation
12
Stratego: Rewriting Language Error Markings with Rewrite Rules
13
Code Generation with Rewrite Rules
14
Conclusion
15
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
16
Demo time
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.