Internal DSLs
from API design to languages
(C) 2018, SoftLang Team, University of Koblenz-Landau
SoftLang Team, University of Koblenz-Landau
- Prof. Dr. Ralf Lämmel
- Msc. Johannes Härtel
- Msc. Marcel Heinz
Internal DSLs from API design to languages SoftLang Team, - - PowerPoint PPT Presentation
Internal DSLs from API design to languages SoftLang Team, University of Koblenz-Landau Prof. Dr. Ralf Lmmel Msc. Johannes Hrtel Msc. Marcel Heinz (C) 2018, SoftLang Team, University of Koblenz-Landau Fluent Interfaces from
Internal DSLs
from API design to languages
(C) 2018, SoftLang Team, University of Koblenz-Landau
SoftLang Team, University of Koblenz-Landau
Fluent Interfaces
Pure OO-Style
(C) 2018, SoftLang Team, University of Koblenz-Landau
from https://martinfowler.com/bliki/FluentInterface.html Fluent API (Method Chaining + Other Beneficial Design Choices)
Fluent Interfaces (Object-Orientation)
Fluent API (Method Chaining + Other Beneficial Design Choices)
(C) 2018, SoftLang Team, University of Koblenz-Landau
Joe wants API users to write concise code. OO-Guy
Fluent Interfaces (Software Language Engineering)
Fluent API (Method Chaining + Other Beneficial Design Choices)
(C) 2018, SoftLang Team, University of Koblenz-Landau
SLE-Guy Hey, this looks like an independent format for orders.
Technological Spaces
Kurtev, I., Bézivin, J. and Aksit, M., 2002. Technological spaces: An initial appraisal. CoopIS, DOA, 2002.
SLE-Guy OO-Guy Big Data-Guy NLP-Guy
(C) 2018, SoftLang Team, University of Koblenz-Landau
Fluent Interfaces (Software Language Engineering)
Fluent API (Method Chaining + Other Beneficial Design Choices)
(C) 2018, SoftLang Team, University of Koblenz-Landau
SLE-Guy Hey, this looks like an independent format for orders.
Chrestomathies @ Softlang
programming technologies in general by implementing a business scenario.
technologies in the technical domain of implementing domain-specific languages.
○ Java internal DSL ○ Python internal DSL (C) 2018, SoftLang Team, University of Koblenz-Landau
Domain-Specific Language (DSL) - Definition
“A domain-specific language (DSL) is a programming language or executable specification language that
abstractions, expressive power focused on, and usually restricted to, a particular problem domain.” van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. SIGPLAN Not. 35(6), 26–36 (2000)
(C) 2018, SoftLang Team, University of Koblenz-Landau
Domain-specific vs. General purpose
well-defined domain.
typically small.
complete.
may live for months only.
software engineers and domain experts.
DSLs is fast-paced.
almost impossible for GPLs; it is feasible and relatively common for DSLs.
and metaprogramming". Springer (C) 2018, SoftLang Team, University of Koblenz-Landau
DSL Implementation
(C) 2018, SoftLang Team, University of Koblenz-Landau
(C) 2018, SoftLang Team, University of Koblenz-Landau
Outlook
existing programming language environment.
independent language?
○ Parsing ○ Code generation (C) 2018, SoftLang Team, University of Koblenz-Landau