2,521 $−252 $2,269 $
What this module delivers.
How the training runs
- Method
- Build your own language, 360 of 1080 minutes hands-on
- Basis
- Official iSAQB DSL curriculum 2023.1
- Outcome
- 30 credit points: 20 methodical, 10 technical, no course exam
Dates & booking
Choose a date that fits
2 dates
Sessions with this symbol offer up to 25% group discount. Click “Details & Registration” to learn more.
2,521 $−252 $2,269 $
No dates match this selection.
Dates are still available. Reset the filters to see them.
Fit
Who this module is designed for
Typical roles
- You maintain a configuration format that has grown its own rules and expressions.
- You decide whether domain logic becomes a library, an embedded DSL or a language of its own.
- You hand domain experts a notation in which they write the rules themselves.
Prerequisites
No prerequisites
You can start right away. What you need: the basics of formal grammars and regular expressions, the difference between an interpreter and a compiler, the role of types in programming languages.
Consider instead DDD Spends 240 of its 1020 minutes on eliciting the model with domain experts and awards 10 communicative points, where DSL builds grammar, parser and type system.
Curriculum
CPSA® DSL Course in Detail
Curriculum 2023.1 splits DSL into six parts across 1080 teaching minutes, 360 of them exercises. It opens at the question of when a language of your own pays off, then works through syntax, semantics and language design to the tooling and one presented example.
01Intro and Motivation
This part settles when a language of your own is worth the effort at all.
- Requirements that argue for a DSL: an inexpressive implementation language, complex domain rules, analysability
- Core terms: parser, compiler, interpreter, syntax, semantics, compile time and run time
- DSL taxonomy: embedded or standalone, interpreted or compiled
- The spectrum between library design and language design, and its link to domain-driven design
02Syntax
Here you design how your language looks and how it is read.
- Grammar design as a question of ergonomics, embedding in a host language, Lisp-style macros
- Lexical against structural syntax, regular and context-free grammars
- LL against LR parsing and the restrictions a parser imposes on the grammar
- Concrete against abstract syntax, a text format against projectional editors
03Semantics
This part settles what a program in your language actually means.
- Compiler against interpreter, JIT compilation and what GraalVM changes about it
- Computation models: lambda calculus, Turing machines, rewriting systems, finite state machines
- The principle of least power and when a deviation from it is justified
- Denotational and operational semantics, big-step against small-step, semi-formal description
04Language Design
This is where the design decisions that carry your language get made.
- Type system design and inference, typed against untyped DSLs, overloading primitive values
- Compositionality: the meaning of an expression follows from its parts alone
- Combinator libraries and their link to closure of operations from domain-driven design
- Effects such as state, environment and control flow, continuations and hexagonal architecture
05Tools
This part puts the language you designed into a tool chain.
- Parser and scanner generators: ANTLR, Bison, Parsec
- Interpretation against code generation, formal semantics with PLT Redex and Ott
- Host languages for embedded DSLs: Racket, Haskell, Ruby, Kotlin
- Automated IDE support with DrRacket, Xtext, MPS or Spoofax
06Examples
To close, the course presents at least one language example.
- Syntax, semantics, type system and tool chain seen together on one language
- The curriculum deliberately leaves the kind and structure of the example open
- The choice follows the domains the participants bring
Outcome
What you will be able to do afterwards
- 01
You justify when a language of your own carries more than a library or a configuration format.
- 02
You design a grammar and choose between LL and LR parsing by the restrictions each imposes.
- 03
You separate concrete from abstract syntax and weigh a text format against projectional editors.
- 04
You describe your language semantics denotationally or operationally and record them semi-formally.
- 05
You pick the least powerful computation model that suffices and justify every deviation from it.
- 06
You design a type system with inference and test your language constructs for compositionality.
- 07
You generate parsers with ANTLR or Bison and decide between interpretation and code generation.
Credit points toward CPSA-A
- Methodical competence
- 20
- Technical competence
- 10
- Communicative competence
- 0
30 of 70 points toward CPSA-A admission
Certificate of participation
The tecnovy certificate of participation records your attendance of the DSL training, not a passed examination.
Open the Certificate Showroom tecnovy →≥80%attendance
Why tecnovy
What you get on top with us
01
iSAQB® Accredited Provider
We are an officially accredited Training Provider of the International Software Architecture Qualification Board.
02
Certificate Showroom
Get your certificate of participation and, if you have one, add your exam certificate from E-Learning. Fully automated, beautifully designed. Just for you, only at tecnovy.
03
No Slideshow, Hands-On!
Promised: no PowerPoint marathon. We work in groups, tie theory to practice, and you get real project examples from our experienced trainers plus the exchange with like-minded people.
04
Attend Twice, Pay Once
You are welcome to attend the training online again within a year as a refresher.
05
Learn from Experts
We always guarantee you the use of didactically and methodically first-class qualified trainers who draw their knowledge from training experience as well as professional practical and project experience.
06
Flexible Date Change
If you are not able to attend the course, you can rebook your training free of charge up to one week before the start of the training.
FAQs
Frequently asked questions
01Do I need CPSA-F to attend the tecnovy DSL training?
02Is there a DSL examination?
03How many credit points does DSL carry?
04How does the CPSA-A certification work?
05How long is the DSL training?
06What is the difference between DSL and DDD?
07Which tools does the DSL training work with?
08Do we build a complete language during the training?
09Do I get the flipcharts from the DSL training?
What does your training at tecnovy look like?
