Knowledge-based systems were first developed using ad hoc customized approaches. Then, based on similarities among activities and across application domains, the notion of KBS generators emerged in the late 80s. KBS generators take advantage of the cross-domain similarities by abstracting the common artificial intelligence concepts and by pooling representation techniques in the same environment. Such development environments provide a panel of reasoning mechanisms and knowledge representations that can be shared and adapted to different domains. They usually propose knowledge acquisition, learning, and verification tools, various editors, and an inference engine. Some of these elements are used only during the KBS elaboration (such as knowledge verification tools), whereas other can be active even during operational use of the final system (engine or learning tools). However, all of them are necessary to conveniently design KBSs. Except for general rule-based shells (such as Jess; Friedman-Hill, 2002), most generators are more or less dedicated to a given range of applications or to a given task (e.g., classification) through their inference mechanisms. They are yet domain-independent, hence their KBS instances may apply to various domains (e.g., classification of cardiologic diseases, of astronomic objects, of biological organisms). Such specialized generators are closer to expert ways of reasoning and often lead to more efficient KBSs.