liveBook · Manning

Build system

As explained in Building User-Friendly DSLs

Software that automates the generation and construction of executable artifacts from source specifications or code.

A build system turns precise DSL content into runnable software. It retrieves a serialized abstract syntax tree (AST) from the business-knowledge repository, sends it to a code generator, combines generated code with handwritten code and configuration, and produces a Runtime artifact. section 1.2.2 section 8.5

A build system typically coordinates:

  • AST retrieval from the business-knowledge repository. section 8.1
  • Code generation for the part of the Runtime that represents domain knowledge. section 8.0
  • Combination of generated code, manually written code, and build configuration. section 8.0
  • Automatic execution through a Domain IDE button, continuous integration, or a command-line interface. section 8.1

The generator can be developed from a manually implemented reference Runtime. Templates are then parameterized gradually with AST data; JavaScript ES2015 template literals and nested strings support composable, correctly indented generated code. section 8.5

Rental-price Runtime

Business stakeholders specify rental-pricing knowledge in the DSL. The build system generates the corresponding business-logic code and combines it with a web form, handwritten code, and configuration to produce a deployable or runnable Runtime. section 8.0

Figure 8.3 The architecture of the build system and Runtime
figure

Architecture diagram showing the build system’s relationship to the Domain IDE, AST repository, generated code, handwritten code, and Runtime. section 8.0

How Building User-Friendly DSLs covers it

How deep it goes
Explains inputs, generated and handwritten outputs, triggers, reference implementations, and template construction, without detailing a complete generator.
Examples
Uses a rental-price web application, a serialized AST repository, template functions, and CLI-triggered builds as concrete examples.
What it assumes
Assumes a Domain IDE, DSL content, persisted AST, business-knowledge repository, and Runtime codebase already exist.
What you can do after
Builds a Runtime by combining AST-generated code with handwritten code and configuration through an automated build trigger.
How it connects
Connects domain-specific languages, abstract syntax trees, code generation, continuous integration, command-line interfaces, and runtime systems.

Also explained in

Compare how 2 books explain build system →

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.