SlideShare ist ein Scribd-Unternehmen logo
How To Install                               2.3M6?

                        • Grab      one of the USB keys

                        • Install   the Eclipse SDK for your platform

                        • Choose  File
                           > New
                           > Example...
                           > Eclipse Con 2012 - Xtext Tutorial




Mittwoch, 28. März 12
DSLS FOR JAVA DEVELOPERS
                        Sebastian Zarnekow - Jan Köhnlein




                               (c) itemis - Licensed under EPL

Mittwoch, 28. März 12
@ ECLIPSECON 2012
           Tomorrow
            •   DESAGN - A DSL for engineer-to-order
                Esa Ryhänen and Martin Nilsson - ERules; AB Sandvik Coromant
            •   Domain Specific Languages
                Sven Efftinge - itemis
            •   Spraying - a quick way to create Graphitis
                Karsten Thoms - itemis
            •   Xtext success story at Google
                Alex Ruiz - Google
            •   Bringing the power of Eclipse to Digital Hardware designers
                Hendrik Eeckhaut - Sigasi
            •   A Fresh Look at Graphical Editing
                Jan Köhnlein - itemis


Mittwoch, 28. März 12
EVEN MORE
           Wednesday
            •   e(fx)clipse - Eclipse Tooling and Runtime for JavaFX
                Tom Schindl - bestsolution.at
            •   Program, thou shalt behave!
                Birgit Engelmann and Sebastian Benz - BMW Car IT
            •   Win Friends and Influence People... with DSLs
                Vladimir Bacvanski and LloydMangnall - SciSpike; VHA, Inc.
            •   Xcore: Ecore Meets Xtext
                Ed Merks - itemis
           Thursday
            •   Eclipse Xtend - A Language Made For Java Developers
                Sven Efftinge - itemis
            •   Xtext - Best Practices
                Sebastian Zarnekow - itemis
Mittwoch, 28. März 12
OUTLINE
                                  meta
                           Outline

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
DSLs for Java Developers?




Mittwoch, 28. März 12
DSLs for Java Developers?
                          import java.util.*
                          package hello.world {
                          	 entity Person {
                          	 	 firstName: String
                          	 	 lastName: String
                          	 	 friends: List<Person>

                          	   	   op getFullName() : String {
                          	   	   	 firstName + ' ' + lastName
                          	   	   }
                          	   	
                          	   	   op sortedFriends() : List<Person> {
                          	   	    	 friends.sortBy [p | p.fullName]
                          	   	   }
                          	   }
                          }


Mittwoch, 28. März 12
DSLs for Java Developers?



                             DSL        Java




Mittwoch, 28. März 12
DSLs for Java Developers?
                         • Use Java’s type system
                         • Use Java libraries, frameworks and code




                                 DSL                Java




Mittwoch, 28. März 12
DSLs for Java Developers?
                         • Use Java’s type system
                         • Use Java libraries, frameworks and code




                                  DSL               Java


                         • Integrate
                                   DSL code into Java application
                         • Execute DSL on JVM



Mittwoch, 28. März 12
AST

               DSL




Mittwoch, 28. März 12
.class
                        AST    File

               DSL

                              .java
                               File



Mittwoch, 28. März 12
.class
                        AST                 File

               DSL            Type Model

                                           .java
                                            File



Mittwoch, 28. März 12
.class
                        AST                           File

               DSL                      Type Model
                         (po
                            int
                                  to)                .java
                                                      File



Mittwoch, 28. März 12
.class
                        AST                           File

               DSL                      Type Model
                         (po
                            int
                                  to)                 .java
                                                       File



                                                     Infrastructure
Mittwoch, 28. März 12
.class
                        AST                           File

               DSL                      Type Model
                         (po
                            int
                                  to)                 .java
                                                       File

                                                         for

                                                     Infrastructure
Mittwoch, 28. März 12
.class
                        AST              File

               DSL
                         (po
                            int
                                  to)   .java
                                         File



Mittwoch, 28. März 12
.class
                               File


                        AST

               DSL




                              .java
                               File
Mittwoch, 28. März 12
.class
                                               File


                        AST   Inferred Java
                                     Types
               DSL




                                              .java
                                               File
Mittwoch, 28. März 12
.class
                                               File


                        AST   Inferred Java
                                     Types
               DSL




                                              .java
                                               File
Mittwoch, 28. März 12
.class
                                               File


                        AST   Inferred Java
                                     Types
               DSL




                                              .java
                                               File
Mittwoch, 28. März 12
.class
                                               File


                        AST   Inferred Java
                                     Types
               DSL




                                              .java
                                               File
Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
OUTLINE

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #1
         DSL
                         File



                        .java
                         File




Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #1
         DSL
                         File



                        .java
                         File



                                 import types.*

                                 package tutorial {
                                 	 entity Person {
                                 	 	 firstName: String
                                 	 	 lastName: String
                                 	 }		
                                 }

                                 package types {
                                 	 type String
                                 }



Mittwoch, 28. März 12
OUTLINE

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #2
         DSL
                         File



                        .java
                         File




Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #2
         DSL
                         File



                        .java
                         File




                                 import java.util.*

                                 package tutorial {
                                 	 entity Person {
                                 	 	 firstName: String
                                 	 	 lastName: String
                                 	 	 birthday: Date
                                 	 }		
                                 }




Mittwoch, 28. März 12
OUTLINE

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #3
         DSL
                         File



                        .java
                         File




Mittwoch, 28. März 12
.class
                           File



                          .java




                                   EXERCISE #3
         DSL
                           File



                          .java
                           File




                        • Get familiar with the JVM model
                        • Learn about the JvmTypesBuilder
                        • Use Xtend to create a JVM model




Mittwoch, 28. März 12
OUTLINE

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #4
         DSL
                         File



                        .java
                         File




Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #4
         DSL
                         File



                        .java
                         File




                                 Map your DSL to Java!




Mittwoch, 28. März 12
OUTLINE

                        (1) Create a DSL using Xtext

                        (2) Make your DSL refer to Java

                        (3) Get acquainted with the JVM model

                        (4) Map your DSL to Java using Xtend

                        (5) Add expressions to your DSL


Mittwoch, 28. März 12
.class
                         File



                        .java
               DSL
                         File



                        .java
                         File
Mittwoch, 28. März 12
.class
                         File



                        .java




                                 EXERCISE #5
         DSL
                         File



                        .java
                         File




Mittwoch, 28. März 12
.class
                         File



                        .java




                                      EXERCISE #5
         DSL
                         File



                        .java
                         File




                        import java.util.*
                        package hello.world {
                        	 entity Person {
                        	 	 firstName: String
                        	 	 lastName: String
                        	 	 friends: List<Person>

                        	        	   op getFullName() : String {
                        	        	   	 firstName + ' ' + lastName
                        	        	   }
                        	        	
                        	        	   op sortedFriends() : List<Person> {
                        	        	    	 friends.sortBy [p | p.fullName]
                        	        	   }
                        	        }
                        }


Mittwoch, 28. März 12
Mittwoch, 28. März 12

Weitere ähnliche Inhalte

PDF
Graphical Views For Xtext With FXDiagram
PDF
Xtext, diagrams and ux
PDF
Eclipse Diagram Editors - An Endangered Species
PDF
Diagrams, Xtext and UX
PDF
Diagram Editors - The FXed Generation
PDF
The Xtext Grammar Language
PDF
Recipes to build Code Generators for Non-Xtext Models with Xtend
KEY
EMF - Beyond The Basics
Graphical Views For Xtext With FXDiagram
Xtext, diagrams and ux
Eclipse Diagram Editors - An Endangered Species
Diagrams, Xtext and UX
Diagram Editors - The FXed Generation
The Xtext Grammar Language
Recipes to build Code Generators for Non-Xtext Models with Xtend
EMF - Beyond The Basics

Andere mochten auch (20)

DOC
EMF Tips n Tricks
KEY
Xtend - A Language Made for Java Developers
PDF
Serializing EMF models with Xtext
PDF
Graphical Views For Xtext
PDF
Jazoon 2010 - Building DSLs with Eclipse
PPTX
Enhancing Xtext for General Purpose Languages
PDF
Eclipse DemoCamp in Paris: Language Development with Xtext
PDF
From Stairway to Heaven onto the Highway to Hell with Xtext
PDF
ARText - Driving Developments with Xtext
PDF
Language Engineering With Xtext
PDF
What's Cooking in Xtext 2.0
PDF
PDF
Scoping Tips and Tricks
KEY
Codegeneration Goodies
KEY
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
PPTX
Building Your Own DSL with Xtext
PDF
Executable specifications for xtext
PDF
Future of Xtext
PDF
Parsing Expression With Xtext
PDF
Java DSLs with Xtext
EMF Tips n Tricks
Xtend - A Language Made for Java Developers
Serializing EMF models with Xtext
Graphical Views For Xtext
Jazoon 2010 - Building DSLs with Eclipse
Enhancing Xtext for General Purpose Languages
Eclipse DemoCamp in Paris: Language Development with Xtext
From Stairway to Heaven onto the Highway to Hell with Xtext
ARText - Driving Developments with Xtext
Language Engineering With Xtext
What's Cooking in Xtext 2.0
Scoping Tips and Tricks
Codegeneration Goodies
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Building Your Own DSL with Xtext
Executable specifications for xtext
Future of Xtext
Parsing Expression With Xtext
Java DSLs with Xtext
Anzeige

Mehr von Dr. Jan Köhnlein (18)

PDF
The Eclipse Layout Kernel sirius con 2017
PDF
A New Approach Towards Web-based IDEs
PDF
Responsiveness
PDF
Getting rid of backtracking
PDF
PDF
Code Generation With Xtend
PDF
A fresh look at graphical editing
PDF
A fresh look at graphical editing
KEY
A fresh look at graphical editing
PDF
Android tutorial - Xtext slides
KEY
Eclipse meets e4
KEY
Combining Text and Graphics in Eclipse-based Modeling Tools
KEY
Combining Graphical and Textual
KEY
Domain Specific Languages With Eclipse Modeling
KEY
Domänenspezifische Sprachen mit Xtext
KEY
Workshop On Xtext
KEY
KEY
Eclipse Modeling Overview
The Eclipse Layout Kernel sirius con 2017
A New Approach Towards Web-based IDEs
Responsiveness
Getting rid of backtracking
Code Generation With Xtend
A fresh look at graphical editing
A fresh look at graphical editing
A fresh look at graphical editing
Android tutorial - Xtext slides
Eclipse meets e4
Combining Text and Graphics in Eclipse-based Modeling Tools
Combining Graphical and Textual
Domain Specific Languages With Eclipse Modeling
Domänenspezifische Sprachen mit Xtext
Workshop On Xtext
Eclipse Modeling Overview
Anzeige

DSLs for Java Developers

  • 1. How To Install 2.3M6? • Grab one of the USB keys • Install the Eclipse SDK for your platform • Choose File > New > Example... > Eclipse Con 2012 - Xtext Tutorial Mittwoch, 28. März 12
  • 2. DSLS FOR JAVA DEVELOPERS Sebastian Zarnekow - Jan Köhnlein (c) itemis - Licensed under EPL Mittwoch, 28. März 12
  • 3. @ ECLIPSECON 2012 Tomorrow • DESAGN - A DSL for engineer-to-order Esa Ryhänen and Martin Nilsson - ERules; AB Sandvik Coromant • Domain Specific Languages Sven Efftinge - itemis • Spraying - a quick way to create Graphitis Karsten Thoms - itemis • Xtext success story at Google Alex Ruiz - Google • Bringing the power of Eclipse to Digital Hardware designers Hendrik Eeckhaut - Sigasi • A Fresh Look at Graphical Editing Jan Köhnlein - itemis Mittwoch, 28. März 12
  • 4. EVEN MORE Wednesday • e(fx)clipse - Eclipse Tooling and Runtime for JavaFX Tom Schindl - bestsolution.at • Program, thou shalt behave! Birgit Engelmann and Sebastian Benz - BMW Car IT • Win Friends and Influence People... with DSLs Vladimir Bacvanski and LloydMangnall - SciSpike; VHA, Inc. • Xcore: Ecore Meets Xtext Ed Merks - itemis Thursday • Eclipse Xtend - A Language Made For Java Developers Sven Efftinge - itemis • Xtext - Best Practices Sebastian Zarnekow - itemis Mittwoch, 28. März 12
  • 5. OUTLINE meta Outline (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 6. DSLs for Java Developers? Mittwoch, 28. März 12
  • 7. DSLs for Java Developers? import java.util.* package hello.world { entity Person { firstName: String lastName: String friends: List<Person> op getFullName() : String { firstName + ' ' + lastName } op sortedFriends() : List<Person> { friends.sortBy [p | p.fullName] } } } Mittwoch, 28. März 12
  • 8. DSLs for Java Developers? DSL Java Mittwoch, 28. März 12
  • 9. DSLs for Java Developers? • Use Java’s type system • Use Java libraries, frameworks and code DSL Java Mittwoch, 28. März 12
  • 10. DSLs for Java Developers? • Use Java’s type system • Use Java libraries, frameworks and code DSL Java • Integrate DSL code into Java application • Execute DSL on JVM Mittwoch, 28. März 12
  • 11. AST DSL Mittwoch, 28. März 12
  • 12. .class AST File DSL .java File Mittwoch, 28. März 12
  • 13. .class AST File DSL Type Model .java File Mittwoch, 28. März 12
  • 14. .class AST File DSL Type Model (po int to) .java File Mittwoch, 28. März 12
  • 15. .class AST File DSL Type Model (po int to) .java File Infrastructure Mittwoch, 28. März 12
  • 16. .class AST File DSL Type Model (po int to) .java File for Infrastructure Mittwoch, 28. März 12
  • 17. .class AST File DSL (po int to) .java File Mittwoch, 28. März 12
  • 18. .class File AST DSL .java File Mittwoch, 28. März 12
  • 19. .class File AST Inferred Java Types DSL .java File Mittwoch, 28. März 12
  • 20. .class File AST Inferred Java Types DSL .java File Mittwoch, 28. März 12
  • 21. .class File AST Inferred Java Types DSL .java File Mittwoch, 28. März 12
  • 22. .class File AST Inferred Java Types DSL .java File Mittwoch, 28. März 12
  • 23. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 24. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 25. OUTLINE (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 26. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 27. .class File .java EXERCISE #1 DSL File .java File Mittwoch, 28. März 12
  • 28. .class File .java EXERCISE #1 DSL File .java File import types.* package tutorial { entity Person { firstName: String lastName: String } } package types { type String } Mittwoch, 28. März 12
  • 29. OUTLINE (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 30. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 31. .class File .java EXERCISE #2 DSL File .java File Mittwoch, 28. März 12
  • 32. .class File .java EXERCISE #2 DSL File .java File import java.util.* package tutorial { entity Person { firstName: String lastName: String birthday: Date } } Mittwoch, 28. März 12
  • 33. OUTLINE (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 34. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 35. .class File .java EXERCISE #3 DSL File .java File Mittwoch, 28. März 12
  • 36. .class File .java EXERCISE #3 DSL File .java File • Get familiar with the JVM model • Learn about the JvmTypesBuilder • Use Xtend to create a JVM model Mittwoch, 28. März 12
  • 37. OUTLINE (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 38. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 39. .class File .java EXERCISE #4 DSL File .java File Mittwoch, 28. März 12
  • 40. .class File .java EXERCISE #4 DSL File .java File Map your DSL to Java! Mittwoch, 28. März 12
  • 41. OUTLINE (1) Create a DSL using Xtext (2) Make your DSL refer to Java (3) Get acquainted with the JVM model (4) Map your DSL to Java using Xtend (5) Add expressions to your DSL Mittwoch, 28. März 12
  • 42. .class File .java DSL File .java File Mittwoch, 28. März 12
  • 43. .class File .java EXERCISE #5 DSL File .java File Mittwoch, 28. März 12
  • 44. .class File .java EXERCISE #5 DSL File .java File import java.util.* package hello.world { entity Person { firstName: String lastName: String friends: List<Person> op getFullName() : String { firstName + ' ' + lastName } op sortedFriends() : List<Person> { friends.sortBy [p | p.fullName] } } } Mittwoch, 28. März 12