Start with what the business needs to say
CoreLang should record the people, facts, events, work and rules that matter in a business situation before choosing implementation details.
CoreLang
CoreLang is being designed to express business facts, work, decisions and rules. It is also intended to give related business languages a common syntax and toolchain to start from.
CoreLang
CoreLang should record the people, facts, events, work and rules that matter in a business situation before choosing implementation details.
Suitable business languages should be able to reuse CoreLang's proposed structure and tool connections while keeping control of their own words and meaning.
The first example should be small enough to inspect in full while still testing responsibility, time, exceptions, versions and useful error messages.
CoreLang can reuse working editor and execution components, but the parser and connections that make them a CoreLang toolchain still need to be built.
Plain explanations of the language and toolchain terms used on this site.
A service cancels an appointment. The scheduling team must offer a new date within five working days, unless the person has asked to close the case. The service must record which version of the rule it used and when it made the offer.
CoreLang should let a domain specialist express that rule precisely enough for another person to review it. The first examples will test how much structure is needed without turning the language into ordinary application code.
First, CoreLang is the principal worked example for DomainLang, the project that develops the general language-design method. Designing a real language will expose which parts of that method are useful and which need to change.
Second, CoreLang is intended to provide a common starting point for suitable business-related languages. A new language could add its own vocabulary while reusing agreed syntax, parser conventions, editor connections and, where useful, an execution path. A language remains free to take another approach when that base does not fit its meaning.
The new CoreLang language, parser and common base have not yet been built. However, the proposed delivery path starts from working components. The CREXX repository contains an optimising assembler, linker, virtual machine and supporting libraries. DSLSH already keeps editors and parsers synchronised, and THE CREXX Edition demonstrates that connection in a working editor. THE also has a working browser proof of concept with documented limits; it is not a production multi-user editor.
The first CoreLang implementation can therefore concentrate on the business meaning, notation, parser and checks that are specific to the language. It does not need to invent every surrounding tool before one complete example can be tested.
Related work