qSoul(ID:3746/qso001)


Declarative reasoning about object-oriented programs: [http://prog.vub.ac.be/research/DMP/#Papers]
SOUL allows reasoning about the structure of class-based object-oriented languages.
The language that is reasoned about is represented using an internal parsetree representation, making SOUL a meta-language for Smalltalk. It is thus possible to query Smalltalk code and derive relations between static elements. This allows to express, extract and enforce the link between design and implementation. For example, we have queries to look for composite patterns, type instance variables (although Smalltalk is dynamically typed!), and extract UML class diagrams from code.
Currently the only base-language supported is Smalltalk, but using Frost we will add support for Java, enabling us to look at and validate the language independency.

Declarative code generation: [http://prog.vub.ac.be/research/DMP/#Papers]
A special logic term, called 'QuotedCodeTerm', allows for easy manipulation of sourcecode-templates.Using the logic inference-engine, we can compose such templates and hence, generate an entire program's source code.Recent versions of SOUL contain important changes to this construct.

The current version of SOUL used to be a split-off from the normal SOUL. We used to call it QSOUL, but from now on, this is the official SOUL version.


Structures:
Related languages
SOUL => qSoul   Evolution of
qSoul => SOUL   Renaming