H ? « »

Language peer sets for SOUL:
Belgium
Belgium/1999
Designed 1999
1990s languages
Internet
New internationlism

SOUL(ID:3745/sou001)

alternate simple view
Country: Belgium
Designed 1999


SOUL is short for Smalltalk Open Unification Language. SOUL is an open, reflective logic programming language written in VisualWorks 5i4 and ported to various other Smalltalk environments. The current implementation of SOUL also incorporates the ideas of another Logic Meta-Programming tool that was developed at the Programming Technology Lab (PROG): TyRuBa. More precisely, the current SOUL is extended with the quasiquoting facilities of TyRuBa. New developments in the area of Declarative Meta-Programming at PROG are now made using SOUL. An overview of the foundations of SOUL and TyRuBa and new changes to the language can be found in the documentation section.

(SOUL) is a PROLOG like logic language developed by Roel Wuyts at the Programming Technology Lab in the context of his PhD research [Wuy01].

The LMP-tool SOUL enables:

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
Smalltalk SOUL   Extension of
TyRuBa SOUL   Influence
SOUL qSoul   Evolution of

References:
  • Brichau and W. (1999) Brichau and W. D. Meuter Qsoul manual (draft) Online copy
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder