These tools include programming languages such as C. LISP, ADA Prolog and Smalltalk and expert systems shells such as OPS5 S1 Nex pert, and KEE. Knowledge engineering tools generally provide more functions than programming languages; they may include rule editors, inference engines and explanation systems.