Search NASASearch

NASA NTRS · 19950013214

CLIPS++: Embedding CLIPS into C++

Abstract

This paper describes a set of C++ extensions to the CLIPS language and their embodiment in CLIPS++. These extensions and the implementation approach of CLIPS++ provide a new level of embeddability with C and C++. These extensions are a C++ include statement and a defcontainer construct; (include (c++-header-file.h)) and (defcontainer (c++-type)). The include construct allows C++ functions to be embedded in both the LHS and RHS of CLIPS rules. The header file in an include construct is the same header file the programmer uses for his/her own C++ code, independent of CLIPS. The defcontainer construct allows the inference engine to treat C++ class instances as CLIPS deftemplate facts. Consequently existing C++ class libraries may be transparently imported into CLIPS. These C++ types may use advanced features like inheritance, virtual functions, and templates. The implementation has been tested with several class libraries, including Rogue Wave Software's Tools.h++, GNU's libg++, and USL's C++ Standard Components. The execution speed of CLIPS++ has been determined to be 5 to 700 times the execution speed of CLIPS 6.0 (10 to 20X typical).

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Obermeyer, Lance, Miranker, Daniel P.. 1994-11-01. CLIPS++: Embedding CLIPS into C++. https://ntrs.nasa.gov/citations/19950013214

Cite the original work for its findings. Save a collection to share your selection of sources.