LogicProgrammingInCpp
Last edit December 28, 2013
LogicProgrammingInCpp
(LC++) is a program structure in
CeePlusPlus
(a header) written using
FunctoidsInCpp
(FC++) by the same authors. It implements
LogicProgramming
in
CeePlusPlus
.
http://people.cs.umass.edu/~yannis/lc++/
There is a paper
Logic Programming in C++ with the LC++ Library
by Brian M
cNamara and Yannis Smaragdakis which explains this and gives examples.
http://people.cs.umass.edu/~yannis/lc++/paper.pdf
Inspection of the paper reveals that the query mechanism uses
ContinuationPassingStyle
.
The authors are not further developing it currently. This means that the main limitations which they identify in their paper have remained in that version. I have done some work towards resolving these as follows.
Increase the maximum number of parameters on a functor from 2 to 5
Develop a way to set the number of results from a query.
Implement a way to remove the last assertion to a functoid
Clear all assertions on a functoid. (I haven't found a way to remove a particular assertion.)
Implement a variable based on
BoostAny
which can hold a number of different variable types.
This I hope increases the usefulness of this code. --
JohnFletcher
Mentioned in
OoppExploringTheMultiparadigmShift
.
I am wondering if I could use this to do
DeclarativeMetaprogramming
.
CategoryCpp
CategoryMultiparadigm
CategoryCppTemplates
CategoryFunctionalProgramming