Code Worker

Program-Transformation.Org: The Program Transformation Wiki
This tool is a scripting language (distributed under LGPL at dedicated to automate the development process, from requirements specification to IT system development. It is mainly used for building SoftwareGenerators intended to produce SoftwareProductLines.

The scripting language adapts its syntax to the subject it has to handle:

  • an extended-BNF syntax (declarative part of the language) for recognizing the format of the specifications to parse, so as to define DomainSpecificLanguages,
  • a procedural language for manipulating easily parse trees (the only structured type admitted by CodeWorker), strings, files and directories,
  • a template-based syntax (imperative part) like in PHP or JSP, which facilitates the writing of template-based code generation.

Thanks to this syntax adaptation, the scripting language is able to easily:

  • acquire any kind of specification of the IT system to produce (people often prefers XML, but it isn't necessary : do easily your own adapted data format),
  • generate source code in a classical way (as Rational ROSE), managing preserved areas of text that accept hand-typed code,
  • expand a source file like the class-wizard of Visual C++ (generated text is inserted at specified markups in the source code),
  • translate from a format to another (LaTeX to HTML, XSL to CodeWorker, ... no limit to source-to-source translation),
  • transform a source file (to instrument a source file with profiling features, ... ProgramTransformation).

These tasks are executed in a straightforward process, with no binding to an external programming language and with no translation of requirements specification.

-- CedricLemaire - 31 Jul 2003