Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mbeddr & MPS overview

mbeddr & MPS overview

A high level overview about mbeddr and the Meta Programming System bei JetBrains

747ee5b01d0969d624683652122fd377?s=128

Kolja Dummann

March 14, 2014
Tweet

Transcript

  1. mbeddr & MPS A high level overview

  2. Meta Programming System

  3. Open Source Language Workbench

  4. Developed since 2003

  5. Apache 2.0 License

  6. Projectional Editor

  7. int i = 42 + 23;

  8. int i = 42 + 23;

  9. LocalVarDecl Name = i int i = 42 + 23;

  10. LocalVarDecl Name = i IntType Type int i = 42

    + 23;
  11. LocalVarDecl Name = i IntType Type Plus Init int i

    = 42 + 23;
  12. LocalVarDecl Name = i IntType Type Plus Init NumberLiteral Name

    = 42 Left int i = 42 + 23;
  13. LocalVarDecl Name = i IntType Type Plus Init NumberLiteral Name

    = 42 Left NumberLiteral Value = 23 Right int i = 42 + 23;
  14. Abstract Syntax Tree Concrete Syntax

  15. Abstract Syntax Tree Concrete Syntax

  16. Abstract Syntax Tree Concrete Syntax

  17. Abstract Syntax Tree Concrete Syntax

  18. Abstract Syntax Tree Concrete Syntax

  19. Abstract Syntax Tree Concrete Syntax

  20. Abstract Syntax Tree Concrete Syntax

  21. Abstract Syntax Tree Concrete Syntax

  22. Samples for projectional editors • Word (word processors) • Drawing

    tools (Photoshop etc) • DTP Tools • Webbrowsers
  23. PROS

  24. Mixing different notations

  25. Mixing different notations

  26. Mixing different notations

  27. Mixing different notations

  28. CONS

  29. Harder to archive copy and paste Harder to make it

    behave like expected
  30. http://mbeddr.com

  31. A Open Source Collection of integrated languages for embedded software

    engineering
  32. None
  33. Core Plain C

  34. Core Plain C Ext Components Statemachines Units

  35. Core Plain C Ext Components Statemachines Units CC Requirements Documentation

    PLE
  36. Core Plain C Ext Components Statemachines Units CC Requirements Documentation

    PLE Debugger
  37. Core Plain C Ext Components Statemachines Units CC Requirements Documentation

    PLE Analyses Debugger
  38. Core Plain C Cleaned up C hidden pre processor enhanced

    typesystem
  39. Ext Components Statemachines Units Modularization of software decouple specification and

    implementation improve testability
  40. Ext Components Statemachines Units model state based behavior on its

    natural abstraction improve readability due to less clutter verifiable with model checking
  41. Ext Components Statemachines Units typesystem integration with C user defined

    units no runtime overhead
  42. CC Requirements Documentation PLE prose description of the system arbitrary

    DSL to for structured data traceability with any mbeddr artifact
  43. CC Requirements Documentation PLE LaTeX, HTML or Word documents form

    requirements easy integration with real code
  44. CC Requirements Documentation PLE support for feature models FM instances

    are validated any artifact can be adapted to a variant
  45. Debugger debug on the semantics of the DSL

  46. How it works

  47. None
  48. Code

  49. Code Generator

  50. Code Generator

  51. Code Generator Text (C)

  52. Code Generator Text (C) Compiler

  53. Extensibility

  54. Possible Domains

  55. Questions?