DomainLang

Terms used on this site

Plain-English definitions for the language-design and tooling terms needed by the first DomainLang pages.

Business language

A controlled way for people to express concepts, rules, events or relationships from their work. It may use text, tables, diagrams or forms and does not have to be executable.

CoreLang

The first worked business-language example for DomainLang. CoreLang is also intended to provide a common syntax and toolchain base that suitable business-related languages can reuse or extend. That common base is proposed, not implemented, and it is not a REXX dialect.

Diagnostic

A message that tells an author what is wrong and where to look. “This rule has an outcome but no condition” is more useful than “invalid input”.

Domain

The field of work or knowledge whose meaning a language must express. On this site, domain does not mean an internet address.

DomainLang

The project developing the general method and reusable tools for making small business and domain languages. It is not one universal language or a completed language workbench.

DSLSH

Editor and parser middleware that keeps document changes and parsed language information synchronised. It is a working part of the editing toolchain, not a complete language workbench.

Execution backend

The runtime and supporting tools used when a language needs to execute. RXAS, rxas, rxlink and RXVM form the preferred first backend for suitable DomainLang examples.

Grammar

Rules that describe which textual structures a parser accepts. A grammar can recognise a rule without deciding whether its business meaning is correct.

LLVM

Compiler infrastructure reserved here for possible later backend research. It is not part of the first DomainLang delivery path.

Notation

The visible form people read or edit, such as text, a diagram, a table or a form.

Parser

Software that reads source text and identifies its structure so that other tools can check or display it.

REXX

A family of readable scripting languages. cREXX is a modern implementation in that family. Reusing the CREXX assembly, linking or execution tools does not turn CoreLang or another source language into a REXX dialect.

RXAS is the readable assembly language used by CREXX. The rxas tool checks, optimises and assembles RXAS source into bytecode. rxlink combines assembled modules, and RXVM runs the bytecode.

Semantic model

An explicit description of the concepts, relationships and rules of meaning that a language must preserve, independent of its visible notation.

THE CREXX Edition

A modernised editor fork that integrates CREXX and DSLSH. Its browser frontend is a working proof of concept, not a production multi-user development environment.

Validation

Checks that decide whether an expression is complete, consistent and allowed by the language or domain. A parser can recognise a rule while validation reports that its effective date is missing.

Related work

What the other projects contribute

  • CoreLang, DSLSH, THE and CREXX remain authoritative for their own implemented behaviour.