CBS is a framework and meta-language for component-based specification of programming languages by translation to so-called ‘funcons’ (fundamental programming constructs). Defining a translation of programming language constructs to funcons in CBS can be significantly easier than defining the behaviour of the language constructs directly.
Funcons are highly reusable components of language specifications. In CBS, the name, signature, and behaviour of different funcons are defined independently, using a modular variant of structural operational semantics. Crucially, adding new funcons does not require any changes to the definitions of existing funcons.
The funcons provided by the CBS library are to have fixed definitions, so no version control will be needed for their safe reuse in CBS language specifications. The beta-release of CBS and its initial library of funcons is to allow review of the current definitions before their full release. The beta-release is imminent; a preview of it is already available.
The current examples of CBS focus on specifying dynamic semantics. and its empirical validation by generation of prototype implementations. After a brief introduction to CBS, I would like to discuss potential issues with using CBS also to specify and validate static semantics.