...und was man damit anstellen kann.


               Heiko Behrens
              Eclipse DemoCamp 2009
                Ha...
Xtext?
 Xtext is a framework/tool for development of
              external textual DSLs.

       A domain-specific-languag...
Fuh in VU
 4. und 5.
“Wen hast Du
                 morgen in den
                 letzten beiden
                    Stunden?”


“   Fuh in VU
...
Aussagen von Phillipp:
Deutsch bei Müller montags in der 1. Stunde
                 kraft
     ch   Fa ehr       agL      ...
Montag     Dienstag         Deutsch       Müller
   Deutsch                     Englisch       Meier
   Englisch    Franz
...
Deutsch bei Müller montags in der 1. Stunde
Grammatik (ähnlich zu EBNF)
Protokoll :
!   quot;Aussagen vonquot; vorname=NAME nachname=NAME quot;:quot;
!   (aussagen+=A...
ik
                                        at
Modell




                                      m
                         ...
Demo


•   Modelldatei
•   Xtext Grammar für Aussagen zum Stundenplan
•   Java-Programm zum Laden und navigieren über Mode...
Entities (1/2)
@SuppressWarnings(quot;serialquot;)
@Entity
@Table(name = quot;CUSTOMER_INFOquot;)
public class CustomerInf...
Entities (2/2)


entity CustomerInfo
! (id=CUST_ID, sequenceName=CUST_SEQ) {
!
! String emailAddress (notNull, length = 12...
DSLs in der Praxis
     Datenmodellierung
  Architekturbeschreibung
        Konfiguration
      Geschäftsregeln
      Dokum...
Language development has never been so easy.
Demo
 Rezept:
 quot;Pizza mit Quark-Ölteigquot;

 Zuaten:
 1 Ei
 2el Öl
 4el Milch
 150g Quark
 260g Mehl
 1x Backpulver

...
www.                           .org
       www.twitter.com/xtext

         Downloads
        Documentation
           Supp...
Xtext - und was man damit anstellen kann
Xtext - und was man damit anstellen kann
Upcoming SlideShare
Loading in...5
×

Xtext - und was man damit anstellen kann

3,587

Published on

Grober Überblick über Xtext für Teilnehmer auf dem Eclipse DamoCamp in Hamburg im Mai 2009

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,587
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Xtext - und was man damit anstellen kann

  1. 1. ...und was man damit anstellen kann. Heiko Behrens Eclipse DemoCamp 2009 Hamburg 25.05.2009 E-Mail Heiko.Behrens@itemis.de Blog www.1160pm.net
  2. 2. Xtext? Xtext is a framework/tool for development of external textual DSLs. A domain-specific-language (DSL) in the context of modeling is a formal, processable language targeting at a specific viewpoint or aspect of a software system. Its semantics, flexibility and notation is designed in order to support working with that viewpoint as good as possible.
  3. 3. Fuh in VU 4. und 5.
  4. 4. “Wen hast Du morgen in den letzten beiden Stunden?” “ Fuh in VU ” 4. und 5.
  5. 5. Aussagen von Phillipp: Deutsch bei Müller montags in der 1. Stunde kraft ch Fa ehr agL deT Stun Meierrain Englisch in der 2.de k ft L ehr ach F un St Sport bei Sippft 3. unde 4. Fac h e L hrkr a d S tun Sozi in der 5. de Fach n Stu Franz bei Meiert dienstags in der 2. kraf F cha ehr L ag T S t unde Deutsch 3. unde 4. Fac h d S tun
  6. 6. Montag Dienstag Deutsch Müller Deutsch Englisch Meier Englisch Franz Sport Sipp Sport Deutsch Sport Deutsch Franz Meier Sozi Protokoll Aussage Vorname Lehrkraft Stunde * Name * Wert Name Tag
  7. 7. Deutsch bei Müller montags in der 1. Stunde
  8. 8. Grammatik (ähnlich zu EBNF) Protokoll : ! quot;Aussagen vonquot; vorname=NAME nachname=NAME quot;:quot; ! (aussagen+=Aussage)*; ! Aussage: ! lehrkraft=NAME quot;inquot; fach=NAME zeit=Zeit | ! fach=NAME (quot;beiquot; lehrkraft=NAME)? zeit=Zeit; ! Zeit: ! (tag=Tag)? stunden+=Stunde ((quot;,quot; | quot;undquot;) stunden+=Stunde)*; ! Stunde: ! (quot;inquot; quot;derquot;|quot;zurquot;)? wert=INT quot;.quot; quot;Stundequot;?; ! enum Tag: ! unbekannt | ! montags | dienstags | mittwochs | ! donnerstags | freitags | samstags; ! terminal NAME : ! ('A'..'Z'|'Ä|'Ö'|'Ü') ('A'..'Z'|'Ä'|'Ö'|'Ü'|'-'|'a'..'z'|'ä'|'ö'|'Ü'|'ß')*;
  9. 9. ik at Modell m m ra G Superclass Subclass Class LL(*) Parser ecore Metamodell Editor Xtext-Rahmenwerk (anpassbar mit Google Guice)
  10. 10. Demo • Modelldatei • Xtext Grammar für Aussagen zum Stundenplan • Java-Programm zum Laden und navigieren über Modell • Xpand-basierter Generator © itemis AG 2009 – Alle Rechte vorbehalten 9
  11. 11. Entities (1/2) @SuppressWarnings(quot;serialquot;) @Entity @Table(name = quot;CUSTOMER_INFOquot;) public class CustomerInfo implements Serializable { ! @Id ! @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = quot;idSeqquot;) ! @SequenceGenerator(name = quot;idSeqquot;, sequenceName = quot;CUST_SEQquot;, allocationSize = 1) ! @Column(name = quot;CUST_IDquot;, nullable = false) ! private String customerId; ! public void setCustomerId(String customerId) { ! ! this.customerId = customerId; ! } ! public String getCustomerId() { ! ! return customerId; ! } ! @Column(name = quot;EMAILquot;, nullable = false, length = 128) ! private String emailAddress; ! public String getEmailAddress() { ! ! return emailAddress; ! } ! public void setEmailAddress(String emailAddress) { ! ! String oldValue = emailAddress; ! ! this.emailAddress = emailAddress; ! ! firePropertyChangedEvent(quot;emailAddressquot;, oldValue, this.emailAddress); ! }
  12. 12. Entities (2/2) entity CustomerInfo ! (id=CUST_ID, sequenceName=CUST_SEQ) { ! ! String emailAddress (notNull, length = 128) ! }
  13. 13. DSLs in der Praxis Datenmodellierung Architekturbeschreibung Konfiguration Geschäftsregeln Dokumentation Mapping Navigation auf Objektgraphen Constraints Strickmuster ...
  14. 14. Language development has never been so easy.
  15. 15. Demo Rezept: quot;Pizza mit Quark-Ölteigquot; Zuaten: 1 Ei 2el Öl 4el Milch 150g Quark 260g Mehl 1x Backpulver Arbeitsschritte: quot;Einfach alles in die Schüssel und umrühren, bis ein fester Teig entsteht. Ausrollen, auf Blech legen und belegen.quot; © itemis AG 2009 – Alle Rechte vorbehalten 16
  16. 16. www. .org www.twitter.com/xtext Downloads Documentation Support Stable Version 0.7 im Juni 2009 als Teil von Eclipse Galileo
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×