DSL - Domain Specific Languages - Foundation

Kort om undervisningen

Et Domain Specific Language (DSL) bruges, når der er behov for et sprog målrettet en bestemt, snæver anvendelse, ofte for en bestemt gruppe af brugere.

I modsætning til et generelt sprog som f.eks. Java eller XML er et DSL designet til kun at indeholde netop den type information, som den pågældende opgave kræver, og ofte på en form, som nemt kan anvendes direkte af brugeren.

Forskellige teknikker og værktøjer gør det let at definere og anvende DSLer, og de samme teknikker og værktøjer kan også anvendes til automatisk migrering af kode og data.

Eksempler på DSLer kunne være:

  • SQL, som bruges til at beskrive datastrukturer og -operationer
  • HTML og CSS, som bruges til at beskrive web-sider
  • ABAP kode, som bruges til programmering i SAP
  • X11 konfigurationsfiler, som bruges i X11
  • TeX, som bruges til opsætning af dokumentation

Kurset indfører deltageren i hvordan man konstruerer og implementerer et DSL med tilhørende parser og vi ser på anvendelsesmulighederne.

Øvelser foregår med Java, JavaCC og Eclipse.

Indhold

Introduktion til DSL

  • Begreber: syntaks, semantik
  • Internt eller eksternt DSL?
  • Fuld eller delvis fortolkning

Hvilke typer opgaver kan man med fordel løse med et DSL?

  • Komplekse beskrivelser
  • Transformationer, migrering af kildetekster
  • Generering af kode eller data ud fra komplekse strukturer

DSL værktøjer

  • JavaCC parser generator – simple og avancerede funktioner
  • Kort om alternativer såsom ANTLR og Eclipse EMF / Xtext / Xpand

Forudsætninger

Det forventes at deltagere har kendskab til emnerne dækket i kurset Java SE - Java Standard Edition 8 - Foundation. Det vil yderligere øge forståelsen hvis deltagere har kendskab til emnerne dækket i kurset Java SE - Java Standard Edition 8 - Advanced.

Kendskab til sprog-teori og Bachus-Naur-Form (BNF) vil være en fordel, men er ikke nødvendigt.

Målgruppe

Kurset henvender sig til Javaudviklere, der har brug for at udvide værktøjskassen med DSL.

Efter kurset kan deltageren

  • Genkende situationer, hvor et DSL med fordel kan introduceres
  • Definere egne DSLer
  • Bruge JavaCC til at generere en parser
  • Anvende den genererede parser til at generere transformerede data
  • Forstå gængse problemer ved DSLer

Videre forløb

Efter kurset har deltageren et godt fundament for at vedligeholde og videreudvikle DSLer og anvende dem til løsning af tilhørende opgaver.

Kontakt gerne Lund&Bendsen ved hjælp af vores kontaktformular eller ring til telefon (+45) 33 861 861 for at høre nærmere.