DomainLang · In development

Make small languages for real business work

DomainLang is developing a practical method and reusable tools for languages that help people express rules, events and information clearly.

In developmentReviewed

DomainLang

Follow the idea from method to example

/toolchainIn development

Reuse the working language tools

The proposed CoreLang base would reuse working DSLSH and THE editor components and, where execution helps, the existing CREXX tools. The combined DomainLang path has not yet been built.

/examplesProposed

Begin with one rebooking rule

The first example will test the method, the CoreLang common base, editor feedback and the optional CREXX execution path together.

/glossaryIn development

Terms used on this site

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

How it works

A small loop for creating a useful language

Begin with a business question, agree its meaning, try the smallest suitable language and use what happens to improve it.

  1. Name the need and people

    Identify the unclear decision or description and who must write, review or act on it.

  2. Collect examples

    Gather cases that should work, cases that should fail and awkward exceptions.

  3. Agree the meaning

    Define the important concepts, relationships, events and time rules before choosing syntax.

  4. Choose the smallest language

    Use the proposed CoreLang base when it fits, or choose text, a table, a diagram or another form.

  5. Try it and learn

    Check examples, show useful errors, observe authors and revise the language and method.

Read the connections
  • Name the need and peopleCollect examples: make the question concrete.
  • Collect examplesAgree the meaning: expose missing distinctions.
  • Agree the meaningChoose the smallest language: express only what is needed.
  • Choose the smallest languageTry it and learn: put the language in people's hands.
  • Try it and learnName the need and people: revise the question and scope.
Execution is optional. A controlled document, table or diagram may solve the problem without a new parser or runtime.

Start with a rule people need to understand

Imagine a service that cancels an appointment. Its rule says that the person must be offered another date within five working days. Ordinary prose may leave questions: who makes the offer, when the clock starts, what happens when the person cannot attend, and which version of the rule applied?

A small business language can give those distinctions stable names and let a tool check that each rule is complete. DomainLang is developing a method for deciding when that extra structure is useful and how to create it without losing the language of the people who do the work.

A developing method, a proposed common base and working components

The method starts with users, examples and business meaning before choosing syntax. It then covers validation, useful error messages, editing, exchange with other tools and, when needed, execution.

CoreLang has two roles. It is the first worked business-language example, and it is the proposed common syntax and toolchain base that suitable business-related languages can reuse or extend. A language that does not fit that base should be free to take another path.

The toolchain starts from real components. DSLSH connects editors to parsers. THE CREXX Edition demonstrates that connection in a working editor and a limited browser proof of concept. The CREXX tools provide an existing assembly, linking and virtual-machine path for examples that need to run.

Keep the first result small

The first example will cover one rebooking rule. It must show the original business need, the meaning that must be preserved, the proposed language, useful validation messages and the result of trying it in the editor. If execution helps, the example will generate RXAS and use the existing CREXX tools. The work will be successful only if it makes the rule easier to write, review and change.

Related work

What the other projects contribute

  • Architecture Portal explains where language design fits within a wider architecture.
  • CoreLang is both the first worked example and the proposed common base for suitable business-related languages.

Current status

What exists and what remains to be done

Status

In development

Last reviewed

Intended readers

  • Domain specialists, analysts and language designers
  • Teams deciding whether a small language is worth creating

What this page does not claim

  • Defining one language or notation for every domain
  • Requiring every language to use CoreLang or to execute

What works now

  • DSLSH keeps editors and parsers synchronised and returns structured language information.
  • THE CREXX Edition integrates DSLSH and CREXX and produces parser-backed source rendering.
  • The CREXX toolchain assembles, links, packages and runs RXAS programs.

What is proposed

  • The DomainLang method and the new CoreLang common base are being defined through a first small business-rule example.

Current limitations

  • The complete method, new CoreLang language and combined DomainLang toolchain have not yet been built.

What will be checked next

  • Create one rebooking-rule example, connect it to editor feedback and record what must change in the method and common base.