Boost logo

Boost :

Subject: [boost] [castor] Interest in Logic Paradigm for C++ ?
From: Roshan Naik (roshan_naik_at_[hidden])
Date: 2010-04-29 03:12:02

Based on suggestions from some Boost community experts, I would like to
gauge interest to see if there is broader interest for including the Castor
library into Boost. In short, Castor's aim is to foster multiparadigm
programming in C++ by supporting techniques from the Logic Paradigm. See
below for a longer description.


Logic Paradigm (LP) is a general purpose declarative programming paradigm.
It focuses on "what" to compute and not "how" to compute. Although LP has
been well explored in Computer Science as a fundamental computational model,
it remains unavailable for main stream software development due to lack of
support in popular programming languages. Prolog is perhaps the most
commonly known language among those that support LP. Castor takes a pure
library approach (i.e. without language extensions) for introducing LP to

Instead of providing a Logic interpreter or evaluation engine in library
form, Castor provides a few simple library primitives on which LP techniques
can be supported. This approach allows a natural and deep integration of
declarative code into the language and also provides the flexibility of
freely combining Logic with the other paradigms such as OO, generics,
functional etc. STL concepts like iterators, containers and streams can also
be used in declarative code.

For an introductory tutorial on LP in C++ and Castor please refer to

Castor is intended to be a free standing library that depends only on the
standard C++ library. It does not depend on Boost or other libraries. It is
a pure header library.

Current State:
A stable 1.0 version has been available since 2008 on under the MIT license. Work on version 1.1 is in
progress and an early beta is now available. Current efforts are directed
largely towards making Castor a richer "standard library" for working with
LP in C++.

Castor was not originally targeted for Boost but more recently I have been
giving it more serious consideration regarding inclusion into Boost. At the
upcoming BoostCon 2010 I will be presenting 'Logic Paradigm for C++'. If
there is interest, my thought is that feedback from the Boost
review/submission process and modifications to satisfy other Boost
requirements/guidelines will perhaps yield a 1.2 version that will become
the real Boost candidate. Any help in this space will be much appreciated.

Links for Castor - v1.1 beta (ported to Gcc 4.4.1 and VC++ 2008) :


Individually downloadable documentation:
     Reference Manual:

     Design doc:

- Roshan Naik

Boost list run by bdawes at, gregod at, cpdaniel at, john at