"OBJ" refers to the language family, while "OBJ2", "OBJ3", "CafeOBJ", etc. refer to particular members.  OBJ3 is based on order sorted equational logic, and has been successfully used for research and teaching in software design and specification, rapid prototyping, theorem proving, user interface design, and hardware verification, among other things. It was the first language to implement parameterized programming and its module system influenced the designs of the Ada, C++ and ML module systems.