SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
DSL and EMFTEXT 
DSL AND EMFTEXT 
Eclipse Day Bangalore Sep20, 2014 
1 
RAJKUMAR K (RBEI) 
KULANDAI VELU (RBEI)
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
2 
AGENDA 
What is DSL? 
Eclipse in DSL 
What is EMFText? 
Why to use EMFText? 
Features of EMFText 
EMFText language development process 
Customizations Techniques and Concrete Customizations 
Integration with Other Frameworks 
Demo 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
What is DSL? 
DSLs are small, expressive programming languages designed for particular domain or task DSL has limited in scope and capabilities DSLs are focused on a certain type of a problem or domain, and on expressing a narrow set of solutions within the context of that limited scope Domain experts can understand, validate and modify DSL programs DSLs are easy to learn and don't need to spend time for learning difficult and complicated languages (C, C++,C#, .NET, Java and etc) Examples HTML, CSS, ANTLR, MAKEFILE, UNIX SHELL SCRIPT, SQL 
3 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Eclipse in DSL 
Eclipse offers frameworks for domain-specific modeling and defining textual domain specific language 
Domain-specific modeling 
EMF - Modeling frame work and code generation facility for structured model GMF - Supports developing the graphical editors for structured model 
Defining textual domain specific language (EMFText) 
Enables developers to define textual DSL quickly Don’t require to learn new technologies and concepts Collection of 100 concrete text syntaxes to define new languages of our own Derives the textual syntax for DSL from ECORE meta model 
4 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
What is EMFText ? 
5 
Meta Model 
Concrete Syntax 
Semantics 
EMFTEXT 
Domain concepts, relations, attributes 
Syntax, 
Shapes 
Behavior, 
meaning 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Why to use EMFText ? 
Readability 
Version control 
Backward compatibility 
OS independent 
Quick model instantiation 
Tool reuse 
Easy to understand 
Clear structure 
Tracing artifacts 
Custom syntax is much easier to read than XML 
Comparing and diffing the XML produce useless results 
Existing models can be fixed on new version of Meta model 
Text can edited on every OS with single text editor 
Default HUTN Syntax instantly allows to create model instances 
Transform documents (ATL) or analyze them (OCL) 
Working on modelling tools allows easy to query 
Easier to maintain document formats 
Trace requirements from initial documents down to the running code 
6 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Generation Features 
Generation of Independent code Generated code doesn’t contain dependencies to EMFText All code is fully customizable Deployable in non EMFtext environment UI code is generated to a separate plug-in enabling the usage of DSLs in headless environments 
Generation of default Syntaxes Syntax that conforms to HUTN standard Java –like syntax Custom syntax configuration 
Highly customizable code generation Provide many options to tailoring its code generation process to specific needs Supports 293 customizable code generation options ex: additionalDependencies, additionalExports, disableBuilder 
7 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Specification Features 
Modular specification Modularization and extension of CS specifications Support for abstract syntaxes and syntax imports Simple and precise syntax specification 
Default reference resolving mechanisms Default name resolution mechanism External references resolved automatically Complex resolution mechanisms can be realized 
Comprehensive syntax analysis Informs developer about potential error in syntax ex: missing syntax for certain meta class Supports 20 plus warning messages 
8 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Other Features 
9 
Editor Features Advanced features like Java Editor Outline View Customizable Syntax Highlighting Occurrence Highlighting Code Completion Bracket handling Hyperlinks Text hovers Quick Fix 
Build Features Generation of builder and interpreter stubs Customizable builder and interpreter ANT support to generate text syntax plug-ins in build scripts 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
EMFText language development process 
10 
Iterative EMFText Language development process 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Specifying a Language Meta-Model 
11 
Meta model elements: Classes Data Types Enumerations Attributes References(Containment, Non- containment) Cardinalities Inheritance 
Creating a new meta model: Define concepts, relations and 
properties in an Ecore model Existing meta models can be 
imported (e.g., UML, Ecore,…) 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
12 
Specifying the Language's Concrete Syntax Textual representation of all 
Meta-model concepts Automatically create the syntax 
generator conforming to HUTN Possible to specify manually the concrete 
syntax Syntax specification rules are derived 
from EBNF syntax specification language Provide advance support like errors and 
warning if consistent during syntax 
specification 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Specifying the language CS’ syntax 
13 
Header 
SYNTAXDEF <yourFileExtension> 
FOR <namespaceURI> 
START <Root Model> 
Body 
(optional )TOKENS { Identifiers, numbers etc} 
(optional )TOKENSTYLES {color and font style} 
Bottom 
Rules{ own rules} 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Specifying the language CS’ syntax 
14 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Customizations Techniques 
Overriding Generated Artifacts 
Provides Override option for all generated artifacts Possible to specify not to override the specific class or file Possible to customize the hover text using overrideHoverTextProvider 
Overriding Meta Information Classes 
SetOverride option to false for meta information class Using subclass instead of overriding the class directly Make customizations by overriding individual methods 
Using Generated Extension Points 
Customize the resource loader by using default_load_options Customize the registration of parser by using additional_extension_parser 
15 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Customizing Token Resolving 
Customizing Reference Resolving 
Implementing Post Processors 
Implementing Quick Fixes 
Implementing Builders 
Implementing Launch Support 
Enabling Debug Support 
Customizing Text Hovers 
16 
Concrete Customizations 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Integration with Other Frameworks 
Integration with the EMF Edit Framework 
EMFText is tightly integrated with EMF Edit Framework Provider class will be used to obtain icons and labels for the outline view Icons shown in code completion proposals Consistent presentation of DSLs across different kind of editors 
Integration with the EMF Validation Framework 
EMFText integrate your DSL tooling with EMF validation Framework On editing DSL documents, only live constraints are evaluated Batch constraints are re-evaluated when documents are saved Consistent presentation of DSLs across different kind of editors Ensure constraintProvider extension must set to mixed mode 
17 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
18 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Conclusion 
19 EMFText is a tool for defining textual syntax for Ecore-based metamodels Enable developers to define their own textual languages – be it DSL Provides a Domain specific language for syntax specification Generates a full-fledged Eclipse Editor Includes a parser for loading textual models Includes a printer for storing model instances Provides editor will all its customizable components 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
20 
DSL and EMFTEXT
RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 
Thank you 
21 
http://www.emftext.org 
DSL and EMFTEXT

Mais conteúdo relacionado

Mais procurados

Mais procurados (6)

Mule copy book-tutorial
Mule copy book-tutorialMule copy book-tutorial
Mule copy book-tutorial
 
Java
JavaJava
Java
 
Programming
ProgrammingProgramming
Programming
 
Group 4 programming language
Group 4 programming languageGroup 4 programming language
Group 4 programming language
 
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristolDarren galpin q4_2008_bristol
Darren galpin q4_2008_bristol
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
 

Semelhante a DSL and EMFText

Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 
The Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFThe Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFMarkus Voelter
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
Best things to know about .net framework
Best things to know about .net frameworkBest things to know about .net framework
Best things to know about .net frameworkShelly Megan
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001Vinayak Tavargeri
 
Charles Hale 7 2010 Rev1
Charles Hale 7 2010 Rev1Charles Hale 7 2010 Rev1
Charles Hale 7 2010 Rev1CRHale
 
Charles Hale 9 2010 Rev1
Charles Hale 9 2010 Rev1Charles Hale 9 2010 Rev1
Charles Hale 9 2010 Rev1CRHale
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the FutureHiveMQ
 
Charles Hale 1 2011
Charles Hale 1 2011Charles Hale 1 2011
Charles Hale 1 2011CRHale
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Net framework
Net frameworkNet framework
Net frameworkjhsri
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkDave Steinberg
 
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...zOSCommserver
 

Semelhante a DSL and EMFText (20)

Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 
The Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFThe Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelF
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
Best things to know about .net framework
Best things to know about .net frameworkBest things to know about .net framework
Best things to know about .net framework
 
Bringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSEBringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSE
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001
 
Charles Hale 7 2010 Rev1
Charles Hale 7 2010 Rev1Charles Hale 7 2010 Rev1
Charles Hale 7 2010 Rev1
 
Charles Hale 9 2010 Rev1
Charles Hale 9 2010 Rev1Charles Hale 9 2010 Rev1
Charles Hale 9 2010 Rev1
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future
 
Charles Hale 1 2011
Charles Hale 1 2011Charles Hale 1 2011
Charles Hale 1 2011
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Net framework
Net frameworkNet framework
Net framework
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
 
Inside.Net
Inside.NetInside.Net
Inside.Net
 
Visual studio
Visual studioVisual studio
Visual studio
 
Introduction To MDD
Introduction To MDDIntroduction To MDD
Introduction To MDD
 
Code generation
Code generationCode generation
Code generation
 
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
 

Mais de Eclipse Day India

Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertEclipse Day India
 
Eclipse IDE Tips and Tricks - Lakshmi Priya Shanmugam
Eclipse IDE Tips and Tricks - Lakshmi Priya ShanmugamEclipse IDE Tips and Tricks - Lakshmi Priya Shanmugam
Eclipse IDE Tips and Tricks - Lakshmi Priya ShanmugamEclipse Day India
 
Pattern Matching in Java - Srikanth Sankaran
Pattern Matching in Java - Srikanth SankaranPattern Matching in Java - Srikanth Sankaran
Pattern Matching in Java - Srikanth SankaranEclipse Day India
 
Machine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser EbrahimMachine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser EbrahimEclipse Day India
 
Scaling Eclipse on HiDPI Monitors - Niraj Modi
Scaling Eclipse on HiDPI Monitors - Niraj ModiScaling Eclipse on HiDPI Monitors - Niraj Modi
Scaling Eclipse on HiDPI Monitors - Niraj ModiEclipse Day India
 
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Eclipse Day India
 
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan HerrmannSupporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan HerrmannEclipse Day India
 
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jerseyEclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jerseyEclipse Day India
 
Eclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India
 
Eclipse Day India 2015 - Java 8 Overview
Eclipse Day India 2015 - Java 8 OverviewEclipse Day India 2015 - Java 8 Overview
Eclipse Day India 2015 - Java 8 OverviewEclipse Day India
 
Eclipse Day India 2015 - Java 9
Eclipse Day India 2015 - Java 9Eclipse Day India 2015 - Java 9
Eclipse Day India 2015 - Java 9Eclipse Day India
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India
 
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automation
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automationEclipse Day India 2015 - Eclipse RCP testing using Jubula based automation
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automationEclipse Day India
 
Eclipse Day India 2015 - Oomph
Eclipse Day India 2015 - OomphEclipse Day India 2015 - Oomph
Eclipse Day India 2015 - OomphEclipse Day India
 
Eclipse Day India 2015 - Keynote (Mike Milinkovich)
Eclipse Day India 2015 - Keynote (Mike Milinkovich)Eclipse Day India 2015 - Keynote (Mike Milinkovich)
Eclipse Day India 2015 - Keynote (Mike Milinkovich)Eclipse Day India
 
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in EclipseEclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in EclipseEclipse Day India
 

Mais de Eclipse Day India (20)

Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley Lambert
 
Eclipse IDE Tips and Tricks - Lakshmi Priya Shanmugam
Eclipse IDE Tips and Tricks - Lakshmi Priya ShanmugamEclipse IDE Tips and Tricks - Lakshmi Priya Shanmugam
Eclipse IDE Tips and Tricks - Lakshmi Priya Shanmugam
 
Pattern Matching in Java - Srikanth Sankaran
Pattern Matching in Java - Srikanth SankaranPattern Matching in Java - Srikanth Sankaran
Pattern Matching in Java - Srikanth Sankaran
 
Machine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser EbrahimMachine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser Ebrahim
 
Scaling Eclipse on HiDPI Monitors - Niraj Modi
Scaling Eclipse on HiDPI Monitors - Niraj ModiScaling Eclipse on HiDPI Monitors - Niraj Modi
Scaling Eclipse on HiDPI Monitors - Niraj Modi
 
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
Please Behave Yourself: BDD and automating Eclipse RCP applications using JBe...
 
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan HerrmannSupporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
 
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jerseyEclipse Day India 2015 - Rest with Java (jax rs) and jersey
Eclipse Day India 2015 - Rest with Java (jax rs) and jersey
 
Eclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JITEclipse Day India 2015 - Java bytecode analysis and JIT
Eclipse Day India 2015 - Java bytecode analysis and JIT
 
Eclipse Day India 2015 - Java 8 Overview
Eclipse Day India 2015 - Java 8 OverviewEclipse Day India 2015 - Java 8 Overview
Eclipse Day India 2015 - Java 8 Overview
 
Eclipse Day India 2015 - Java 9
Eclipse Day India 2015 - Java 9Eclipse Day India 2015 - Java 9
Eclipse Day India 2015 - Java 9
 
Eclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan HerrmannEclipse Day India 2015 - Keynote - Stephan Herrmann
Eclipse Day India 2015 - Keynote - Stephan Herrmann
 
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automation
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automationEclipse Day India 2015 - Eclipse RCP testing using Jubula based automation
Eclipse Day India 2015 - Eclipse RCP testing using Jubula based automation
 
Eclipse Day India 2015 - Oomph
Eclipse Day India 2015 - OomphEclipse Day India 2015 - Oomph
Eclipse Day India 2015 - Oomph
 
Eclipse Day India 2015 - Keynote (Mike Milinkovich)
Eclipse Day India 2015 - Keynote (Mike Milinkovich)Eclipse Day India 2015 - Keynote (Mike Milinkovich)
Eclipse Day India 2015 - Keynote (Mike Milinkovich)
 
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in EclipseEclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
Eclipse Day India 2015 - Unleashing the Java 8 Tooling in Eclipse
 
IDS and Bluemix
IDS and BluemixIDS and Bluemix
IDS and Bluemix
 
SWT - Technical Deep Dive
SWT - Technical Deep DiveSWT - Technical Deep Dive
SWT - Technical Deep Dive
 
PDE builds or Maven
PDE builds or MavenPDE builds or Maven
PDE builds or Maven
 
Orion - IDE on the cloud
Orion - IDE on the cloudOrion - IDE on the cloud
Orion - IDE on the cloud
 

Último

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

DSL and EMFText

  • 1. EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. DSL and EMFTEXT DSL AND EMFTEXT Eclipse Day Bangalore Sep20, 2014 1 RAJKUMAR K (RBEI) KULANDAI VELU (RBEI)
  • 2. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 2 AGENDA What is DSL? Eclipse in DSL What is EMFText? Why to use EMFText? Features of EMFText EMFText language development process Customizations Techniques and Concrete Customizations Integration with Other Frameworks Demo DSL and EMFTEXT
  • 3. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. What is DSL? DSLs are small, expressive programming languages designed for particular domain or task DSL has limited in scope and capabilities DSLs are focused on a certain type of a problem or domain, and on expressing a narrow set of solutions within the context of that limited scope Domain experts can understand, validate and modify DSL programs DSLs are easy to learn and don't need to spend time for learning difficult and complicated languages (C, C++,C#, .NET, Java and etc) Examples HTML, CSS, ANTLR, MAKEFILE, UNIX SHELL SCRIPT, SQL 3 DSL and EMFTEXT
  • 4. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Eclipse in DSL Eclipse offers frameworks for domain-specific modeling and defining textual domain specific language Domain-specific modeling EMF - Modeling frame work and code generation facility for structured model GMF - Supports developing the graphical editors for structured model Defining textual domain specific language (EMFText) Enables developers to define textual DSL quickly Don’t require to learn new technologies and concepts Collection of 100 concrete text syntaxes to define new languages of our own Derives the textual syntax for DSL from ECORE meta model 4 DSL and EMFTEXT
  • 5. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. What is EMFText ? 5 Meta Model Concrete Syntax Semantics EMFTEXT Domain concepts, relations, attributes Syntax, Shapes Behavior, meaning DSL and EMFTEXT
  • 6. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Why to use EMFText ? Readability Version control Backward compatibility OS independent Quick model instantiation Tool reuse Easy to understand Clear structure Tracing artifacts Custom syntax is much easier to read than XML Comparing and diffing the XML produce useless results Existing models can be fixed on new version of Meta model Text can edited on every OS with single text editor Default HUTN Syntax instantly allows to create model instances Transform documents (ATL) or analyze them (OCL) Working on modelling tools allows easy to query Easier to maintain document formats Trace requirements from initial documents down to the running code 6 DSL and EMFTEXT
  • 7. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Generation Features Generation of Independent code Generated code doesn’t contain dependencies to EMFText All code is fully customizable Deployable in non EMFtext environment UI code is generated to a separate plug-in enabling the usage of DSLs in headless environments Generation of default Syntaxes Syntax that conforms to HUTN standard Java –like syntax Custom syntax configuration Highly customizable code generation Provide many options to tailoring its code generation process to specific needs Supports 293 customizable code generation options ex: additionalDependencies, additionalExports, disableBuilder 7 DSL and EMFTEXT
  • 8. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Specification Features Modular specification Modularization and extension of CS specifications Support for abstract syntaxes and syntax imports Simple and precise syntax specification Default reference resolving mechanisms Default name resolution mechanism External references resolved automatically Complex resolution mechanisms can be realized Comprehensive syntax analysis Informs developer about potential error in syntax ex: missing syntax for certain meta class Supports 20 plus warning messages 8 DSL and EMFTEXT
  • 9. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Other Features 9 Editor Features Advanced features like Java Editor Outline View Customizable Syntax Highlighting Occurrence Highlighting Code Completion Bracket handling Hyperlinks Text hovers Quick Fix Build Features Generation of builder and interpreter stubs Customizable builder and interpreter ANT support to generate text syntax plug-ins in build scripts DSL and EMFTEXT
  • 10. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. EMFText language development process 10 Iterative EMFText Language development process DSL and EMFTEXT
  • 11. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Specifying a Language Meta-Model 11 Meta model elements: Classes Data Types Enumerations Attributes References(Containment, Non- containment) Cardinalities Inheritance Creating a new meta model: Define concepts, relations and properties in an Ecore model Existing meta models can be imported (e.g., UML, Ecore,…) DSL and EMFTEXT
  • 12. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 12 Specifying the Language's Concrete Syntax Textual representation of all Meta-model concepts Automatically create the syntax generator conforming to HUTN Possible to specify manually the concrete syntax Syntax specification rules are derived from EBNF syntax specification language Provide advance support like errors and warning if consistent during syntax specification DSL and EMFTEXT
  • 13. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Specifying the language CS’ syntax 13 Header SYNTAXDEF <yourFileExtension> FOR <namespaceURI> START <Root Model> Body (optional )TOKENS { Identifiers, numbers etc} (optional )TOKENSTYLES {color and font style} Bottom Rules{ own rules} DSL and EMFTEXT
  • 14. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Specifying the language CS’ syntax 14 DSL and EMFTEXT
  • 15. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Customizations Techniques Overriding Generated Artifacts Provides Override option for all generated artifacts Possible to specify not to override the specific class or file Possible to customize the hover text using overrideHoverTextProvider Overriding Meta Information Classes SetOverride option to false for meta information class Using subclass instead of overriding the class directly Make customizations by overriding individual methods Using Generated Extension Points Customize the resource loader by using default_load_options Customize the registration of parser by using additional_extension_parser 15 DSL and EMFTEXT
  • 16. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Customizing Token Resolving Customizing Reference Resolving Implementing Post Processors Implementing Quick Fixes Implementing Builders Implementing Launch Support Enabling Debug Support Customizing Text Hovers 16 Concrete Customizations DSL and EMFTEXT
  • 17. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Integration with Other Frameworks Integration with the EMF Edit Framework EMFText is tightly integrated with EMF Edit Framework Provider class will be used to obtain icons and labels for the outline view Icons shown in code completion proposals Consistent presentation of DSLs across different kind of editors Integration with the EMF Validation Framework EMFText integrate your DSL tooling with EMF validation Framework On editing DSL documents, only live constraints are evaluated Batch constraints are re-evaluated when documents are saved Consistent presentation of DSLs across different kind of editors Ensure constraintProvider extension must set to mixed mode 17 DSL and EMFTEXT
  • 18. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 18 DSL and EMFTEXT
  • 19. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Conclusion 19 EMFText is a tool for defining textual syntax for Ecore-based metamodels Enable developers to define their own textual languages – be it DSL Provides a Domain specific language for syntax specification Generates a full-fledged Eclipse Editor Includes a parser for loading textual models Includes a printer for storing model instances Provides editor will all its customizable components DSL and EMFTEXT
  • 20. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. 20 DSL and EMFTEXT
  • 21. RBEI/EMT | 07/07/2014 | © Robert Bosch Engineering and Business Solutions Limited 2014. All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights. Thank you 21 http://www.emftext.org DSL and EMFTEXT