internal dsls
play

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


  1. Internal DSLs from API design to languages SoftLang Team, University of Koblenz-Landau Prof. Dr. Ralf Lämmel Msc. Johannes Härtel Msc. Marcel Heinz (C) 2018, SoftLang Team, University of Koblenz-Landau

  2. Fluent Interfaces from https://martinfowler.com/bliki/FluentInterface.html Fluent API (Method Chaining + Other Beneficial Design Choices) Pure OO-Style (C) 2018, SoftLang Team, University of Koblenz-Landau

  3. Fluent Interfaces (Object-Orientation) OO-Guy Joe wants API users to write concise code. Fluent API (Method Chaining + Other Beneficial Design Choices) (C) 2018, SoftLang Team, University of Koblenz-Landau

  4. Fluent Interfaces (Software Language Engineering) SLE-Guy Hey, this looks like an independent format for orders. Fluent API (Method Chaining + Other Beneficial Design Choices) (C) 2018, SoftLang Team, University of Koblenz-Landau

  5. Technological Spaces OO-Guy SLE-Guy Big Data-Guy NLP-Guy Kurtev, I., Bézivin, J. and Aksit, M., 2002. Technological spaces: An initial appraisal. CoopIS, DOA , 2002 . (C) 2018, SoftLang Team, University of Koblenz-Landau

  6. Fluent Interfaces (Software Language Engineering) SLE-Guy Hey, this looks like an independent format for orders. Fluent API (Method Chaining + Other Beneficial Design Choices) (C) 2018, SoftLang Team, University of Koblenz-Landau

  7. Chrestomathies ● 101companies exists for demonstrating programming technologies in general by @ Softlang implementing a business scenario . ● Metalib exists for demonstrating programming technologies in the technical domain of implementing domain-specific languages . ○ Java internal DSL ○ Python internal DSL (C) 2018, SoftLang Team, University of Koblenz-Landau

  8. Domain-Specific “A domain-specific language (DSL) is a programming language or executable specification language that Language (DSL) - offers, through appropriate notations and abstractions , expressive power focused on, and Definition 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

  9. ● Domain Only DSLs have a relatively small and well-defined domain. Domain-specific ● Language size GPLs are large. DSLs are typically small. vs. ● Turing completeness DSLs may not be Turing complete. General purpose ● Lifespan GPLs live for years to decades. DSLs may live for months only. ● Designed by GPLs are designed by gurus or committees. DSLs are designed by a few software engineers and domain experts. ● Evolution GPLs evolve slowly. The evolution of DSLs is fast-paced. ● Deprecation/incompatible changes This is almost impossible for GPLs; it is feasible and relatively common for DSLs. R. Lämmel (2018). “Software languages: Syntax, semantics, and metaprogramming". Springer (C) 2018, SoftLang Team, University of Koblenz-Landau

  10. DSL Implementation (C) 2018, SoftLang Team, University of Koblenz-Landau

  11. Metalib ● https://softlang.github.io/metalib/ (C) 2018, SoftLang Team, University of Koblenz-Landau

  12. Outlook ● Simplified: Internal DSLs make use of an existing programming language environment. ● How to implement FSML as an own independent language? ○ Parsing ○ Code generation (C) 2018, SoftLang Team, University of Koblenz-Landau

Recommend


More recommend