## Abstract

We propose that the domain of a Domain-Specific Language (DSL) can be characterised by:

1. the class of environments in which systems developed in the language are expected to operate; and

2. the class of properties which such systems are expected to possess.

The design of DSLs should therefore include the development of a proof system that eases the task of proving the properties in the class identified for the anticipated operating environments.

We develop these ideas in the context of industrial computing systems by presenting a semantics and proof system for a language based on IEC 1131-3, the international standard programming language for programmable controllers.

Of particular significance in this example is the use of a diagrammatic representation and the development of a proof system for a class of invariance properties that requires only local knowledge of the structure of diagrams.

1. the class of environments in which systems developed in the language are expected to operate; and

2. the class of properties which such systems are expected to possess.

The design of DSLs should therefore include the development of a proof system that eases the task of proving the properties in the class identified for the anticipated operating environments.

We develop these ideas in the context of industrial computing systems by presenting a semantics and proof system for a language based on IEC 1131-3, the international standard programming language for programmable controllers.

Of particular significance in this example is the use of a diagrammatic representation and the development of a proof system for a class of invariance properties that requires only local knowledge of the structure of diagrams.

Original language | Undefined/Unknown |
---|---|

Pages (from-to) | 452-468 |

Number of pages | 17 |

Journal | Formal Aspects of Computing |

Volume | 10 |

Issue number | 5-6 |

DOIs | |

Publication status | Published - May 1998 |

## Keywords

- Domain-specific languages
- Programmable controllers
- Programming language design
- Industrial critical systems