liveBook · Manning

Notation

As explained in Building User-Friendly DSLs

A system of symbols and textual or visual conventions for representing information in a language.

Notation is the system of writing that visually represents DSL content so domain experts can understand and author it. A DSL may use diagrams, tables, icons, or text; it may resemble a well-designed document rather than conventional source code. section 1.4.1 section 1.1

Notation is assembled from a small set of visual building blocks:

  • Textual DSLs use keywords, identifiers, strings, and numbers, with styling that can communicate each category’s meaning. section 1.4.1
  • Graphical DSLs use boxes, slots, lines, arrows, labels, icons, or tables. section 1.4.1
  • Keeping the building-block set small makes the language easier to parse visually and understand. section 1.4.1
  • A projection converts DSL content into a visualization, commonly content rendered in a web browser; adding editing turns it into a DSL editor. section 1.4.1 section 1.5

Car-rental notation

A textual car-rental DSL can present domain information as readable document-like content, with references to attributes rendered as web links. This keeps business knowledge visible to domain experts while giving each textual element a defined role. section 1.4.1

Figure 1.19 Zooming in on the notation aspect of a DSL
figure

Use the diagram to distinguish DSL content from the notation that visualizes it. section 1.4.1

How Building User-Friendly DSLs covers it

How deep it goes
Explains notation forms, visual building blocks, projections, and editor boundaries, but defers detailed editor implementation.
Examples
Uses boxology, icons, tables, textual tokens, web-linked attributes, and document-like car-rental content as examples.
What it assumes
Assumes familiarity with DSL content and domain experts, while defining notation and software-language precision from basic terms.
What you can do after
Build a projection that renders DSL content in a web browser and extend it into an editor.
How it connects
Connects notation to DSL content, projection, DSL editor, Domain IDE, structure, meaning, and constraints.

Also explained in

Compare how 2 books explain notation →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Building User-Friendly DSLs. The section links point to the parts of the book it draws on.